|
|
|
| Есть большой текстовый файл
Необходимо изменить любую строку. | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 21:48)
| | Нужно скопировать содержимое файла до изменяемой строки в новый файл. Записать изменённую строку и скопировать оставшуюся часть файла, пропуская изменяемую строку (всё это тоже в новый файл).
Фот функции, которые вам понядобятся: fopen(), fread(), fwrite(), fseek(). | |
|
|
|
|
|
|
|
для: Саня
(23.12.2009 в 22:10)
| | Как грамотно это сделать?
Как переписать файл если его читают пользователи? | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 22:21)
| | Я только что рассказал как это грамотно сделать. И с пользователями ничего не случится. Только нужно не забыть удалить старый файл и переименовать новый. | |
|
|
|
|
|
|
|
для: Саня
(23.12.2009 в 22:31)
| | Как его удалить, если его в этот момент читают?
Кусочек кода можно? | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 22:40)
| | Лучше воспользоваться функцией copy(), которая заменит файл - причем не физически, а просто переключит точки входа на уровне операционной системы. | |
|
|
|
|
|
|
|
для: cheops
(24.12.2009 в 15:26)
| | Можно определить момент, когда файл никто не читает ИЛИ
при использовании фунции copy() это не играет роли | |
|
|
|
|
|
|
|
для: cheops
(24.12.2009 в 15:26)
| | >функцией copy(), которая заменит файл - причем не физически
не о rename() ли идет речь? | |
|
|
|
|
|
|
|
для: cheops
(24.12.2009 в 15:26)
| | Заменит ли файл функция copy(), если файл заблокирован другими процессами?
Как определить, занят ли файл (заблокирован) "читателями", не используя fopen()? | |
|
|
|