15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

Borland C++ Builder FAQ
Составлен по материалам форума на Исходниках.Ru
Содержание Последнее обновление: 14.02.2004

Строки( AnsiString ) и бинарные файлы

Автор: trainer
Исходная ссылка: - - -

Запись в двоичный файл
Для того, чтобы записать AnsiString в бинарный файл, его нужно сначала преобразовать к массиву char.
Пример записи в файл:
TFileStream *out = new TFileStream("info", fmCreate); // создаем файл 
if( out != NULL ) { 
   AnsiString text = "www.sources.ru"; // исходная строка 
   int size = text.Length();
   out->Write(&size, sizeof(size)); 
   if( size != 0 ) out->Write(text->data(), size); 
} 
delete out;

Чтение из двоичного файла
Пример реализации:
AnsiString text;
TFileStream *in = new TFileStream("info",fmOpenRead); // открываем файл 
if( in != NULL ) { 
   int size; 
   in->Read(&size, sizeof(size)); 
   if( size != 0 ) { 
      try { 
         text.SetLength(size); 
         in->Read((void *)(text.data()), size); 
      } catch( EOutOfMemory& ) {} 
   } 
} 
delete in; 

ShowMessage(text);