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

Ваш аккаунт

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

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

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

Удаление строки из файла

2.8K
24 апреля 2006 года
Unglued
119 / / 15.09.2005
Есть файл, содержащий строки.
Есть программа, добовляющая строки (данные) в конец файла.
А как удалить определенную строку из файла?

Приложение консольное.
Заранее благодарен за помощь.
335
24 апреля 2006 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Unglued
Есть файл, содержащий строки.
Есть программа, добовляющая строки (данные) в конец файла.
А как удалить определенную строку из файла?

Приложение консольное.
Заранее благодарен за помощь.



вот есть некоторый код (не мой сразу говорю, где-то нашел, может даже на этом форуме), но он правда написан с использованием vcl.h, если поможет :)

2.8K
24 апреля 2006 года
Unglued
119 / / 15.09.2005
Ой ой, vcl.h для пока еще сложноват.
В том плане хоть с ним и проще все сделать как я посмотрел, но понимаю я все это пока что с трудом.

Может есть еще варианты аля "для чайников", даже если они будут более громоздкими?
335
24 апреля 2006 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Unglued
Ой ой, vcl.h для пока еще сложноват.
В том плане хоть с ним и проще все сделать как я посмотрел, но понимаю я все это пока что с трудом.

Может есть еще варианты аля "для чайников", даже если они будут более громоздкими?



тогда ручками парсить файл, находить необходимую строку и удалять, ничего сложного. Пиши код чем сможем поможем :)

2.8K
24 апреля 2006 года
Unglued
119 / / 15.09.2005
Это само собой разуеется.
Я просто не знаю ни одного оператора, который смог бы удалить одну единственную строку не затронув другие.

Поэтоиу я себе это представляю как:
переписать все строки кроме удаляемой в ТМП-шный файл, затем затереть основной и переписать в него все из тмп.

Наверно как-то так.
Я на правильном пути, мужики?
335
24 апреля 2006 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Unglued
Это само собой разуеется.
Я просто не знаю ни одного оператора, который смог бы удалить одну единственную строку не затронув другие.

Поэтоиу я себе это представляю как:
переписать все строки кроме удаляемой в ТМП-шный файл, затем затереть основной и переписать в него все из тмп.

Наверно как-то так.
Я на правильном пути, мужики?



Я бы на твоем месте сделал так:
1. Пропарсил файлик и загнал его в контейнер
2. Потом нашел нужную строчку и удалил ее
3. Записал бы все это дело обратно в файлик

Вот я на днях такие для себя результаты получил, файл размер 61Mb парсится за 3 секунды, 1.000.000 строк переменной длинны, на слабеньких машинах Celeron 1700, 256Mb секунд 10. А файлы размером до 10Mb за доли секунд. :D
Все благодаря STL. Читай не пожалеешь, там много алгоритмов уже реализовано, в том числе и поиск.

2.8K
24 апреля 2006 года
Unglued
119 / / 15.09.2005
Это уже кое-что.

Спасибо большое за напутствие, буду изучать.
2.8K
25 апреля 2006 года
Unglued
119 / / 15.09.2005
Нифига я в общем не понял с этими контейнерами.
Сделал всетаки как задумывал.

Цикл записывыет tmp файл до тех пор пока не попадается удаляемая строка. После попадания цикл откидывается и дальше начинается следующий такойже, только начинается он со строки следующей за удаляемой. Затем tmp файл полностью копируется в основной и все дела.

Но контейнеры это, новерно, ваще руль... Надо будет заняться.
335
25 апреля 2006 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Unglued
Нифига я в общем не понял с этими контейнерами.
Сделал всетаки как задумывал.

Цикл записывыет tmp файл до тех пор пока не попадается удаляемая строка. После попадания цикл откидывается и дальше начинается следующий такойже, только начинается он со строки следующей за удаляемой. Затем tmp файл полностью копируется в основной и все дела.

Но контейнеры это, новерно, ваще руль... Надо будет заняться.



Прочитай: Николай Джосьютис "С++ Стандартная библиотека", там по-моему с 5 главы то что тебе нужно.

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