Привет! Всем! Подскажите, пожалуйста, замена строки в файле на более длинную.
Например:
ABC
XYZзаменяю на
ABCDEFJHIGВ РЕЗУЛЬТАТЕ
ABCDEFGHIG
встамляемая строка, съедает(заменяет) последующие символы,
которые мне не нужно заменятьиспользование временного файла единственный способ или нет?
и как это делается?
>Привет! Всем! Подскажите, пожалуйста, замена строки в файле на более длинную.
>Например:
>ABC
>XYZ
>
>заменяю на
>ABCDEFJHIG
>
>В РЕЗУЛЬТАТЕ
>ABCDEFGHIG
>встамляемая строка, съедает(заменяет) последующие символы,
>которые мне не нужно заменять
>
>использование временного файла единственный способ или нет?
>и как это делается?
>
>
>
>
Доброе утро. Все зависит от того, что вы используете. Например Perl делает это без проблем. Я догадываюсь, что речь идет о Си, Си++, Java или каком-то похожем языке. Тут можно использовать много алгоритмов, временный файл, динамическую памяти и так далее. Но конечно, если вы нашли смещения интересующей вас строки и начнете с того места записывать что-то другое, то старые данные затрутся.Как одно из решений, как мне кажется, более подходящих для текстовых файлов, это построчное считывание с помощью getline, замена строки (можно использовать регулярные выражение или просто std::string.replace или что-то в этом роде) потом запись этой строки в другой файл.
>использование временного файла единственный способ или нет?
>и как это делается?на мой взгляд - способ - завести ещё файл
ещё способ - освободить нужное кол-во символов( т.е. сделать файл длиннее на n символов и переписывать по n символов, а потом в нужное место записать то, что нужно, и всё).С уважением,
Андрей.