Как дописать файл

 

Привет! Вопрос, возможно, глупый, но все же: как дописать файл а не переписать его?

   int handle=FileOpen("Random Text",FILE_WRITE|FILE_TXT,0);

   for(int i=0;i<length;i++)
   {
      FileWriteString(handle,Mass[i]); 
   }
   
   FileClose(handle);

Сделал так а дальше мне надо что бы файл дописывался с новой строки а не переписывался с 0...

 

FileSeek()

SEEK_END

Применяйте перед тем, как будете дописывать 
 
Nikita Chernyshov:

FileSeek()

SEEK_END

bool  FileSeek(
   int                  file_handle,     // handle файла
   long                 offset,          // в байтах
   ENUM_FILE_POSITION   origin           // позиция для отсчета
   );

спасибо, я это видел, подумал не то... я не могу понять что значит offset... не подскажете?

номер строки что ли?

 
   int handle=FileOpen("Random Text",FILE_WRITE|FILE_TXT,0);
   if(!FileSeek(handle,0,SEEK_END))
   {
      Print(GetLastError());
      return;
   }

   for(int i=0;i<length;i++)
   {
      FileWriteString(handle,Mass[i]);
      Print(Mass[i]);
   }
   
   FileClose(handle);

что-то не так сделал... не работает

 
Maksim Neimerik:

bool  FileSeek(
   int                  file_handle,     // handle файла
   long                 offset,          // в байтах
   ENUM_FILE_POSITION   origin           // позиция для отсчета
   );

спасибо, я это видел, подумал не то... я не могу понять что значит offset... не подскажете?

номер строки что ли?

Количество байт от начала или конца файла.

 
Maksim Neimerik:

что-то не так сделал... не работает

Флаги неправильные. Если использовать только флаг FILE_WRITE, то файл всегда будет создаваться, затирая старый.

Для дозаписи нужен еще флаг FILE_READ.

 
Ihor Herasko:

Флаги неправильные. Если использовать только флаг FILE_WRITE, то файл всегда будет создаваться, затирая старый.

Для дозаписи нужен еще флаг FILE_READ.

Да, все работает, спасибо большое!

Причина обращения: