Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TFileStream [D7, XP]


Страницы:   1 2

Очень Злой ©   (2011-10-03 16:04:00) 

Нужно добавить данные в конец файла, если файла нет - то создать его.
Вопрос в том, какой режим открытия нужно использовать?

fmOpenWrite или fmOpenWrite or fmCreate

И если файл существует, то нужно ли вручную передвигать позицию или она сама встанет в конец файла?


Очень Злой   (2011-10-03 16:49:00) [21]


> if FileExists(aFileName) then


Т.е. предлагаете сначала вручную проверить наличие файла?

Просто я думал что TFileStream сам может определить что файла нет и создать его...


Ega23   (2011-10-03 16:36:00) [22]


> Нужно добавить данные в конец файла, если файла нет - то
> создать его.


with TMemoryStream.Create do
 try
   if FileExists(aFileName) then
   begin
     LoadFromFile(aFileName);
     Position := Size;
   end;
   WriteBuffer(.....);
   SaveToFile(aFileName);
 finally
   Free;
 end;


Очень Злой   (2011-10-03 16:36:00) [23]

если делаю так:
procedure TFrmMain.Button4Click(Sender: TObject);
var
s:string;
begin
s:='Тра-та-та';
with TFileStream.Create('s.txt', fmOpenWrite) do
try
  Seek(0,soFromEnd);
  WriteBuffer(s[1],length(s));
finally
  free;
end;
end;


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

А если так:
procedure TFrmMain.Button4Click(Sender: TObject);
var
s:string;
begin
s:='Тра-та-та';
with TFileStream.Create('s.txt', fmCreate or fmOpenWrite) do
try
  Seek(0,soFromEnd);
  WriteBuffer(s[1],length(s));
finally
  free;
end;

end;

то файл создается, но к существующим файлам ничего не дописывается...


Anatoly Podgoretsky   (2011-10-03 16:15:00) [24]

Раз, хочешь создать, то естественно надо fmCreate


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо