Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Замена слова в файле
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
brink
Никак немогу сообразить: как можно заменить какое-то слово или символ в файле?
Любой способ, кроме варианта через временный файл, плз.
European
Ну если необходимо заменить символ или заменяемые строки одного размера, то все просто.
С заменой строк разной длины вариантов много, тут уже от задачи зависит.
1 - отображаемые в память файлы.
2 - найти место, откуда начинается замена, считать последующие данные в буфер, обрезать файл, а затем записать буфер. Если замена в начале файла, а файл довольно большой, то метод так себе.
brink
Цитата(European @ 31:07:2007, 10:56 ) *
Ну если необходимо заменить символ или заменяемые строки одного размера, то все просто.
С заменой строк разной длины вариантов много, тут уже от задачи зависит.
1 - отображаемые в память файлы.
2 - найти место, откуда начинается замена, считать последующие данные в буфер, обрезать файл, а затем записать буфер. Если замена в начале файла, а файл довольно большой, то метод так себе.


Понял, думаю всё таки прийдется делать через временный файл, проще получится... wink.gif
Там будут и одной и не одной длины...
Если не трудно, кусочек кода который отвечает за замену слов одной длины.
European
Цитата(brink @ 31:07:2007, 11:14 )
Если не трудно, кусочек кода который отвечает за замену слов одной длены.
*

Обычная запись по верху, просто запись в файл
tixon
Цитата(brink @ 31:07:2007, 11:14 ) *
Понял, думаю всё таки прийдется делать через временный файл, проще получится... wink.gif
Там будут и одной и не одной длины...
Если не трудно, кусочек кода который отвечает за замену слов одной длины.


И проще(не файловые операции),и быстрее (в памяти) и надежнее (опять-таки не на диске).
А проще с AnsiString: Insert,Delete,Pos...(см.Help) - почти Бейсик и не изощряться на "низком уровне" (если, конечно, не обработка в реальном времени)...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.