[Delphi] Tablice bajtowe, łączenie, scalanie, kodowani

0

procedure kodująca plik:

Type
TBuff=array [0..1024] of byte;

Procedure CodeFile(InFile, OutFile: String; Key: Byte);
var
Buff, Buff2: TBuff;
I, Count: Integer;
FSIn, FSOut: TFileStream;

Function CTab(Tab: TBuff): TBuff;//by Johnny_Bit, idea by SXIorHACK
var
TabOut: TBuff;
I: Integer;
begin
For I:=0 to High(Tab) do
begin
TabOut[I]:=Cod.Transcode(Tab[I], Key, 1);//kodowanie bajtu I w Tablicy Tab do bajtu I w tablicy TabOut
end;
Result:=TabOut; //Rezultatem jest tablica TabOut
end;

Function XCTab(Tab: TBuff): TBuff;//by Johnny_Bit, idea by SXIorHACK
var
TabOut: TBuff;
I: Integer;
begin
For I:=0 to High(Tab) do
begin
TabOut[I]:=XCod.Transcode(Tab[I], Key); //kodowanie (tym razem przez Xor-owanie reszta j.w.
end;
Result:=TabOut; //j.w.
end;

Function MixTabs(var Buff: TBuff; const Tb: TBuff; Count: Integer):Integer; //mixowanie hybrydowe tablicy Tb do tablicy Buff
var
I: Integer; //liczba iteracji
XC: Boolean;//XorCoding
Tmp1, Tmp2: TBuff; //Zmienne typu TBuff
begin
Tmp1:=CTab(Tb);//Kodowanie podstawowe
Tmp2:=XCTab(Tb);//Kodowanie przez Xorowanie
XC:=True;//inicjalizacja zmiennej XC (pierwszy będzie Xor)
For I:=0 To Count-1 do
begin
If XC then //jeżeli XorCoding to
Buff[I]:=Tmp2[I] //bajt I w tablicy Buff Przypisz do Bajta I w tablicy zakodowanej metodą Xor-owania
else
Buff[I]:=Tmp1[I];//w przeciwnym wypadku metodą zwykłą
XC:=not XC; //negacja zmiennej XC
end;
Result:=Count;//wynikiem jest podany parametr Count (Liczba elementów w tablicy
end;

begin
FSIn:=TFileStream.Create(InFile, fmOpenRead or fmShareDenyWrite); //otwarcie pliku do zakodowania w trybie odczytu jednocześnie plokując innym aplikacjom zapis do tegoż pliku
If FileExists(OutFile) then //jeżeli istnieje plik wyjściowy
begin
DeleteFile(OutFile);//to go usuń
end;
FSOut:=TFileStream.Create(OutFile, fmCreate or fmShareExclusive); //utworzenie pliku oraz zablokowanie innym aplikacjom dostępu do niego
while FSIn.Position!!!!!

0

moze zmodyfikuj swojego posta dodaja mu sporo dobrych komentarzy co :-[

0

Vovo :-[ :-[ :-[

0

Dziabne to co raz mi już powiedział Faszczu i dożuce własnego posta:

Czy to aż TAK trudne? Zawsze mogę wrzucić cały potrzebny kod do przetestowania, może wtedy pomożecie... Jeżeli chcecie to odpiszcie

1 użytkowników online, w tym zalogowanych: 0, gości: 1