Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа с потоками

6.5K
06 марта 2006 года
SkyHawk
43 / / 20.10.2005
Народ! Помогите!
Работаю с файлом через потоки. Все ничего, но надо в середине файла отредактировать строку (что-то удалить, что-то добавить). Подскажите, как можно добиться сего. Неужели нету таких функций, и придется перезаписывать весь файл?
830
06 марта 2006 года
MVal
76 / / 17.10.2002
Просто так удалить / вставить скорее всего не получится, т.к. это сдвиг.
Можно либо считать все в память (если он не очень большой), дописать до места удаления. Пропустить. Писать дальше.
Либо использовать копию файла (если он вседке большой) - второй TFileStream. После чего удалить первый файл и переименовать временный.
Либо не удалять данные а поставить какую-нибудь пометку, что запись удалена (если файл содержит набор записей) - примерно так работают почти все базы данных. Достоинство - скорость "удаления". Недостатки - "замусоривание" файла.
6.5K
06 марта 2006 года
SkyHawk
43 / / 20.10.2005
Цитата:
Originally posted by MVal
Просто так удалить / вставить скорее всего не получится, т.к. это сдвиг.
Можно либо считать все в память (если он не очень большой), дописать до места удаления. Пропустить. Писать дальше.
Либо использовать копию файла (если он вседке большой) - второй TFileStream. После чего удалить первый файл и переименовать временный.
Либо не удалять данные а поставить какую-нибудь пометку, что запись удалена (если файл содержит набор записей) - примерно так работают почти все базы данных. Достоинство - скорость "удаления". Недостатки - "замусоривание" файла.



Спасибо, MVal. Буду экспериментировать.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог