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;
}
| |
|
|