Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > LoadFromFile, SaveToFile разные результаты


Автор: dampilster 19.12.2008, 17:10
Сабж, делаю банальное чтение файла, а потом запись, но резульаты разные! Размер исходного примерно 1,332 а результат конечного, 1,227. Куда деваются эти килобайты? И как обойти эту проблему?

Код


TStringList *file= new TStringList;

file->LoadFromFile("files//test.txt");

file->SaveToFile("files//lalala.txt");



Зарание спасибо.

Автор: Alca 19.12.2008, 18:00
А ты сравни файлы по содержимому в бинарном режиме.
Вот прога: IDM UltraCompare Professional 6.00.2, которая умеет сранивать файлы.
Скорее всего "\r\n" заменяется на "\n".

Автор: Artemon 19.12.2008, 18:06
Код

FILE* f = fopen("test.txt", "rb");
fseek(f,0,SEEK_END);
DWORD Fsize = ftell(f);

char* data = new char[ Fsize ];

fseek(f,0,SEEK_SET);
fread(data,  Fsize, 1, f);

FILE* f = fopen("lalala.txt", "wb");
fwrite(data,  Fsize, 1, f);


Добавлено через 4 минуты и 22 секунды
Код

FILE* f = fopen("test.txt", "rb");
fseek(f,0,SEEK_END);
DWORD Fsize = ftell(f);

char* data = new char[ Fsize ];

fseek(f,0,SEEK_SET);
fread(data,  Fsize, 1, f);

FILE* f = fopen("lalala.txt", "wb");
fwrite(data,  Fsize, 1, f);

Автор: dampilster 19.12.2008, 19:16
Вообще проблема заключается в том, что мне нужно оперировать с содержимым файла, но оно не считывается до конца (тупо берёт, и кусок не считывается) может LoadFromFile находил например символ \0 типа конец строки или файла?

Автор: dampilster 19.12.2008, 19:44
Да, похоже в файле встречаюся символы \0 и строка не читается после них, подскажите как их можно убрать?

Автор: mrbrooks 20.12.2008, 11:08
dampilster, StringReplace думается спасет отца русской демократии.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)