Стоит задача: сравнить 2 DBF-файла по заданому полю (№ счета). Написал следующий код:
procedure TFormFieldSelect.BitBtn1Click(Sender: TObject);
var
fld1,fld2 : String;//поля, по яких буде відбуватись порівняння
s : String;
i,j : Integer;//цикл по записах
data : Variant;//дані для пошуку і порівняння
begin
s := CheckListBox1.GetSelectedText;
for i := 1 to Length(s)-2 do fld1 := fld1+s[i];
s := CheckListBox2.GetSelectedText;
for i := 1 to Length(s)-2 do fld2 := fld2+s[i];
with DBFCompareForm do begin
Dbf1.First;
for i := 1 to Dbf1.RecordCount do begin
Data := Dbf1.FieldByName(fld1).AsVariant;
if Dbf2.Locate(fld2,data,[loCaseInsensitive]) then begin
Dbf3.Append;
for j := 0 to Dbf1.FieldCount-1 do Dbf3.Fields[j].AsString := Dbf1.Fields[j].AsString;
Dbf3.Post;
end;//if dbf2
Dbf1.Next;
end;//for i
end;//with
end;
В результате получаю пустой файл out.dbf (структура полей копируется из первого файла)
Что у меня не так?