Programowanie w języku Delphi » Artykuły

Kodowanie danych

Ten artykuł jest poświęcony kodowaniu danych na podstawie tablicy ASCII. Jest to na tyle dobra metoda kodowania, że pozwala na zakodowanie wszystkich klawiszy z klawiatury, nie deklarując każdego klawisza z osobna. Taki rodzaj szyfrowania informacji ma jeszcze jedną zaletę ? pozwana na stworzenie bardziej skomplikowanych algorytmów niż kodowanie ?znak po znaku?. Do stworzenia programu szyfrującego potrzebujemy poznać tylko dwie procedury i oczywiście pętle:
- ord(x) ? zwraca numer klawisza w naturalnym kodzie ASCII, zmienna typu ?byte? ? numer klawisza przyjmujący wartość od 0-255, zajmujący 1B
- chr(y) ? zwraca symbol z kodu ASCII, zmienna typu ?char? ? symbol zajmujący 1B


Nasz program będzie kodował dane z memo1 do memo2, a dekodował z memo2 do memo1:

Potrzebujemy pięć komponentów: memo1, memo2, button1, button2, edit1,

Kodowanie:

Klikamy dwukrotnie na button1 i piszemy:
var i,dlu,kod,zakres,k:integer;
      znak:char;
      tekst,wynik,w:string;
 
begin
tekst:=memo1.Text;
dlu:=length(tekst);
val(edit1.Text,zakres,k);
    for i:=1 to dlu do
       begin
         znak:=tekst[i]; //przypisanie zmiennej ?znak? i-ty element ze zmiennej ?tekst?,
         kod:=Ord(znak);
         kod:=kod+zakres;
         w:=Chr(kod);
         wynik:=wynik+w;
       end;
    memo2.text:=wynik;
 end;

   
Dekodowanie jest równie łatwe

Klikamy dwukrotnie na button2 i piszemy:
var i,dlu,kod,zakres,k:integer;
      znak:char;
      tekst,wynik,w:string;
 
begin
tekst:=memo2.Text;
dlu:=length(tekst);
val(edit1.Text,zakres,k);
    for i:=1 to dlu do
       begin
         znak:=tekst[i]; //przypisanie zmiennej ?znak? i-ty element ze zmiennej ?tekst?,
         kod:=Ord(znak);
         kod:=kod-zakres; //różni się od poprzedniego tylko kod-zakres
         w:=Chr(kod);
         wynik:=wynik+w;
       end;
    memo2.text:=wynik;
 end; 


Zachęcam do eksperymentowania.
Uwagi i pytania na adres:
[email protected]

10 komentarzy

Brak avatara
tss 2013-11-21 10:13

W algorytmie brak jednej instrukcji:
inc(zakres)
 w pętli for (przed end)
zarówno w opcji - kodowanie, jak i - dekodowanie. Inaczej nie działa!

Żabie Udka 2009-05-07 17:52

Tu mój algorytm (nawet prosty do zrozumienia):

Najlepiej dać znak lub bajt który zostanie zakodowany przez losową liczbę a gdy dekodujemy po odjęciu właściwego kodu ANSCII tego znaku, wyjdzie ten jeden wylosowany klucz którym odkoduje plik i go zapisze :>

Też można zastosować metodę plików typowanych ale ta jest mniej bezpieczna (jeśli nie zakoduje się klucza :D)

filet 2008-04-25 17:13

po prostu gotowiec do kodowania cezarem. LUDZIE, CZYTAJCIE WIKIPEDIE!!!

VsMaX 2006-02-06 18:17

Nom artykul dobry, wazne jet to ze kodowanie jest PROSTE ;)

ŁF 2005-05-08 15:22

proponuję przerzucić to do gotowców - na art to się raczej nie nadaje.

Artur 2005-05-06 18:13

wrzuć kod programu miedzy znaczniki

 i 
wtedy będzie kolorowane

kslukasz 2005-05-05 19:41

Sorki za błąd w artykule. Myśle że wszystko jest już poprawione. I nie jest to mój pierwszy program, tylko pierwszy artykuł na 4p...

michand 2005-05-05 18:37

\"potrzebujemy cztery komponenty : memo1, memo2, button1, button2, edit1\" - chyba nie umiem liczyc.. Jakby nie patrzec - mnie wychodzi 5 elementow :>

endrique 2005-05-05 17:05

Myślę że znajdziesz się na tym forum trochę bardziej skomplikowane metody kodowania. No ale jak na pierwszy program to fajny tutorial :|

jarhal 2005-05-05 11:39

Ciekawy program !!! musze to sprawdzić !!! Pozdrawiam Autora