Russian Qt Forum
Сентябрь 30, 2024, 18:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с файлом  (Прочитано 2807 раз)
bez_glaz
Гость
« : Март 09, 2012, 10:36 »

Добрый день.
Стоит задача -  в текстовом файле зная номер строки удалить строчку.
Читая форумы, увидел только вариант создавать строку, записывать в неё все данные до нужной строки + все данные после нужной строки, очищать файл и вносить в него вновь созданную строку.
Вариант не подходит, файл может содержать больше информации, нежели вместит QString.
Записан
BRE
Гость
« Ответ #1 : Март 09, 2012, 10:44 »

А тут вариантов не много.
Например, создавай новый файл и построчно копируй туда строки из старого файла. Не нужную строку пропускай.
Записан
bez_glaz
Гость
« Ответ #2 : Март 09, 2012, 11:03 »

Наткнулся на метод с потоком. Единственное решение по "затиранию" в файле.
Код:
QTextStream out(&shadow_file);
Только возникает проблема, что просто затереть пробелами строчку нельзя, нужно именно стереть ее.
Может рыть в сторону потока ?
Записан
mutineer
Гость
« Ответ #3 : Март 09, 2012, 11:08 »

Наткнулся на метод с потоком. Единственное решение по "затиранию" в файле.
Код:
QTextStream out(&shadow_file);
Только возникает проблема, что просто затереть пробелами строчку нельзя, нужно именно стереть ее.
Может рыть в сторону потока ?

Просто удалить строку из файла нельзя, можно только перезаписью всего файла или его части начиная от нужной строки
Записан
BRE
Гость
« Ответ #4 : Март 09, 2012, 11:08 »

Может рыть в сторону потока ?
Поток это средство для работы с текстовыми файлами, с ним может быть удобней.

Для чего затирать строку пробелами?

Цикл пока в исходном файле есть строки
  Читаешь строку исходного файла
  Если номер этой строки != номеру удаляемой строки
    Записываем строку в результирующий файл
Конец цикла
Записан
alexandros
Гость
« Ответ #5 : Март 09, 2012, 16:34 »

А тут вариантов не много.
Например, создавай новый файл и построчно копируй туда строки из старого файла. Не нужную строку пропускай.


Лично я бы так и сделал
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.