Как считать данные из файла до его eof?
Как в переменную типа char* или AnsiString занести все содержимое файла? а потом, в том же порядке из этой переменной переместить данные в файл?
TStringList не подойдет?
char* File;
FilePtr=FileOpen("file.dat", fmOpenRead);
FileSize=FileSeek(FilePtr,0,2);
FileSeek(FilePtr,0,0);
File=new char[FileSize+1];
FileRead(FilePtr,File,FileSize);
// это было открытие и считывание. теперь сохранение
FilePtr=FileOpen("file.dat", fmOpenWrite);
FileWrite(FilePtr,File,FileSize);
или
TStringList* L=new TStringList(/*не помню, есть ли у него простой конструктор, которому никаких параметров не надо. может, придется тут что-то указать*/);
L->LoadFromFile("file.dat");
L->SaveToFile("file.dat");
[ Это Сообщение было отредактировано MuToGeN в 2002-08-21 0410 ]
Большое спасибо. Правда при сохранении файла, если его не существует, он его не создает, в чем причина? Как испрваить?
как это не создает?! - очень даже создает... - сам постоянно с инишниками так работаю...
Так вот Relax, что это нас с тобой удалили? Вроде все нормально было... А?
ты имеешь ввиду - из базы регистрации? - Майк писал, что сбой у него был - пришлось откатиться на пару месяцев...
// Задаем адрес файла из которого идет считывание...
String sAdress="c\\autoexec.bat";
// Создаем tsLoFile типа TStringList
TStringList * tsLoFile=new TStringList();
// Загружаем наш файлик...
tsLoFile->LoadFromFile(sAdress);
// Перебераем строки файла по циклу
for (int i=0; i<tsLoFile->Count;i++)
{
// В данном случае выводим строчки файла на экран а можно было бы с ними и чего по ужастливее сделать
ShowMessage(tsLoFile->Strings);
}
// Указываем имя другого файла в который пойдет сохранение
sAdress="c\\autoex1.bat";
// Сохраняем
tsLoFile->SaveToFile(sAdress);
// Вот и все всего то нужно использовать TStringList (а то вы без меня не знали )и его встроенные методы LoadFromFile и SaveToFile
// Чуть не оскандалился надо же еще и удалить созданный объект...
delete tsLoFile;