C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как добавить строку в конец текстового файла?
Guest
Отправлено: 13.09.2004, 09:33


Не зарегистрирован







Спасиб
Gedeon
Отправлено: 13.09.2004, 10:22


Ветеран

Группа: Модератор
Сообщений: 1742



CODE

bool __fastcall TDM::WriteToFileMsg(AnsiString FileName, AnsiString Msg)
{
   if(!FileExists(FileName)){
       HANDLE File = CreateFile(FileName.c_str(),NULL,NULL,NULL,
        CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
       CloseHandle(File);
   }
   char* WriteFileName = FileName.c_str();
   char* WriteMessage = Msg.c_str();

   FILE *file = fopen(WriteFileName,"a+");
   if(!file) return false;


   for(unsigned int i=0; i<strlen(WriteMessage); i++){
       if(fputc(WriteMessage[i],file)==EOF) return false;
   }
   if(fclose(file)==EOF) return false;
   return true;
}
//---------------------------------------------------------------------------

Если файла нет, то создает его и пишет туда Msg, если есть дописывает Msg в конец.
Guest
Отправлено: 17.09.2004, 17:32


Не зарегистрирован







а в середину? или в начало?
Konstantine
Отправлено: 20.09.2004, 08:25


Мастер участка

Группа: Модератор
Сообщений: 545



открываешь FileOpen для Append и потом FileSeek устанавливаешь тек. позицию. Закрыть — FileClose.

Можно и так: (если текст не большой) — так понятнее:
CODE
TStringList* file;
file=new TStringList;
file->LoadFromFile("FileName");
file->Add("New String").// добавляешь строку в file
file->SaveToFile("FileName");
delete file;
xim
Отправлено: 22.09.2004, 10:11


Станционный диспетчер

Группа: Участник
Сообщений: 143



QUOTE (Guest @ 17/09/2004, 18:34)
а в середину? или в начало?

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

Вернуться в Вопросы программирования в C++Builder