Удаление строки из файла
Есть программа, добовляющая строки (данные) в конец файла.
А как удалить определенную строку из файла?
Приложение консольное.
Заранее благодарен за помощь.
Есть файл, содержащий строки.
Есть программа, добовляющая строки (данные) в конец файла.
А как удалить определенную строку из файла?
Приложение консольное.
Заранее благодарен за помощь.
вот есть некоторый код (не мой сразу говорю, где-то нашел, может даже на этом форуме), но он правда написан с использованием vcl.h, если поможет :)
В том плане хоть с ним и проще все сделать как я посмотрел, но понимаю я все это пока что с трудом.
Может есть еще варианты аля "для чайников", даже если они будут более громоздкими?
Ой ой, vcl.h для пока еще сложноват.
В том плане хоть с ним и проще все сделать как я посмотрел, но понимаю я все это пока что с трудом.
Может есть еще варианты аля "для чайников", даже если они будут более громоздкими?
тогда ручками парсить файл, находить необходимую строку и удалять, ничего сложного. Пиши код чем сможем поможем :)
Я просто не знаю ни одного оператора, который смог бы удалить одну единственную строку не затронув другие.
Поэтоиу я себе это представляю как:
переписать все строки кроме удаляемой в ТМП-шный файл, затем затереть основной и переписать в него все из тмп.
Наверно как-то так.
Я на правильном пути, мужики?
Это само собой разуеется.
Я просто не знаю ни одного оператора, который смог бы удалить одну единственную строку не затронув другие.
Поэтоиу я себе это представляю как:
переписать все строки кроме удаляемой в ТМП-шный файл, затем затереть основной и переписать в него все из тмп.
Наверно как-то так.
Я на правильном пути, мужики?
Я бы на твоем месте сделал так:
1. Пропарсил файлик и загнал его в контейнер
2. Потом нашел нужную строчку и удалил ее
3. Записал бы все это дело обратно в файлик
Вот я на днях такие для себя результаты получил, файл размер 61Mb парсится за 3 секунды, 1.000.000 строк переменной длинны, на слабеньких машинах Celeron 1700, 256Mb секунд 10. А файлы размером до 10Mb за доли секунд. :D
Все благодаря STL. Читай не пожалеешь, там много алгоритмов уже реализовано, в том числе и поиск.
Спасибо большое за напутствие, буду изучать.
Сделал всетаки как задумывал.
Цикл записывыет tmp файл до тех пор пока не попадается удаляемая строка. После попадания цикл откидывается и дальше начинается следующий такойже, только начинается он со строки следующей за удаляемой. Затем tmp файл полностью копируется в основной и все дела.
Но контейнеры это, новерно, ваще руль... Надо будет заняться.
Нифига я в общем не понял с этими контейнерами.
Сделал всетаки как задумывал.
Цикл записывыет tmp файл до тех пор пока не попадается удаляемая строка. После попадания цикл откидывается и дальше начинается следующий такойже, только начинается он со строки следующей за удаляемой. Затем tmp файл полностью копируется в основной и все дела.
Но контейнеры это, новерно, ваще руль... Надо будет заняться.
Прочитай: Николай Джосьютис "С++ Стандартная библиотека", там по-моему с 5 главы то что тебе нужно.