![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с текстовым файлом
Ламот © (2006-07-06 12:15:00)Добрый день!
Совсем плохой стал - не могу дописать в текстовый файл... пробую так:
procedure TForm1.FormCreate(Sender: TObject);
var s:string;
begin
AssignFile(f,'temp.txt');
if not(FileExists('temp.txt')) then rewrite(f) //если файла не существует - создаем
else
begin
reset(f); // если существует - открываем
while not(EoF(f)) do read(f,s); //переход в конец файла... похоже в этом месте у меня и того - мысль подгуляла...! ((
end;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
writeln(f,key); //если файл был создан - все нормально отробатывает,
//если файл был открыт и пытаемся дописать:
//Project Project1.exe raised exception class EInOutError with message 'I/O error 105'. Process stopped.
//Use Step or Run to continue.
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(f);
end;
f описана глобально как f:TextFile;
Если не лепить while - ошибка та же самая и в том же месте...
В справке по reset’y описан пример с чтением из файла, а как дописать?
Зы. сейчас дошёл до того, что если файл существует:
1 открываю его reset’ом
2 читаю все содержимое в буфер
3 закрываю
4 перезаписываю его (rewrite)
5 кидаю обратно содержимое буфера, и после этого уже начинаю дописывать...
Каороче - бред какой-то получается, единственный плюс такого бреда - работает... ))
Ламот (2006-07-06 12:22:00) [1]Дякую! )))
Dmitrij_K (2006-07-06 12:21:00) [2]AssignFile
If FileExists then Append else Rewrite
Writeln
CloseFile
MBo (2006-07-06 12:19:00) [3]используй Append вместо Rewrite