![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в файле по параметрам [D7, XP]
newhite © (2005-12-21 00:50:00)Помогите разобраться!!!
В файле sklad.db есть 11 записей типа рекорд. Этой процедурой запускается поиск в файле по параметрам из комбоксов. Проблема: некоторые записи (подходящие по поиску) повторяются в итоговом листбоксе по несколько раз. Что это может быть?
(плиз, хелп). завтра уже сдавать прогу :(
procedure TPoiskForm.Button2Click(Sender: TObject);
type
//запись файла
tovar=record
klas:string[20];
tip:string[20];
color:string[20];
price:string[20];
end;
var
f: file of tovar; // файл записей
rec: tovar; // запись, прочитанная из файла
n,i: integer; // кол-во записей удовлетворяющих запросу
st: string[200];
begin
AssignFile(f,'A:\sklad.db');
{$I-}
Reset(f); // открыть файл для чтения
{$I-}
if IOResult <> 0 then
begin
ShowMessage('Ошибка открытия файла БД.');
Exit;
end;
// обработка БД
if RadioButton2.Checked then
ListBox1.Items.Add('*** ' + ComboBox4.Text + ' ***');
if RadioButton3.Checked then
ListBox1.Items.Add('*** ' + ComboBox5.Text + ' ***');
if RadioButton4.Checked then
ListBox1.Items.Add('*** ' + ComboBox6.Text + ' ***');
n :=0;
ListBox1.Clear; // очистить список поля ListBox
while not EOF(f) do
begin
read(f,rec); //прочитать запись
if RadioButton1.Checked or
(rec.klas = ComboBox4.Text) or
(rec.tip = ComboBox5.Text) or
(rec.color = ComboBox6.Text) then
begin
n:=n+1;
st:='Велосипед: '+'класс: '+rec.klas+', тип рамы: '+rec.tip+', цвет: '+rec.color+', цена: $'+rec.price;
end;
listbox1.Items.add(st);
end;
closefile(f);
if n=0 then
showmessage('В БД нет запрашиваемой информации');
end;
Плохиш (2005-12-21 11:08:00) [1]
> end;
> listbox1.Items.add(st);
Эти две строки поменять местами