Блок-схема
unit Unit1;
……
end;
const
filename='d:\Library.txt';
var
Form1: TForm1;
f:textfile;
s,str:string;
i,ind:integer;
type
rc=record
s1:string[10];
s2:string[20];
s3:string[30];
s4:string[4];
s5:string[3];
s6:string[2];
end;
var rec:rc;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
var s:string;
tmps:char;
begin
stringgrid1.RowCount:=1;
s:=edit1.Text;
assignfile(f,filename); //связываем файловую переменную f с физическим файлом на диске
reset(f); //пробуем открыть файл для чтения
readln(f,tmps); //считываем две первые строки из файла они не нужны - это шапка
readln(f,tmps);
ind:=1;
while not eof(f) do //цикл пока не достигнут конец файла
begin
{Далее читаем строку из файла в переменные rec.s1-rec.s6, в переменную tmps считываем символ "|",
который разделяет столбцы в файле}
read(f,rec.s1);
read(f,tmps);
read(f,rec.s2);
read(f,tmps);
read(f,rec.s3);
read(f,tmps);
read(f,rec.s4);
read(f,tmps);
read(f,rec.s5);
read(f,tmps);
readln(f,rec.s6);
if pos(s,rec.s2)<>0 then
begin
stringgrid1.rowcount:=ind+1; //увеличиваем количество строк в таблице на форме на 1
stringgrid1.cells[0,ind]:=inttostr(ind); //выводим в таблицу на форме считанные данные
stringgrid1.cells[1,ind]:=rec.s1;
stringgrid1.cells[2,ind]:=rec.s2;
stringgrid1.cells[3,ind]:=rec.s3;
stringgrid1.cells[4,ind]:=rec.s4;
stringgrid1.cells[5,ind]:=rec.s5;
stringgrid1.cells[6,ind]:=rec.s6;
ind:=ind+1; //увеличиваем индекс на 1
end;
end;
closefile(f); //закрываем файл
end;
procedure TForm1.FormActivate(Sender: TObject);
var tmps:char;
begin
{Вывод шапки таблицы на форме}
stringgrid1.Cells[0,0]:='№';
stringgrid1.Cells[1,0]:='Шифр';
stringgrid1.Cells[2,0]:='Автор';
stringgrid1.Cells[3,0]:='Название книги';
stringgrid1.Cells[4,0]:='Год';
stringgrid1.Cells[5,0]:='№ стелажа';
stringgrid1.Cells[6,0]:='№ полки';
{Установка ширины столбцов таблицы на форме}
stringgrid1.ColWidths[0]:=20;
stringgrid1.ColWidths[1]:=65;
stringgrid1.ColWidths[2]:=140;
stringgrid1.ColWidths[3]:=190;
stringgrid1.ColWidths[4]:=40;
stringgrid1.ColWidths[5]:=70;
stringgrid1.ColWidths[6]:=60;
end;
end.