Nie znam się zbyt dobrze na tym temacie ale to będzie wyglądało jakoś tak:
var
mpFile1, mpFile2, mpFile3 : TFileStream;
Buffer1 : array of char; //wiekszy plik
Buffer2 : array of char; //mniejszy plik
Buffer3 : array of char; //wynik
i : Integer;
begin
mpFile1 := TFileStream.Create('e:\plik1.txt', fmOpenRead);
mpFile2 := TFileStream.Create('e:\plik2.txt', fmOpenRead);
mpFile3 := TFileStream.Create('e:\patch.txt', fmOpenRead);
mpFile1.Seek(mpFile1.Size - mpFile1.Size, soFromBeginning);
mpFile2.Seek(mpFile2.Size - mpFile2.Size, soFromBeginning);
mpFile3.Seek(mpFile3.Size - mpFile3.Size, soFromBeginning);
SetLength(Buffer3,mpFile1.Size + mpFile2.Size);
If mpFile1.Size > mpFile2.Size then //ktory wiekszy
begin
SetLength(Buffer1,mpFile1.Size);
SetLength(Buffer2,mpFile2.Size);
mpFile1.Read(Buffer1,mpFile1.Size);
mpFile2.Read(Buffer2,mpFile2.Size);
end
else
begin
SetLength(Buffer1,mpFile2.Size);
SetLength(Buffer2,mpFile1.Size);
mpFile2.Read(Buffer1,mpFile2.Size);
mpFile1.Read(Buffer2,mpFile1.Size);
end;
for i:=1 to High(Buffer1) do
begin
if Buffer1[i] = Buffer2[i] then
begin
mpFile3.Write(Buffer3,High(Buffer3))
end;
end;
end;
nawet nie próbowałem tego uruchamiać ale z tego kodu powinieneś wychodzić do dalszych prób. Życzę powodzenia.
[diabel] na razie [diabel]
a propos tego wcześniej :
[email protected]
GG : 4651965
nie wiem czemu ale wylogowało mnie i nie było tych danych , a moja ksywa znikła :(