Замена слова в файле

  • Автор темы brink
  • Дата начала
B

brink

#1
Никак немогу сообразить: как можно заменить какое-то слово или символ в файле?
Любой способ, кроме варианта через временный файл, плз.
 
04.09.2006
2 566
3
#2
Ну если необходимо заменить символ или заменяемые строки одного размера, то все просто.
С заменой строк разной длины вариантов много, тут уже от задачи зависит.
1 - отображаемые в память файлы.
2 - найти место, откуда начинается замена, считать последующие данные в буфер, обрезать файл, а затем записать буфер. Если замена в начале файла, а файл довольно большой, то метод так себе.
 
B

brink

#3
Ну если необходимо заменить символ или заменяемые строки одного размера, то все просто.
С заменой строк разной длины вариантов много, тут уже от задачи зависит.
1 - отображаемые в память файлы.
2 - найти место, откуда начинается замена, считать последующие данные в буфер, обрезать файл, а затем записать буфер. Если замена в начале файла, а файл довольно большой, то метод так себе.
Понял, думаю всё таки прийдется делать через временный файл, проще получится... :)
Там будут и одной и не одной длины...
Если не трудно, кусочек кода который отвечает за замену слов одной длины.
 
04.09.2006
2 566
3
#4
<!--QuoteBegin-brink+31:07:2007, 11:14 -->
<span class="vbquote">(brink @ 31:07:2007, 11:14 )</span><!--QuoteEBegin-->Если не трудно, кусочек кода который отвечает за замену слов одной длены.
[snapback]73862" rel="nofollow" target="_blank[/snapback]​
[/quote]
Обычная запись по верху, просто запись в файл
 
T

tixon

#5
Понял, думаю всё таки прийдется делать через временный файл, проще получится... :)
Там будут и одной и не одной длины...
Если не трудно, кусочек кода который отвечает за замену слов одной длины.
И проще(не файловые операции),и быстрее (в памяти) и надежнее (опять-таки не на диске).
А проще с AnsiString: Insert,Delete,Pos...(см.Help) - почти Бейсик и не изощряться на "низком уровне" (если, конечно, не обработка в реальном времени)...