Uses Knihovna,Crt,Dos; Const N=200; B1=7; B2=2; B3=11; Den:array[0..6] of string[7]=('Nedele','Pondeli','Utery','Streda','Ctvrtek','Patek','Sobota'); Var Radky:array[1..N] of string[72]; PRadku:integer; Od,ReQ:integer; (**) Procedure NactiData; Var F:file of Char; s:string[72]; Z:char; a:byte; Begin PRadku:=1;a:=0;s:=''; Assign(F,'Log_Comp.dat'); Reset(F); while Not EOF(F) do Begin Read(F,Z); if Ord(z)=13 then a:=1; If Ord(z)=10 then a:=2; If a=0 then Begin s:=s+Z; End; If a=2 then Begin Radky[PRadku]:=s; s:='';PRadku:=PRadku+1;a:=0; End; End; PRadku:=PRadku-1; Close(F); End; (**) Procedure Posuvnik(X:byte); Var H:byte; A:double; Begin For h:=1 to 16 do Locate(78,h+5,' '); If X>1 then begin a:=X/(PRadku-19)*16; end else A:=1;If a>16 then a:=16; Pismo(B2);Locate(78,Round(a)+5,'Û');Pismo(B1); End; (**) Procedure UlozData; Var F:file of Char; i,o:integer; Q,Q2:Char; Begin Assign(F,'Log_Comp.dat'); ReWrite(F);Q:=Chr(13);Q2:=Chr(10); for i:=1 to PRadku do Begin for o:=1 to 72 do Write(F,Radky[i][o]); Write(F,Q);Write(F,Q2); End; Close(F); End; (**) Procedure ZobrazOd(X:integer); Var i,a:integer; Begin If PRadku<=20 then X:=1 else begin i:=PRadku-20+1; if X>i then x:=i; End; a:=4;Od:=X; Posuvnik(Od); for i:=4 to 23 do Locate(3,i,Strings(72,' ')); For i:=X to X+19 do Begin If i<=PRadku then Locate(3,a,Radky[i]) else locate(3,a,strings(72,' ')); a:=a+1; End; End; (**) Function Titulek:string; Var s0,s1,s2,s3:string; a,b,c,d:Word; Begin GetDate(a,b,c,d); Str(c,s1);Str(b,s2);Str(a,s3); s0:=Den[d] + ' ' + s1 +'. ' + s2 + '. '+s3; GetTime(a,b,c,d); Str(a,s1);Str(b,s2);Str(c,s3); If a<10 then s1:='0'+s1;If b<10 then s2:='0'+s2;If c<10 then s3:='0'+s3; s0:=s0 + ' - ' + s1 + ':'+s2+':'+s3; Titulek:=s0; End; (**) Procedure Uvodni; Begin Barva(B2,0);ClrScr; Locate(1,2,DejNaStred('Computer''s Log by Jan Dvorak')); Pismo(B3); VytvorRam(1,1,80,3,1);VytvorRam(76,3,80,24,1);VytvorRam(1,1,80,24,1); Locate(1,3,'Ì');Locate(76,3,'Ë');Locate(80,3,'¹');Locate(76,24,'Ê'); Locate(76,5,'ÌÍÍ͹');Locate(76,22,'ÌÍÍ͹'); Pismo(B2); Locate(78,4,Chr(30));Locate(78,23,Chr(31)); Pismo(B1); End; Procedure Pridej; Var Z:integer; s:string; i,o,p:integer; Label Enter,Dal,Nic; Begin for i:=4 to 23 do Locate(3,i,Strings(72,' ')); s:=Titulek; Locate(3,4,Strings(72,'-')); Locate(3,6,Strings(72,'-')); Locate(3,5,s);GotoXY(3,7); i:=PRadku+1; Radky[i+1]:=Strings(72,'-'); Radky[i+2]:=s; Radky[i+3]:=Radky[i+1]; i:=i+4;s:=''; o:=7;p:=3; Z:=Ord(Readkey); While z<>27 do Begin Case Z of 32..126: Begin s:=s+chr(Z); Locate(p,o,Chr(Z));p:=p+1; if Length(s)=72 then Goto Enter else Goto Dal; End; 13: Goto Enter; 8: Begin if length(s)=0 then goto dal; Locate(p-1,o,' '); s:=Copy(s,1,Length(s)-1); p:=p-1; goto dal; End; End; Goto Nic; Enter: Radky[i]:=s; s:=''; i:=i+1;o:=o+1;p:=3; Dal: GotoXY(p,o); Nic: Z:=Ord(Readkey); End; Radky[i]:=s; PRadku:=i; ZobrazOd(PRadku); End; (**) Procedure Start; Begin Barva(B2,0);ClrScr; Locate(1,2,DejNaStred('Computer''s Log by Jan Dvorak')); Pismo(B3); VytvorRam(1,1,80,24,1); VytvorRam(3,12,78,23,2); Locate(1,3,'Ì'+strings(78,'Í')+'¹'); Pismo(B1); Locate(3,4,'Ovladani:'); Locate(5,5,'Sipky - posun v textu'); Locate(5,6,'Numpad+ - pridat poznamku'); Locate(5,7,'Escape - v modu prohlizeni: ukoncit aplikaci'); Locate(5,8,' - v modu pridat poznamku: ukoncit editaci nove poznamky'); Locate(5,9,'Enter - v modu pridat poznamku: zalomi radek. Kurzor se posune na zacatek'); Locate(3,11,'Reklama:'); ReadKey; End; (**) Begin ClrScr; Start; Uvodni; NactiData; ZobrazOd(PRadku); ReQ:=0; repeat ReQ:=Ord(Readkey); Case ReQ of 072: Begin if Od>1 then ZobrazOd(Od-1); End; 080: Begin ZobrazOd(Od+1); End; 43: Pridej; End; until ReQ=27; UlozData; Barva(B1,0);ClrScr; Locate(1,12,DejNaStred('Poznamky byly uspesne ulozeny...')); Pismo(b2); VytvorRam(1,1,80,24,2); End.