
07.05.2009, 17:18
|
Активный
|
|
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
|
|
Как используется
Код:
Type
PRec = ^TRec;
TRec = record
TabNum : integer;
FIO : string[64];
Oklad : real;
end;
procedure TForm1.Button1Click(Sender: TObject);
//Добавить запись в файл
Var
PMyRec : PRec; //буфер для записи в файл
TabNum : integer;
FileName : string; //имя файла
begin
FileName:=MainDir+'MyFile.dat';
ListBox1.Items.Add('CountRec before: '+IntToStr(CountRecInFile(FileName, SizeOf(TRec))));
//------------------------------------------------
//блок подготовки данных для записи в файл
TabNum:=CountRecInFile(FileName, SizeOf(TRec));
if TabNum<0 then TabNum:=0;
TabNum:=TabNum+1;
//------------------------------------------------
NEW(PMyRec); //Создаем дин.переменную
TRY
//-----------------------------------------
//Записываем данные в буфер
PMyRec^.TabNum := TabNum;
PMyRec^.FIO := 'FIO_'+IntToStr(TabNum);
PMyRec^.Oklad := TabNum*100+0.75;
//-----------------------------------------
AppendRecToFile(FileName, POINTER(PMyRec), SizeOf(TRec)); //Сохраняем буфер в файл
FINALLY
Dispose(PMyRec); //освобождаем ресурсы
END;
ListBox1.Items.Add('CountRec after: '+IntToStr(CountRecInFile(FileName, SizeOf(TRec))));
end;
procedure TForm1.LoadClick(Sender: TObject);
//Прочитать содержимое файла
Var
PMyRec : PRec; //буфер для записи в файл
iRec,CountRec : integer;
FileName : string; //имя файла
begin
FileName:=MainDir+'MyFile.dat';
CountRec:=CountRecInFile(FileName, SizeOf(TRec)); //определим кол-во записей в файле
if CountRec>0 then begin
ListBox1.Items.Clear; //сюда будем выводить данные
NEW(PMyRec); //Создаем дин.переменную
TRY
for iRec:=0 to (CountRec-1) do
begin
GetRecFromFile(FileName, POINTER(PMyRec), iRec, SizeOf(TRec)); //Читаем из файла в буфер
//--------------------------
//Что-то делаем с этими данными
ListBox1.Items.Add(IntToStr(iRec) + '. '+IntToStr(PMyRec^.TabNum)+' '+trim(PMyRec^.FIO)+' '+FloatToStr(PMyRec^.Oklad));
//--------------------------
end;
FINALLY
Dispose(PMyRec); //освобождаем ресурсы
END;
end;
end;
|