Работа с файлами типа запись

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

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

Ответить
sashenka
незнакомец
Сообщения: 2
Зарегистрирован: 15.02.2010 09:16:48

Работа с файлами типа запись

Сообщение sashenka »

Здравствуйте уважаемые господа программисты.

У меня следующая проблеммка, прошу оказать содействие.

Работаю с файлом типа запись, пишу по оналогии как в среде Delphi, не работает... может правда чего и подзабыл.. но все ж..
в общем нужно записать запись в файл, а потом ее прочитать..
вот код..

Запись в файл
type rec = record
name : string;
tel : string;
misc : string;
end;
var recs : rec;
f : file of rec;
...
with Form2 do
begin
recs.name:=trim(edit1.Text);
recs.tel:=trim(edit2.Text);
recs.misc:=trim(edit3.Text);
AssignFile(f,ExtractFilePath(Application.ExeName)+'addres.bk');
if FileExists(ExtractFilePath(Application.ExeName)+'addres.bk') then
Reset(f)
else
Rewrite(f);
write(f,recs);
CloseFile(f);
end;

А вот я пытаюсь прочитать...

type rec = record
name : string;
tel : string;
misc : string;
end;
var recs : rec;
f : file of rec;
...
assignfile(f,extractfilepath(Application.ExeName)+'addres.bk');
try
reset(f);
Seek(f,0);//System.FileSize(f));
except
ShowMessage('Ошибка открытия файла!');
end;
while not eof(f) do
begin
read(f,recs);
showmessage(recs.name);

end;
closefile(f);

ну собственно вот. При попытке прочитать выходит Project MyProject raised exception class "External:SIGFPE"

Буду очень признателен за любую помощь! :D
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

sashenka
Во первых используйте тег [code] для кода в посте.
Во вторых не используйте тип String т.к. он является указателем на область в памяти.
Если всё же необходимо писать строки пользуйтесь определённой длиной строки String[15] или типом ShortString.
Аватара пользователя
AbakAngelSoft
постоялец
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар
Контактная информация:

Сообщение AbakAngelSoft »

Кстати в delphi такой код тоже вызовет AV
sashenka
незнакомец
Сообщения: 2
Зарегистрирован: 15.02.2010 09:16:48

Сообщение sashenka »

Mr.Smart писал(а):sashenka
Во первых используйте тег [code] для кода в посте.
Во вторых не используйте тип String т.к. он является указателем на область в памяти.
Если всё же необходимо писать строки пользуйтесь определённой длиной строки String[15] или типом ShortString.


Спасибо)

Добавлено спустя 43 секунды:
AbakAngelSoft писал(а):Кстати в delphi такой код тоже вызовет AV


Значит уже запамятывал... что и куда :mrgreen:
Ответить