mam przygotować cośtam na infe i zahaczyłem :P o temat kompresji i konwersji plików. tutaj chce przedstawić prog co konwertuje exe (0100100100100) na np. ascii ale jakoś tak, by można to przywrócić do exe (aSmkAfjeusJHdfGSDjkdegf). Słysząłem gdzieś że można to zrobic nonwertując plik na 64 bitowy czy coś takiego. zebrałem troszke procedur i mam tu te co by sie przydały :P. Bardzo prosze o pomoc. :( Męcze sie z tym już od tygodnia i wszystko do d... .jak moge to skonwetować?? (exe->txt 64 bit np.)
?????
function Chr2Int(c: Char): Integer;
begin
c := UpCase(c);
if (c >= '0') and (c <= '9') then Result := Integer(c) - Integer('0')
else Result := Integer(c) - Integer('A') + 10;
end;
function Int2Chr(i: Integer): Char;
begin
if i < 10 then Result := Char(i + Integer('0')) else
Result := Char(i - 10 + Integer('A'));
end;
function Str2Int(s: String; base: Integer): Integer;
var
i: Integer;
begin
Result := 0;
for i := 1 to Length(s) do Result := (Result * base) + Chr2Int(s[i]);
end;
function Int2Str(v: Integer; base: Integer): String;
var
m: Integer;
begin
Result := '';
while v <> 0 do begin
m := v mod base; v := v div base; Result := Int2Chr(m) + Result;
end;
if Result = '' then Result := '0';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
f:file;
buf:PChar;
leng:integer;
i,n:integer;
begin
leng:=1024;
assignfile(f,'plik.exe');
try
Reset(f);
//GetMem(buf,leng);
for i:=0 to filesize(f) do
begin
//seek(f,i);
blockread(f, buf^, leng, n);
end;
Read(buf^,leng);
finally
closefile(f);
end;
end;
procedure odczyt(s1,s2:string);
var
Zpliku, Dopliku: file;
NumRead, NumWritten: Integer;
Buf: array[1..8] of Integer;
str:string;
tf:textfile;
begin
AssignFile(Zpliku,s1);
assignfile(tf,'plik.txxt');
ReWrite(tf);
Append(tf);
Reset(zpliku, 1); { rozmiar rekordu = 1 }
AssignFile(dopliku, s2);
Rewrite(dopliku, 1); { rozmiar rekordu = 1 }
repeat
BlockRead(zpliku, Buf, SizeOf(Buf), NumRead);
Writeln(tf,str);
BlockWrite(dopliku, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(zpliku);
CloseFile(dopliku);
end;
przydałobvy sie to również w przesyłanu plików na socketach w komunikatorze na LANie który pisze a chce spróbować tylko na literkach :)