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

 
Функции чтения из файла, Помогите, пожалуйста!
Aptem
Отправлено: 26.02.2005, 11:06


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

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



Неужели все функции (fgets, fread, fscanf) чтения из файла прерывают свою работу если встречают конец строки?

Например, я хочу чтобы функция считала 100 байт из файла, но если 60 байт занимает символ конца строки, то функция вернет только первые 59 байт. Можно ли исправить данную ситуацию?

Я пробывал загружать весь файл в TMemo, но проблема в том, что файл весит 8 мегабайт, соотвественно постоянно загружать 8 мегабайт в TMemo не представляется возможным.

Можно ли как-нибудь считать нужное количество байт из файла не смотря на всякие там символы конца строки?

Спасибо за внимание.
Vasily
Отправлено: 26.02.2005, 12:43


Дежурный стрелочник

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



Функция fread является функцией неформатированного чтения, поэтому она не может отслеживать конец строки, она прекращает свою работу, только если встречает конец файла. Есть различие когда читаешь в текстовом или бинарном режиме и все. Если читаешь в бинарном режиме, то `enter`занимает два байта (конец строки + перевод коретки)
CODE
{
char L[101]="                                                                                                    ";
FILE* F;
F=fopen("1.txt","rb");
fread(&L,sizeof(char),100,F);
fclose(F);
Memo2->Text=L;
}

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