TXT como fazer!!!
Como faço para comparar dois arquivos txt e se necessario apagar dados de um deles.
Para ler e escrever no arquivo ja consegui!!
So quero comparar e se necessarios apagar.
Para ler e escrever no arquivo ja consegui!!
So quero comparar e se necessarios apagar.
Rood_luiz
Curtidas 0
Respostas
Anonymous
07/02/2003
Talvez isso lhe ajude :
procedure TForm1.Button1Click(Sender: TObject);
var
filename1 : string;
filename2 : string;
begin
filename1 := Edit1.Text;
filename2 := Edit2.Text;
compfile(filename1, filename2);
showmessage(´Veja o resultado no arquivo c:Tempdiff.txt´);
end;
procedure tform1.compfile(filename1, filename2 : string);
var
f1 : system.textfile;
f2 : system.textfile;
diff : system.textfile;
buf1 : string;
buf2 : string;
l : integer;
begin
assignfile(f1, filename1);
assignfile(f2, filename2);
assignfile(diff, ´c:Tempdiff.txt´);
reset(f1);
reset(f2);
rewrite(diff);
l := 1;
while not eof(f1) do
begin
readln(f1, buf1);
readln(f2, buf2);
if not (compstr(buf1, buf2) )then
begin
writeln(diff, ´line: ´+ inttostr(l) + ´-´ + buf1);
writeln(diff, ´line: ´+ inttostr(l) + ´-´ + buf2);
writeln(diff, ´ ´);
end;
inc(l);
end;
closefile(f1);
closefile(f2);
closefile(diff);
end;
function tform1.compstr(s1, s2 : string) : boolean;
var
i : integer;
btemp : boolean;
begin
btemp := true;
if (length(s1) <> length(s2)) then begin
btemp := false;
end
else begin
for i:= 1 to length(s1) do begin
if (s1[i] <> s2[i]) then begin
btemp := false;
exit;
end;
end;
end;
result := btemp;
end;
Espero ter ajudado.
procedure TForm1.Button1Click(Sender: TObject);
var
filename1 : string;
filename2 : string;
begin
filename1 := Edit1.Text;
filename2 := Edit2.Text;
compfile(filename1, filename2);
showmessage(´Veja o resultado no arquivo c:Tempdiff.txt´);
end;
procedure tform1.compfile(filename1, filename2 : string);
var
f1 : system.textfile;
f2 : system.textfile;
diff : system.textfile;
buf1 : string;
buf2 : string;
l : integer;
begin
assignfile(f1, filename1);
assignfile(f2, filename2);
assignfile(diff, ´c:Tempdiff.txt´);
reset(f1);
reset(f2);
rewrite(diff);
l := 1;
while not eof(f1) do
begin
readln(f1, buf1);
readln(f2, buf2);
if not (compstr(buf1, buf2) )then
begin
writeln(diff, ´line: ´+ inttostr(l) + ´-´ + buf1);
writeln(diff, ´line: ´+ inttostr(l) + ´-´ + buf2);
writeln(diff, ´ ´);
end;
inc(l);
end;
closefile(f1);
closefile(f2);
closefile(diff);
end;
function tform1.compstr(s1, s2 : string) : boolean;
var
i : integer;
btemp : boolean;
begin
btemp := true;
if (length(s1) <> length(s2)) then begin
btemp := false;
end
else begin
for i:= 1 to length(s1) do begin
if (s1[i] <> s2[i]) then begin
btemp := false;
exit;
end;
end;
end;
result := btemp;
end;
Espero ter ajudado.
GOSTEI 0