URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3267
[ Назад ]

Исходное сообщение
"Привет! Всем! Подскажите, пожалуйста, замена строки  на более длинную "

Отправлено maratkaz , 11-Авг-04 11:18 
Привет! Всем! Подскажите, пожалуйста, замена строки в файле на более длинную.
Например:
ABC
XYZ

заменяю на
ABCDEFJHIG

В РЕЗУЛЬТАТЕ
ABCDEFGHIG
встамляемая строка, съедает(заменяет) последующие символы,
которые мне не нужно заменять

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


Содержание

Сообщения в этом обсуждении
"Привет! Всем! Подскажите, пожалуйста, замена строки  на боле..."
Отправлено Vladislav Lazarenko , 11-Авг-04 12:03 
>Привет! Всем! Подскажите, пожалуйста, замена строки в файле на более длинную.
>Например:
>ABC
>XYZ
>
>заменяю на
>ABCDEFJHIG
>
>В РЕЗУЛЬТАТЕ
>ABCDEFGHIG
>встамляемая строка, съедает(заменяет) последующие символы,
>которые мне не нужно заменять
>
>использование временного файла единственный способ или нет?
>и как это делается?
>
>
>
>


Доброе утро. Все зависит от того, что вы используете. Например Perl делает это без проблем. Я догадываюсь, что речь идет о Си, Си++, Java или каком-то похожем языке. Тут можно использовать много алгоритмов, временный файл, динамическую памяти и так далее. Но конечно, если вы нашли смещения интересующей вас строки и начнете с того места записывать что-то другое, то старые данные затрутся.

Как одно из решений, как мне кажется, более подходящих для текстовых файлов, это построчное считывание с помощью getline, замена строки (можно использовать регулярные выражение или просто std::string.replace или что-то в этом роде) потом запись этой строки в другой файл.


"Привет! Всем! Подскажите, пожалуйста, замена строки  на боле..."
Отправлено Андрей , 11-Авг-04 13:16 
>использование временного файла единственный способ или нет?
>и как это делается?

на мой взгляд - способ - завести ещё файл
ещё способ - освободить нужное кол-во символов( т.е. сделать файл длиннее на n символов и переписывать по n символов, а потом в нужное место записать то, что нужно, и всё).

С уважением,
Андрей.