Localize file www.TrSek.com/cover/badin/sifrovani_textu.pas{ SIFROVANI_TEXTU.PAS Copyright (c) Tomas Badin }
{ Zasifrovani a desifrovani textu, ktery se uklada do textoveho }
{ souboru, take nacitani textu ze souboru a jeho }
{ zasifrovani/desifrovani. }
{ }
{ Datum:12.06.2008 http://www.trsek.com }
program sifrovani_textu; { rocnikova prace }
{******************************************}
{****** "Rocnikovka" **********}
{******************************************}
writeln ('*********************************'); { vypsani textu }
writeln ('*** Zasifrovani textu do znaku***'); { vypsani textu }
writeln ('*********************************'); { vypsani textu }
writeln; { preskoceni na dalsi radek }
writeln ( ' vyrobil Tomas Badin '); { vypsani textu }
repeat { zacatek cyklu }
veta:=''; { vymazani hodnot }
sifra:=''; { vymazani hodnot }
x:= ''; { vymanzani hodnot }
subor := ''; { vymazani hodnot }
soubor:= ''; { vymazani hodnot }
readln; { prazdne cteni }
clrscr; { vymazani obrazovky }
writeln ('************************************************');
writeln ('******* Hlavni nabidka ********');
writeln ('************************************************');
writeln ('zadej cislo 1 pro sifru'); { oznamuje nam kod pro danou hodnotu }
writeln ('zadej cislo 2 pro desifrovani'); { oznamuje nam kod pro danou hodnotu }
writeln ('zadej cislo 3 pro zobrazeni znaku'); { oznamuje nam kod pro danou hodnotu }
writeln ('zadej cislo 4 pro zasifrovani textu'); { oznamuje nam kod pro danou hodnotu }
writeln ('zadej cislo 5 pro desifrovani textu'); { oznamuje nam kod pro danou hodnotu }
writeln ('zadej cislo 6 pro ukonceni aplikace'); { oznamuje nam kod pro danou hodnotu }
writeln; { preskoceni na dalsi radek }
write ('vase volba : '); { pozadovana volba }
readln (volba); { zadani cisla z vrchni nabidky }
case volba of { case nam rika co se stane pri dane volbe }
1:begin { zacatek prvni volby }
ClrScr; { vymazani obrazovky }
writeln ('************************************'); { vypsani textu na obrazovku }
writeln ('*** zasifrovani abecednich znaku *** '); { vypasani textu na obrazovku }
writeln ('************************************'); { vypsani textu na obrazovku }
writeln; { preskoceni na dalsi radek }
writeln; { preskoceni na dalsi radek }
writeln ('zadejte cestu kam se vam ulozi zasifrovany text'); { oznamuje nam co mame udelat }
readln (subur); { musime zadat presnou cestu kam chceme aby se nam to do dokumentu ulozilo }
Assign (schranka,subur); { vytvoreni textoveho souboru }
writeln ('zadej vetu'); { vypsani textu }
readln (veta); { mame napsat vetu co chceme zasifrovat }
veta:=upcase(veta); { prevede vsechna pismena na velka pismena }
for i:=1 to length(veta) do { provadi se cyklus dokud nebudou vsechny znaky prekontrolovany a prevedeny }
begin { zacatek cyklu }
case veta[i] of { podminka vetveni }
'A': x:=x+'@'; { pokud se objevi dany znak prevedeho na jiny znak }
'B': x:=x+'$'; { pokud se objevi dany znak prevedeho na jiny znak }
'C': x:=x+'!'; { pokud se objevi dany znak prevedeho na jiny znak }
'D': x:=x+'~'; { pokud se objevi dany znak prevedeho na jiny znak }
'E': x:=x+'ø'; { pokud se objevi dany znak prevedeho na jiny znak }
'F': x:=x+'|'; { pokud se objevi dany znak prevedeho na jiny znak }
'G': x:=x+')'; { pokud se objevi dany znak prevedeho na jiny znak }
'H': x:=x+'('; { pokud se objevi dany znak prevedeho na jiny znak }
'I': x:=x+'*'; { pokud se objevi dany znak prevedeho na jiny znak }
'J': x:=x+'&'; { pokud se objevi dany znak prevedeho na jiny znak }
'K': x:=x+'%'; { pokud se objevi dany znak prevedeho na jiny znak }
'L': x:=x+':'; { pokud se objevi dany znak prevedeho na jiny znak }
'M': x:=x+'Ñ'; { pokud se objevi dany znak prevedeho na jiny znak }
'N': x:=x+'='; { pokud se objevi dany znak prevedeho na jiny znak }
'O': x:=x+'\'; { pokud se objevi dany znak prevedeho na jiny znak }
'P': x:=x+'^'; { pokud se objevi dany znak prevedeho na jiny znak }
'Q': x:=x+'-'; { pokud se objevi dany znak prevedeho na jiny znak }
'R': x:=x+'.'; { pokud se objevi dany znak prevedeho na jiny znak }
'S': x:=x+'>'; { pokud se objevi dany znak prevedeho na jiny znak }
'T': x:=x+'<'; { pokud se objevi dany znak prevedeho na jiny znak }
'U': x:=x+'?'; { pokud se objevi dany znak prevedeho na jiny znak }
'V': x:=x+'"'; { pokud se objevi dany znak prevedeho na jiny znak }
'W': x:=x+'õ'; { pokud se objevi dany znak prevedeho na jiny znak }
'X': x:=x+'['; { pokud se objevi dany znak prevedeho na jiny znak }
'Y': x:=x+']'; { pokud se objevi dany znak prevedeho na jiny znak }
'Z': x:=x+'_'; { pokud se objevi dany znak prevedeho na jiny znak }
'.' : x:=x+ 'ô'; { pokud se objevi dany znak prevedeho na jiny znak }
'?' : x:=x+ 'ò'; { pokud se objevi dany znak prevedeho na jiny znak }
'!': x:=x+ '}' ; { pokud se objevi dany znak prevedeho na jiny znak }
',' : x:=x+ '{'; { pokud se objevi dany znak prevedeho na jiny znak }
'-' : x:=x+ ''; { pokud se objevi dany znak prevedeho na jiny znak }
'"' : x:=x+ 'ï'; { pokud se objevi dany znak prevedeho na jiny znak }
' ' : x:=x+ 'ù'; { pokud se objevi dany znak prevedeho na jiny znak }
end; { ukonceni podminky }
end; { ukonceni cylu }
writeln ('sifra je'); { vypsani textu na obrazovku }
writeln (x); { vypis vsech znaku co byli prevedeny }
Rewrite (schranka); { toto je rezim zapisovani do souboru }
Write(schranka,x); { zapsani udaju do souboru }
close (schranka); { uzavreni souboru }
writeln; { preskoceni radku }
writeln ('stiknete enter pro navrat do menu'); { oznamuje vam jak se vratim do menu }
readln; { prazdne cteni }
end; { konec bodu cislo 1 }
2:begin
clrscr; { zacatek druhe volby }
writeln ('****************************************'); { vypsani textu }
writeln ('*** desifrovani do abecednich znaku ***'); { vypsani textu }
writeln ('****************************************'); { vypsani textu }
writeln; { preskoceni radku }
writeln; { preskoceni radku }
writeln ('zadejte cestu kam se vam ulozi desifrovany text'); { rika kam nam aby jsme si zvolili cestu k ulozeni dokumentu }
readln (sobur); { Cesta tam kam chceme aby se nam ulozil soubor }
Assign (schranka2,sobur); { vytvoreni textoveho souboru }
writeln ('zadejte textu k desifrovani'); { rika nam co mame delat }
readln (sifra); { napiste sifru ktera se vam dekoduje zpatky na znaky kterym rozumime }
sifra:= upcase (sifra); { prevede jen do velkych znaku }
for i:=1 to length(sifra) do { cyklus bude tak dlouho trvat dokud nezkontroluje vsechny znaky }
begin { zacatek cyklu }
case sifra [i] of { podminka }
'@' : x:=x+ 'A'; { pokud se objevi dany znak prevedeho na jiny znak }
'$' : x:=x+ 'B'; { pokud se objevi dany znak prevedeho na jiny znak }
'!' : x:=x+ 'C'; { pokud se objevi dany znak prevedeho na jiny znak }
'~' : x:=x+ 'D'; { pokud se objevi dany znak prevedeho na jiny znak }
'ø' : x:=x+ 'E'; { pokud se objevi dany znak prevedeho na jiny znak }
'|' : x:=x+ 'F'; { pokud se objevi dany znak prevedeho na jiny znak }
')' : x:=x+ 'G'; { pokud se objevi dany znak prevedeho na jiny znak }
'(' : x:=x+ 'H'; { pokud se objevi dany znak prevedeho na jiny znak }
'*' : x:=x+ 'I'; { pokud se objevi dany znak prevedeho na jiny znak }
'&' : x:=x+ 'J'; { pokud se objevi dany znak prevedeho na jiny znak }
'%' : x:=x+ 'K'; { pokud se objevi dany znak prevedeho na jiny znak }
':' : x:=x+ 'L'; { pokud se objevi dany znak prevedeho na jiny znak }
'Ñ' : x:=x+ 'M'; { pokud se objevi dany znak prevedeho na jiny znak }
'Ð' : x:=x+ 'N'; { pokud se objevi dany znak prevedeho na jiny znak }
'\' : x:=x+ 'O'; { pokud se objevi dany znak prevedeho na jiny znak }
'^' : x:=x+ 'P'; { pokud se objevi dany znak prevedeho na jiny znak }
'-' : x:=x+ 'Q'; { pokud se objevi dany znak prevedeho na jiny znak }
'.' : x:=x+ 'R'; { pokud se objevi dany znak prevedeho na jiny znak }
'>' : x:=x+ 'S'; { pokud se objevi dany znak prevedeho na jiny znak }
'<' : x:=x+ 'T'; { pokud se objevi dany znak prevedeho na jiny znak }
'?' : x:=x+ 'U'; { pokud se objevi dany znak prevedeho na jiny znak }
'"' : x:=x+ 'V'; { pokud se objevi dany znak prevedeho na jiny znak }
'õ' : x:=x+ 'W'; { pokud se objevi dany znak prevedeho na jiny znak }
'[' : x:=x+ 'X'; { pokud se objevi dany znak prevedeho na jiny znak }
']' : x:=x+ 'Y'; { pokud se objevi dany znak prevedeho na jiny znak }
'_' : x:=x+ 'Z'; { pokud se objevi dany znak prevedeho na jiny znak }
'ô' : x:=x+ '.'; { pokud se objevi dany znak prevedeho na jiny znak }
'ò' : x:=x+ '?'; { pokud se objevi dany znak prevedeho na jiny znak }
'}': x:=x+ '!' ; { pokud se objevi dany znak prevedeho na jiny znak }
'{' : x:=x+ ','; { pokud se objevi dany znak prevedeho na jiny znak }
'' : x:=x+ '-'; { pokud se objevi dany znak prevedeho na jiny znak }
'ï' : x:=x+ '"'; { pokud se objevi dany znak prevedeho na jiny znak }
'ù' : x:=x+ ' '; { pokud se objevi dany znak prevedeho na jiny znak }
end; { konec podminky }
end; { konec cyklu }
writeln ('desifrovany text je '); { vypsani textu }
writeln (x); { vypsani vsech znaku co sli desifrovat }
Rewrite (schranka2); { zapisovani do souboru }
Write(schranka2,x); { zapis do souboru }
close (schranka2); { uzavreni souboru }
readln; { prazdne cteni }
writeln (' stiknete enter pro navrat do menu'); { rika nam jak se mame dostat zpatky do hlavni nabidky }
readln; { prazdne cteni }
end; { konec druheho bodu }
writeln (' A = @ N = Ð '); { vypsani znaku a jejich zasifrovani }
writeln (' B = $ O = \ '); { vypsani znaku a jejich zasifrovani }
writeln (' C = ! P = ^ '); { vypsani znaku a jejich zasifrovani }
writeln (' D = ~ Q = - '); { vypsani znaku a jejich zasifrovani }
writeln (' E = ø R = . '); { vypsani znaku a jejich zasifrovani }
writeln (' F = | S = > '); { vypsani znaku a jejich zasifrovani }
writeln (' G = ) T = < '); { vypsani znaku a jejich zasifrovani }
writeln (' H = ( U = ? '); { vypsani znaku a jejich zasifrovani }
writeln (' I = * V = " '); { vypsani znaku a jejich zasifrovani }
writeln (' J = & W = õ '); { vypsani znaku a jejich zasifrovani }
writeln (' K = % X = [ '); { vypsani znaku a jejich zasifrovani }
writeln (' L = : Y = ] '); { vypsani znaku a jejich zasifrovani }
writeln (' M = Ñ Z = _ '); { vypsani znaku a jejich zasifrovani }
writeln (' . = ó ? = ÷ '); { vypsani znaku a jejich zasifrovani }
writeln (' ! = } , = { '); { vypsani znaku a jejich zasifrovani }
writeln (' - = " = ï '); { vypsani znaku a jejich zasifrovani }
readln; { prazdne cteni }
writeln ('stiknete enter pro navrat do menu '); { rika nam co mam jak se mame dostat do hlavni nabidky }
readln; { prazdne cteni }
end; { konec tretiho bodu }
4:begin { zacatek ctvrteho bodu }
clrscr; { vymazani obrazovky }
writeln (' ************************************* '); { vypsani textu }
writeln (' *** zasifrovani textu z dokumentu *** '); { vypsani textu }
writeln (' ************************************* '); { vypsani textu }
writeln ('zadejte cestu kam se vam prelozi zasifrovany text'); { rika kam nam aby jsme si zvolili cestu k ulozeni dokumentu }
readln (sobur2); { Cesta tam kam chceme aby se nam ulozil soubor }
Assign (s2,sobur2);
writeln (' zadejte uplnou cestu k dokumentu,ktery chcete zasifrovat '); { oznameni }
readln (subor); { musime zadat uplne celou cestu ke souboru }
writeln ('Tento text byl v dokumentu'); { oznameni }
Assign (schranka3,subor); { otevre nam soubor }
reset (schranka3); { provede vypsani celeho souboru na obrazovku }
while (not (eof(schranka3)) ) do begin { zajisti nam ze se vsechno vypsalo }
Readln (schranka3,subor) ; { precte nam vsechny udaje ze souboru }
writeln (subor); { a timhle se vsechny znaky zobrazi }
end;
subor:=upcase(subor); { vsechny pismena budou velka }
for i:=1 to length(subor) do { cyklu }
begin { zacatek cyklu }
case subor[i] of { podminka }
'A': x:=x+'@'; { pokud se objevi dany znak prevedeho na jiny znak }
'B': x:=x+'$'; { pokud se objevi dany znak prevedeho na jiny znak }
'C': x:=x+'!'; { pokud se objevi dany znak prevedeho na jiny znak }
'D': x:=x+'~'; { pokud se objevi dany znak prevedeho na jiny znak }
'E': x:=x+'ø'; { pokud se objevi dany znak prevedeho na jiny znak }
'F': x:=x+'|'; { pokud se objevi dany znak prevedeho na jiny znak }
'G': x:=x+')'; { pokud se objevi dany znak prevedeho na jiny znak }
'H': x:=x+'('; { pokud se objevi dany znak prevedeho na jiny znak }
'I': x:=x+'*'; { pokud se objevi dany znak prevedeho na jiny znak }
'J': x:=x+'&'; { pokud se objevi dany znak prevedeho na jiny znak }
'K': x:=x+'%'; { pokud se objevi dany znak prevedeho na jiny znak }
'L': x:=x+':'; { pokud se objevi dany znak prevedeho na jiny znak }
'M': x:=x+'Ñ'; { pokud se objevi dany znak prevedeho na jiny znak }
'N': x:=x+'='; { pokud se objevi dany znak prevedeho na jiny znak }
'O': x:=x+'\'; { pokud se objevi dany znak prevedeho na jiny znak }
'P': x:=x+'^'; { pokud se objevi dany znak prevedeho na jiny znak }
'Q': x:=x+'-'; { pokud se objevi dany znak prevedeho na jiny znak }
'R': x:=x+'.'; { pokud se objevi dany znak prevedeho na jiny znak }
'S': x:=x+'>'; { pokud se objevi dany znak prevedeho na jiny znak }
'T': x:=x+'<'; { pokud se objevi dany znak prevedeho na jiny znak }
'U': x:=x+'?'; { pokud se objevi dany znak prevedeho na jiny znak }
'V': x:=x+'"'; { pokud se objevi dany znak prevedeho na jiny znak }
'W': x:=x+'õ'; { pokud se objevi dany znak prevedeho na jiny znak }
'X': x:=x+'['; { pokud se objevi dany znak prevedeho na jiny znak }
'Y': x:=x+']'; { pokud se objevi dany znak prevedeho na jiny znak }
'Z': x:=x+'_'; { pokud se objevi dany znak prevedeho na jiny znak }
'.' : x:=x+ 'ô'; { pokud se objevi dany znak prevedeho na jiny znak }
'?' : x:=x+ 'ò'; { pokud se objevi dany znak prevedeho na jiny znak }
'!': x:=x+ '}' ; { pokud se objevi dany znak prevedeho na jiny znak }
',' : x:=x+ '{'; { pokud se objevi dany znak prevedeho na jiny znak }
'-' : x:=x+ ''; { pokud se objevi dany znak prevedeho na jiny znak }
'"' : x:=x+ 'ï'; { pokud se objevi dany znak prevedeho na jiny znak }
' ' : x:=x+ 'ù'; { pokud se objevi dany znak prevedeho na jiny znak }
end; { konec podminky }
end; { konec cyklu }
Writeln ('zasifrovany text je ');
writeln (x); { vypsani vsech znaku na obrazovku }
readln; { prazdny radek }
close (schranka3); { zavreni dokumentu }
Rewrite (s2); { zapisovani do souboru }
Write(s2,x); { zapis do souboru }
close (s2); { uzavreni souboru }
writeln ('stiknete enter pro navrat do menu'); { oznameni jak se dostat do hlavniho menu }
readln; { prazdne cteni }
end; { konec nacteni }
end; { konec ctvrteho bodu }
case volba of { podminka }
5:begin { zvoleni pateho bodu }
clrscr; { vymazani obrazovky }
writeln (' ************************************* '); { vypsani textu }
writeln (' *** desifrovani textu z dokumentu *** '); { vypsani textu }
writeln (' ************************************* '); { vypsani textu }
writeln ('zadejte cestu kam se vam prelozi desifrovany text'); { rika kam nam aby jsme si zvolili cestu k ulozeni dokumentu }
readln (sobur3); { Cesta tam kam chceme aby se nam ulozil soubor }
Assign (s3,sobur3);
writeln (' zadejte uplnou cestu k dokumentu,ktery chcete desifrovat '); { }
readln (soubor); { zadani uplne cesty k souboru }
Assign (schranka4,soubor); { Otevreni souboru }
reset (schranka4); { vypsani souboru }
while (not (eof(schranka4)) ) do begin { zajisti nam ze se vsechno vypsalo }
Readln (schranka4,soubor) ; { precte nam vsechny udaje ze souboru }
writeln (soubor); { a timhle se zajisti ze se vsechny znaky vypsaly }
end; { konec podminky while }
soubor:=upcase(soubor); { vsechny pismena ktera se zobrazi budou velka }
for i:=1 to length(soubor) do { cyklus do te doby doku to neprevede vsechyn znaky }
begin { zacatek cyklu }
case soubor[i] of { podminka }
'@' : x:=x+ 'A'; { pokud se objevi dany znak prevedeho na jiny znak }
'$' : x:=x+ 'B'; { pokud se objevi dany znak prevedeho na jiny znak }
'!' : x:=x+ 'C'; { pokud se objevi dany znak prevedeho na jiny znak }
'~' : x:=x+ 'D'; { pokud se objevi dany znak prevedeho na jiny znak }
'ø' : x:=x+ 'E'; { pokud se objevi dany znak prevedeho na jiny znak }
'|' : x:=x+ 'F'; { pokud se objevi dany znak prevedeho na jiny znak }
')' : x:=x+ 'G'; { pokud se objevi dany znak prevedeho na jiny znak }
'(' : x:=x+ 'H'; { pokud se objevi dany znak prevedeho na jiny znak }
'*' : x:=x+ 'I'; { pokud se objevi dany znak prevedeho na jiny znak }
'&' : x:=x+ 'J'; { pokud se objevi dany znak prevedeho na jiny znak }
'%' : x:=x+ 'K'; { pokud se objevi dany znak prevedeho na jiny znak }
':' : x:=x+ 'L'; { pokud se objevi dany znak prevedeho na jiny znak }
'Ñ' : x:=x+ 'M'; { pokud se objevi dany znak prevedeho na jiny znak }
'Ð' : x:=x+ 'N'; { pokud se objevi dany znak prevedeho na jiny znak }
'\' : x:=x+ 'O'; { pokud se objevi dany znak prevedeho na jiny znak }
'^' : x:=x+ 'P'; { pokud se objevi dany znak prevedeho na jiny znak }
'-' : x:=x+ 'Q'; { pokud se objevi dany znak prevedeho na jiny znak }
'.' : x:=x+ 'R'; { pokud se objevi dany znak prevedeho na jiny znak }
'>' : x:=x+ 'S'; { pokud se objevi dany znak prevedeho na jiny znak }
'<' : x:=x+ 'T'; { pokud se objevi dany znak prevedeho na jiny znak }
'?' : x:=x+ 'U'; { pokud se objevi dany znak prevedeho na jiny znak }
'"' : x:=x+ 'V'; { pokud se objevi dany znak prevedeho na jiny znak }
'õ' : x:=x+ 'W'; { pokud se objevi dany znak prevedeho na jiny znak }
'[' : x:=x+ 'X'; { pokud se objevi dany znak prevedeho na jiny znak }
']' : x:=x+ 'Y'; { pokud se objevi dany znak prevedeho na jiny znak }
'_' : x:=x+ 'Z'; { pokud se objevi dany znak prevedeho na jiny znak }
'ô' : x:=x+ '.'; { pokud se objevi dany znak prevedeho na jiny znak }
'ò' : x:=x+ '?'; { pokud se objevi dany znak prevedeho na jiny znak }
'}': x:=x+ '!' ; { pokud se objevi dany znak prevedeho na jiny znak }
'{' : x:=x+ ','; { pokud se objevi dany znak prevedeho na jiny znak }
'' : x:=x+ '-'; { pokud se objevi dany znak prevedeho na jiny znak }
'ï' : x:=x+ '"'; { pokud se objevi dany znak prevedeho na jiny znak }
'ù' : x:=x+ ' '; { pokud se objevi dany znak prevedeho na jiny znak }
end; { konec podminky }
end; { konec cyklu }
writeln ('tohle bylo v zasifrovanem dokumentu'); { vypsani textu na obrazovku }
writeln (x); { desifrovany text }
readln ; { prazdne cteni }
close (schranka4); { uzavreni dokumentu }
Rewrite (s3); { zapisovani do souboru }
Write(s3,x); { zapis do souboru }
close (s3); { uzavreni souboru }
writeln ('stiknete enter pro navrat do menu '); { stiknutim enteru se dostaneme do hlavni nabidky }
readln; { prazdne cteni }
end; { povinny end }
end; { konec pateho bodu }
case volba of { case }
6:begin { zacatek sesteho bodu }
clrscr; { vymazani obrazovky }
Writeln ('program pripravil Tomas badin' ); { vypsani na obrazovku }
end ; { end }
end; { end musi byt }
until (volba=6) { konec cyklu reapeat a until program se ukonci jen kdyz je zvoleno cislo 6 }