Program vytvorí zašifrovanú kópiu vášho súboru
Delphi & Pascal (česká wiki)
Category: Homework in Pascal
Author: Pheo
web: pascalsource@ic.cz
Program: Sifra.pas
File exe: Sifra.exe
need: K_pr4.txt
Author: Pheo
web: pascalsource@ic.cz
Program: Sifra.pas
File exe: Sifra.exe
need: K_pr4.txt
Program vytvorí zašifrovanú kópiu vášho súboru. Každý riadok je v nej zapísaný odzadu. Iba bodka a čiarka, ak sa nachádzajú na konci riadku, zostanú na svojom mieste.
{ SIFRA.PAS } { Vytvorte program, ktory odkoduje resp. zakoduje text zasifrovany } { posunutim (kazde pismeno sa nahradi pismenom, ktore je v(cyklickej)} { anglickej abecede o n znakov dalej, ostatne znaky ostanu bez zmeny.} { } { Datum:16.11.2006 http://www.trsek.com } program sifra; const tmp_subor = 'subor.tmp'; var sm : string; n : integer; subor: string; { zakoduje/odkoduje subor } procedure Zakoduj( subor:string; n:integer ); var f: file of char; f2: file of char; ch: char; p: integer; begin Assign (f,subor); Assign (f2,tmp_subor); Reset (f); Rewrite(f2); while( not(eof(f))) do begin { precitame } Read(f,ch); { budem kodovat male pismena ? } if( ch in ['a'..'z'])then begin p:=ord(ch)+n; { nad rozsah } while(p>ord('z'))do p:=p-ord('z')+ord('a')-1; { pod rozsah } while(p<ord('a'))do p:=ord('z')-(ord('a')-p)+1; ch:=chr(p); end; { budem kodovat velke pismena ? } if( ch in ['A'..'Z'])then begin p:=ord(ch)+n; { nad rozsah } while(p>ord('Z'))do p:=p-ord('Z')+ord('A')-1; { pod rozsah } while(p<ord('A'))do p:=ord('Z')-(ord('A')-p)+1; ch:=chr(p); end; { zapiseme } write(f2,ch); end; { zatvorime } close(f); close(f2); end; { premenuje docastny subor na povodny } procedure Premenuj( subor:string ); var f: file of char; begin { zmazeme povodny } Assign(f,subor); Erase(f); { premenuje temp } Assign(f,tmp_subor); Rename(f,subor); end; { hlavny } BEGIN write('Zada meno suboru : '); readln(subor); write('Ake je posunutie : '); readln(n); write('Mam zakodovat, odkodovat (stlac z,o) : '); readln(sm); { vykona zakodovanie/odkodovanie } if( sm='z' )then begin Zakoduj(subor,n); Premenuj(subor); writeln('Subor zakodovany.'); end else begin Zakoduj(subor,(-1)*n); Premenuj(subor); writeln('Subor zakodovany.'); end; Readln; END.