Это просто код работает нормально, чтобы проверить, если строки отличаются, уже когда я пытаюсь проверить, равны ли они, ни один элемент не найден, когда есть два файла с одинаковой строкой в одном и том же индексе строки на обоих. Чего здесь не хватает?
PS: SameStr()
также был протестирован и не работает.
function 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;
procedure 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:\Equals.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, {extractfilename(filename1) + ' : ' +} inttostr(l) + ' - ' + buf1);
// writeln(diff, extractfilename(filename2) + ' : ' + inttostr(l) + ' - ' + buf2);
// writeln(diff, ' ');
end;
inc(l);
end;
closefile(f1);
closefile(f2);
closefile(diff);
end;