Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как открыть файл с помощью fopen() несколько раз
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! У меня такая проблема. Текстовый файл в dbf. Но это я сделала. Но почему открыть файл функцией fopen() можно только один раз? Запускаю программу -> данные переносяться -> потом чтобы еще раз повторить программу нужно закрыть FOX. Иначе идут пустые строки, т.е. файл как-бы открыт, но из него считываются пустые строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 05:08 |
|
||
|
Как открыть файл с помощью fopen() несколько раз
|
|||
|---|---|---|---|
|
#18+
приведите код, пожалуйста... как открываете файл, как его читаете и закрываете... и не совсем понятно, что значит идут пустые строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 05:58 |
|
||
|
Как открыть файл с помощью fopen() несколько раз
|
|||
|---|---|---|---|
|
#18+
Lena_yanЗдравствуйте! У меня такая проблема. Текстовый файл в dbf. Но это я сделала. Но почему открыть файл функцией fopen() можно только один раз? Запускаю программу -> данные переносяться -> потом чтобы еще раз повторить программу нужно закрыть FOX. Иначе идут пустые строки, т.е. файл как-бы открыт, но из него считываются пустые строки. Немного теории по работе с файлами через fopen. При открытии файла через fopen файл считывается в некоторый участок памяти и в программу возвращается идентификатор (номер) этого участка, т.е дескриптор файла. Указатель текущей позиции в файле устанавливается (естественно) на первый байт. При чтении происходит перемещение указателя на считанное число байт (позиций). Чтение прекращается при достижении специального символа конца файла. Попытка прочитать что-либо после этого символа не приводит к ошибке, но и не возвращает данных. Поэтому получается пустая строка. Необходимости одновременного открытия двух экземпляров файла как правило не возникает. Поэтому, такая ситуация и рассматривается как ошибка (дескриптор файла равен -1). Для повторной работы с файлом можно сделать следующее: - закрыть файл командой fclose и открыть его же снова через fopen; - переместить указатель на текущую позицию на начало файла при помощи функции fseek (описание смотри в Хелпе). А вообще, хорошим тоном является проверять достижение файлом своего конца, то есть делать примерно следующее: hfHandler=fopen(<Имя файла>) do while !feof(hfHandler) <Операции по чтению из файла > enddo If <Признак окончания работы с файлом и выхода из программы> =fclose(hfHandler) && Закроем файл else =fseek(hfHandler,0,0) && Вернемся на начало файла endif ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 06:57 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32808648&tid=1595308]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 391ms |

| 0 / 0 |
