Szyfrowanie plik≤w tekstowych
To pojΩcie nie jest skomplikowane tak jak by siΩ to
mog│o wydawaµ na pierwszy rzut oka :) ale jest do╢µ czasoch│onne.
Wymaga bowiem zaprogramowania ka┐dego znaku. Tj. na jaki znak ma
program zmieniaµ np. literkΩ "a".
Najlepiej na formularzu umie╢µ dwa komponenty typu
Memo oraz dwa Buttony. W pierwszym Memo bΩdzie umieszczony tekst do
zakodowania, a w drugim zakodowany ju┐ tekst. Jeden przycisk bΩdzie s│u┐y│
do kodowania, a drugi do dekodowania.
var
S : String;
Len : Integer;
I : Integer;
Code : String;
begin
S := Memo1.Lines.Text;
Len := Length(S);// pobierz d│ugo╢µ tekstu
for I := 1 to Len do // pΩtelka
begin
{ Je┐eli w sk│ad Memo1 wchodzi du┐▒ litera "A" lub ma│▒
litera "a" to do zmiennej "Code" przypisywany jest znak
"@", kt≤ry jest znakiem kodowania, kt≤ry odpowiada tej┐e
literze. }
if (S[i] = 'A') or (S[i] = 'a') then
Code := Code + '@';
if (S[i] = 'B') or (S[i] = 'b') then // j/w
Code := Code + '^';
if (S[i] = 'C') or (S[i] = 'c') then // j/w
Code := Code + '2';
end;
Memo2.Clear; // wyczy╢µ drugie Memo
Memo2.SelText := Code; // wstaw tekst ze zmiennej "Code"
end;
Procedura nie jest d│uga, ale koduje tylko trzy znaki
:) a konkretniej litery a, b, c. W tej procedurze nie bΩd▒
rozpoznawane znaki du┐ej litery, czy ma│ej. P≤╝niej zmiennej "Code"
dopisujemy kolejny "skodowany" znak. Na samym koµu Memo2 jest
czyszczone i przypisywana jest mu zmienna "Code". Oczywi╢cie
w ten spos≤b musisz zaprogramowaµ ka┐dy znak ( m≤wi│em, ┐e to
czasoch│onne?! :)).
No dobra teraz schemat dekodowania, a konkretniej
zawarto╢ci Memo2.
var
S : String;
Len : Integer;
I : Integer;
Code : String;
begin
S := Memo2.Lines.Text;
Len := Length(S);
for I := 1 to Len do
begin
if S[i] = '@' then
Code := Code + 'a';
if S[i] = '^' then
Code := Code + 'b';
if S[i] = '2' then
Code := Code + 'c';
end;
Memo1.Clear; // czy╢µ
Memo1.SelText := Code; // przypisz zmienna "Code" do
//zawarto╢ci Memo1
end;
Ta procedura jest bardzo podobna do poprzedniej. Dzia│a na tej samej
zasadzie co poprzednia. C≤┐ mogΩ jeszcze powiedzieµ? Mo┐e jak
zapisaµ tre╢µ Memo do pliku:
var
TF : TextFile;
begin
AssignFile(TF, 'C:\plik.txt');
Rewrite(TF);
Writeln(TF, Memo1.Lines.Text);
CloseFile(TF);
Je┐eli chcecie wiedzieµ co╢ wiΩcej o zapisie i odczycie plik≤w
przeczytajcie artyku│ "Pliki".
Na tym ko±czΩ ten kr≤tki artyku│.
Adam Boduch