crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

AD
  опции профиля:
сообщение 14.4.2008, 18:21
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Использую QFile* file. Файл открыт для чтения/записи. в середине файла надо заменить одну строчку. Как это сделать?
Код
QTextStream in(file);
in << string;

Почему-то вставляет в конец файла строку.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 14.4.2008, 20:33
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


тут зависит знаешь ли ты точное место нахождение строки или нет.
честно говоря в Qt'ях с файлом не работал, но опираясь на Борланд, и я полагаю в Qt'ях также, примерно следующая схема:

Если знаешь номер строки то, например, так:
Открыть файл,
в цикле читать строку с помощью QTextStream::readLine пока не доберешся до (нужной -1),
запомнить позицию в файле с помощью QIODevice::pos()
прочитать следующую (нужную) строку,
изменить ее,
передвинуть файловый указатель до запомненой позиции с помощью QIODevice::seek (),
записать строку.

Если незнаешь номер строки, то нужно каждую анализировать.
---
Может есть и удобнее способ, незнаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 1.6.2025, 18:39