Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 13.08.2013
Сообщений: 5

Добавлять текст в текстовый файл в строго определенное место

06.05.2014, 22:39. Показов 6688. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, вопрос такой..как с помощью qt добавлять текст в текстовый файл в строго определенное место..не в конец файла..не в начало... ,а в строго определенное нужное мне место..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2014, 22:39
Ответы с готовыми решениями:

Как добавить текстовый файл в определенное место системы?
В гугле какая-то дичь, помогите пожалуйста Добавлено через 27 минут И да, нужно что бы администратор это подтвердил

Вставить текст в определенное место на странице
Добрый день, уважаемые форумчане! Вот в чем заключается моя проблема. Хочу вставить текст между шапкой и началом поста. Но не понимаю,...

Вставка рисунка на определенное место в текст Word
Добрый день! Есть шаблон Word куда вставляю рисунок, но мне необходимо его вставить его в определенное место и сделать фон прозрачным....

8
Почетный модератор
 Аватар для Humanoid
11557 / 4352 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
06.05.2014, 22:41
Только перезаписью. Например, прочитать весь файл в память, там вставить строку и сохранить обратно.
2
0 / 0 / 0
Регистрация: 13.08.2013
Сообщений: 5
06.05.2014, 23:06  [ТС]
хм..а можно как то по подробнее..?)
0
Почетный модератор
 Аватар для Humanoid
11557 / 4352 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
07.05.2014, 00:43
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
QFile f("file.txt");
QList<QByteArray> contents;
if (!f.open(QIODevice::ReadOnly | QIODevice::Text))
  return; // не удалось открыть файл
while (!f.atEnd)
  contents.append(f.readLine());
f.close();
// теперь contents содержит содержимое файла... мы можем его править как захотим... например
contents.insert(10, "New line after line 10\n");
 
// а теперь сохраним:
if (!f.open(QIODevice::ReadOnly | QIODevice::Text | QIODevice::Truncate))
  return;
for (int i=0; i<contens.size(); i++)
  f.write(contents[i]);
f.close();
3
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
07.05.2014, 01:27
5:
Цитата Сообщение от Humanoid Посмотреть сообщение
while (!f.atEnd)
C++
1
while (!f.atEnd())
14:
Цитата Сообщение от Humanoid Посмотреть сообщение
for (int i=0; i<contens.size(); i++)
C++
1
for (int i=0; i<contents.size(); i++)
1
 Аватар для alexey_rage
596 / 396 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
07.05.2014, 09:19
Цитата Сообщение от Humanoid Посмотреть сообщение
while (!f.atEnd)
contents.append(f.readLine());
Зачем это? Почему сразу не вызвать
C++ (Qt)
1
QByteArray buffer = f.readAll();
Нигде ведь не написано, что нужно считать файл построчно.
0
0 / 0 / 0
Регистрация: 13.08.2013
Сообщений: 5
07.05.2014, 19:21  [ТС]
спасибо! Но я так понял что здесь я могу вклиниться только между строк..а если мне нужно вставить слово между двумя словами в одной определенной строке..какой алгоритм мне лучше использовать?
0
Почетный модератор
 Аватар для Humanoid
11557 / 4352 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
07.05.2014, 22:19
Цитата Сообщение от alexey_rage Посмотреть сообщение
Зачем это?
Можно как угодно... так просто со строками работать проще. А вообще задача такая, что решений вагон и маленькая тележка.

Цитата Сообщение от Anapteniy Посмотреть сообщение
Но я так понял что здесь я могу вклиниться только между строк..а если мне нужно вставить слово между двумя словами в одной определенной строке
Можно и внутри строки... например
C++ (Qt)
1
contents[10].insert(5, "blablabla");
- вставит в 11 строке после пятого символа фразу
2
 Аватар для alexey_rage
596 / 396 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
07.05.2014, 23:25
Цитата Сообщение от Humanoid Посмотреть сообщение
Можно как угодно... так просто со строками работать проще.
Вопрос был как вставить что-то в определенное место в тексте, а не в конкретной строке.
Если брать ваш пример, то придется перебирать строки и в отдельных строках искать то место, куда нужно что-то вставить. Это лишние действия и лишний код.
Задача решается в три строчки:
C++ (Qt)
1
2
3
QByteArray buffer = f.readAll(); 
int index = buffer.indexOf(QString("Текст, перед которым нужно что-то вставить"));
buffer.insert(index, QString("То, что нужно вставить"));
И не нужно городить огород.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2014, 23:25
Помогаю со студенческими работами здесь

Нужно вывести в определенное место шаблона текст
Не подскажите ли, как можно сделать, чтобы в шаблон в нужном месте вставить такую штуку? Красный квадрат - это фон. Белый квадрат - это...

В определенное место TextBox вставить текст из Label
На форме кнопка, текстовое поле и лайбал. в текстовом поле есть текст. н.р. &quot;Привет! Как дела?&quot; необходимо при нажатии на кнопку...

Как передать текст из textbox в определенное место в коде
Всем привет, помогите с кодом. Данный код загружает html код определенного сайта в lisbox. Мне нужно чтобы мы мог сам в фрме выбирать с...

Как вставить текст в определенное место WORD документа?
Подскажите пожалуйста, как вставить программно в вордовский документ текст в определенное место и затем сделать Print Preview этого...

Как создать самопечатающийся текст и вывести его в определенное место Canvas
Требуется много работы с Canvas'ом, выводы различных сообщений в виде вопросов, различные варианты ответов в виде кнопок. так вот эти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru