Не работает Tdbf.Locate

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Не работает Tdbf.Locate

Сообщение ViruZ » 20.04.2007 10:06:15

Стоит задача: сравнить 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 (структура полей копируется из первого файла)
Что у меня не так?
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение ViruZ » 23.04.2007 15:53:40

Тема закрыта - оказалось, проблема в сравниваемых DBF-файлах: в первом стоял пробел перед номером счета, во втором - после. Прошу прощения за беспокойство.
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 245

Рейтинг@Mail.ru