Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запись в файле record как найти нужную запись


Vic-z ©   (2007-01-05 13:41:00) 

Структура записи в файле такая

TBase_f=record
  tel: String[15];
  fio: String[80];
  ul: String[80];
  gor: String[40];
  dus: String[15];
end;
var
 Form1: TForm1;
 f: File of TBase_f;
 rec: TBase_f;      
 n: Integer;      
 tel_red,fio_red,ul_red,gor_red,dus_red:String;

так читаю все записи

procedure TForm1.FormCreate(Sender: TObject);
begin
 AssignFile(f,'c:\tel.db');
 Reset(f);
 while not EOF(f) do
    begin
       read(f, rec);
       begin
           n:=n+1;
           StringGrid1.Cells[0,n]:= rec.tel;
           StringGrid1.Cells[1,n]:= rec.fio;
           StringGrid1.Cells[2,n]:= rec.ul;
           StringGrid1.Cells[3,n]:= rec.gor;
           StringGrid1.Cells[4,n]:= rec.dus;
       end;
 end;
 CloseFile(f);
end;

а как можно найти конкретную запись в файле например по номеру телефона rec.tel
типа вводим номер в Edit1.text и кликаем на Button1
и как найти все записи если введен номер не полностью, например ищем 2234
получаем все записи 22341,22342...22349


Anatoly Podgoretsky   (2007-01-05 14:10:00) [1]

> Vic-z  (05.01.2007 14:05:04)  [4]

Дает признак, что запись удалена.
Структура никак не изменится.
Если структура изменится, то пиши пропало.

Твои вопросы не тянуют на начинающего, они ниже.


Anatoly Podgoretsky   (2007-01-05 14:08:00) [2]

> Vic-z  (05.01.2007 13:55:02)  [2]

if POS('шаблон', rec.tel) > 0 then


Vic-z   (2007-01-05 14:05:00) [3]


> tesseract ©   (05.01.07 14:00) [3]
> Изменить можно, Seek(f,RecordNo*SizeOf(Tbase_F)) / Write(f,
>  NewRecord).
спасибо
> Удалить нельзя, только ввести пометку "удалён", или записать
> туда новую запись.

пометка "удалён" что дает? можно подробнее как измениться структура файла?


tesseract   (2007-01-05 14:00:00) [4]


> И можно ли как то удалить или изменить найденую запись где
> то в середине файла?


Изменить можно, Seek(f,RecordNo*SizeOf(Tbase_F)) / Write(f, NewRecord).

Удалить нельзя, только ввести пометку "удалён", или записать туда новую запись.


Vic-z   (2007-01-05 13:55:00) [5]


> Anatoly Podgoretsky ©   (05.01.07 13:45) [1]
> if rec.tel = ... then

а как по неполностью введенному номеру отобразить все найденные записи, вероятно как то использовать рег.выражения (не знаю как, подскажите)?
И можно ли как то удалить или изменить найденую запись где то в середине файла?


Anatoly Podgoretsky   (2007-01-05 13:45:00) [6]

> Vic-z  (05.01.2007 13:41:00)  [0]

if rec.tel = ... then


Наверх

Титульная страница Поиск, карта сайта Написать письмо