Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Редактирование БОЛЬШОГО файла
 
 автор: ValeV   (23.12.2009 в 21:48)   письмо автору
 
 

Есть большой текстовый файл
Необходимо изменить любую строку.

  Ответить  
 
 автор: Саня   (23.12.2009 в 22:10)   письмо автору
 
   для: ValeV   (23.12.2009 в 21:48)
 

Нужно скопировать содержимое файла до изменяемой строки в новый файл. Записать изменённую строку и скопировать оставшуюся часть файла, пропуская изменяемую строку (всё это тоже в новый файл).
Фот функции, которые вам понядобятся: fopen(), fread(), fwrite(), fseek().

  Ответить  
 
 автор: ValeV   (23.12.2009 в 22:21)   письмо автору
 
   для: Саня   (23.12.2009 в 22:10)
 

Как грамотно это сделать?
Как переписать файл если его читают пользователи?

  Ответить  
 
 автор: Саня   (23.12.2009 в 22:31)   письмо автору
 
   для: ValeV   (23.12.2009 в 22:21)
 

Я только что рассказал как это грамотно сделать. И с пользователями ничего не случится. Только нужно не забыть удалить старый файл и переименовать новый.

  Ответить  
 
 автор: ValeV   (23.12.2009 в 22:40)   письмо автору
 
   для: Саня   (23.12.2009 в 22:31)
 

Как его удалить, если его в этот момент читают?
Кусочек кода можно?

  Ответить  
 
 автор: cheops   (24.12.2009 в 15:26)   письмо автору
 
   для: ValeV   (23.12.2009 в 22:40)
 

Лучше воспользоваться функцией copy(), которая заменит файл - причем не физически, а просто переключит точки входа на уровне операционной системы.

  Ответить  
 
 автор: ValeV   (24.12.2009 в 16:04)   письмо автору
 
   для: cheops   (24.12.2009 в 15:26)
 

Можно определить момент, когда файл никто не читает ИЛИ
при использовании фунции copy() это не играет роли

  Ответить  
 
 автор: Loki   (24.12.2009 в 16:41)   письмо автору
 
   для: cheops   (24.12.2009 в 15:26)
 

>функцией copy(), которая заменит файл - причем не физически
не о rename() ли идет речь?

  Ответить  
 
 автор: ValeV   (24.12.2009 в 23:39)   письмо автору
 
   для: cheops   (24.12.2009 в 15:26)
 

Заменит ли файл функция copy(), если файл заблокирован другими процессами?
Как определить, занят ли файл (заблокирован) "читателями", не используя fopen()?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования