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

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

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

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

Сообщение sashenka » 15.02.2010 10:27:22

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

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

Работаю с файлом типа запись, пишу по оналогии как в среде 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
sashenka
незнакомец
 
Сообщения: 2
Зарегистрирован: 15.02.2010 10:16:48

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

Сообщение Mr.Smart » 15.02.2010 11:14:20

sashenka
Во первых используйте тег [code] для кода в посте.
Во вторых не используйте тип String т.к. он является указателем на область в памяти.
Если всё же необходимо писать строки пользуйтесь определённой длиной строки String[15] или типом ShortString.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

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

Сообщение AbakAngelSoft » 15.02.2010 12:01:59

Кстати в delphi такой код тоже вызовет AV
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

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

Сообщение sashenka » 15.02.2010 14:02:02

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


Спасибо)

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


Значит уже запамятывал... что и куда :mrgreen:
sashenka
незнакомец
 
Сообщения: 2
Зарегистрирован: 15.02.2010 10:16:48


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: MailRu[bot] и гости: 51

Рейтинг@Mail.ru