{$heap 63k} {$stack 3k} {$sysinc system.inc} {$sysinc alap.inc} {$sysinc hex.inc} {$sysinc filesys.inc} {$sysinc textfile.inc} Const currCiscoNames:array[1..8] of String=('en_ccna1','en_ccna2','en_ccna3','en_ccna4','en_ccnp1','en_ccnp2','en_ccnp3','en_ccnp4'); currMyNames:array[1..8] of String=('ccna1','ccna2','ccna3','ccna4','ccnp1','ccnp2','ccnp3','ccnp4'); Var target:xtText; buffer:String; output:LongInt; myBeg:String; mySeq:LongInt; ciBeg:String; Procedure start; Var a:String; Begin; inc(mySeq); a:=myBeg+Chr(mySeq+$60)+'.html'; xErase(a); xCreate(a); if (xtOpen(target,a,false)<>0) then halt(1); buffer:=''; output:=0; End; Procedure stop; Begin; xtWriteLn(target,buffer+''); xtClose(target); End; Procedure add2buf(a:String); Label f1; Var i,o:LongInt; Begin; buffer:=buffer+a; kicserel(' ',' ',buffer); kicserel(' ',' ',buffer); f1: if (length(buffer)<64) then exit; buffer:=' '+buffer; kicserel(' ',' ',buffer); buffer:=copy(buffer,2,666); o:=0; for i:=1 to 64 do if (buffer[i]=' ') then o:=i; if (o<32) then o:=666; xtWriteLn(target,copy(buffer,1,o-1)); inc(output,o); buffer:=copy(buffer,o,666); if (output<8*1024) then goto f1; a:=buffer; buffer:=''; stop; start; buffer:=buffer+a; goto f1; End; Procedure add2tag(a:String); Var i:LongInt; Begin; i:=pos(' ',a); if (i>0) then a:=copy(a,1,i-1); a:=kicsi(a); if (a='b') or (a='/b') or (a='i') or (a='/i') or (a='u') or (a='/u') or (a='li') or (a='/li') or (a='ul') or (a='/ul') or (a='ol') or (a='/ol') or (a='br') or (a='hr') then add2buf('<'+a+'>'); End; Procedure addOneFile(a:String); Const max=128; Label f1,f2,f3; Var t:xtText; b,c:String; i,o:LongInt; Begin; if (xtOpen(t,a,true)<>0) then exit; add2buf('
'); f1: if xtEOF(t) then begin; xtClose(t);exit; end; a:=xtRead(t,64); if xtEOL(t) then a:=a+xtReadLn(t,666)+' '; kicserel(#0,' ',a); kicserel(#9,' ',a); kicserel(#255,' ',a); f2: i:=pos('<',a); if (i<1) then begin; add2buf(a); goto f1; end; add2buf(copy(a,1,i-1)); b:=copy(a,i+1,666); f3: i:=pos('>',b); if (i>0) then begin; add2tag(copy(b,1,i-1)); a:=copy(b,i+1,666); goto f2; end; if xtEOF(t) then begin; xtClose(t);exit; end; a:=xtRead(t,64); if xtEOL(t) then a:=a+xtReadLn(t,666)+' '; kicserel(#0,' ',a); kicserel(#9,' ',a); kicserel(#255,' ',a); if (length(b)>max) then b:=copy(b,1,max); b:=b+a; goto f3; End; Procedure doOneChapter(cur,chp:LongInt); Var t:xtText; sb,pg:LongInt; Begin; ciBeg:='cisco\'+currCiscoNames[cur]+'\ch'+BStr(chp)+'\'; myBeg:=currMyNames[cur]+'\ch'+BStr(chp); if (xtOpen(t,ciBeg+'main.html',true)<>0) then exit; xtClose(t); WriteLn(' ch'+BStr(chp)); mySeq:=0; start; for sb:=0 to 8 do for pg:=0 to 32 do addOneFile(ciBeg+BStr(chp)+'_'+BStr(sb)+'_'+BStr(pg)+'\content.html'); stop; End; Procedure doOneCurriculum(cur:LongInt); Var i:LongInt; Begin; myBeg:=currMyNames[cur]; WriteLn(myBeg); xMkDir(myBeg); for i:=1 to 32 do doOneChapter(cur,i); End; Var i:LongInt; BEGIN; for i:=1 to 8 do doOneCurriculum(i); END.