Название: Редактирования строки в файле QTextStream Отправлено: alexey.pertcev от Октябрь 20, 2011, 03:17 Господа,
прошу не пинать сильно, но нигде пока не нашел ответа Задача поправить строку в текстовом файле, то есть взять строку из файла, поправить её и засунуть в обратно на тоже место, Взять и поправить я могу, но при вставке поправленная строка записывается не туда куда нужно.. можно ли это сделать с помощью QTextStream?(думаю что можно) если да, то какие методы нуно при этом использовать? Моё поделие: QFile file(name_file); if (!file.open(QIODevice::ReadWrite | QIODevice::Text)) return false; QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); if (line.contains(rx)){ //проверяю нужно ли править строку in << line.append(" <-- changed string\n"); //хочу записать измененную строку в то же место откуда взял } } Название: Re: Редактирования строки в файле QTextStream Отправлено: Bepec от Октябрь 20, 2011, 07:08 И походу у тебя проблема в том, что он пишет на строчку ниже?
Или куда он у тебя что пишет :) "Не туда куда нужно" - я такого места незнаю :) Приведи простейший пример аля Было: Код: а Стало: Код: а Сразу станет понятней. Название: Re: Редактирования строки в файле QTextStream Отправлено: kambala от Октябрь 20, 2011, 09:21 И походу у тебя проблема в том, что он пишет на строчку ниже? да, потому что readLine() сразу перемещает курсор к следующей строкедолжно подойти такое: Код
Название: Re: Редактирования строки в файле QTextStream Отправлено: alexey.pertcev от Октябрь 20, 2011, 17:19 Уточнение проблемы:
Измененные программой строки не перезаписываются в то же место, а добавляются в конец файла то есть сейчас результат работы такой: до Код: 1строка Код: 1строка Добавление file.seek(file.pos() - line.length() - 1); никак не повлияло на результат, мне кажется что дело в операторе <<, т.к. он добавляет сразу в конец файла. Возможно нужно использовать что-то вместо него? Название: Re: Редактирования строки в файле QTextStream Отправлено: kambala от Октябрь 20, 2011, 17:30 можно ещё попробовать
Код а если не поможет, тогда наверное лучше работать без QTextStream - напрямую с QFile методами readLine(), seek(), write() Название: Re: Редактирования строки в файле QTextStream Отправлено: alexey.pertcev от Октябрь 20, 2011, 20:21 Реализовал вот так:
Код:
Спасибо за помошь) Исправил, после file.write "курсор" сам устанавливается в начало следующей строки |