![]() |
|
#1
|
|||
|
|||
![]() Доброго времени суток! Скажите, а возможно ли реализовать замену участков текста для нескольких файлов одновременно ?
|
#2
|
||||
|
||||
![]() Можно, в цикле.
Это похоже на замену текста в сохранённых HTML-страницах. Если так, то таких программ достаточно в сети. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
||||
|
||||
![]() Встречал такие, которые написаны на .NET. Как понимаешь глянуть исходный код такой программы дело техники.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() |
#6
|
|||
|
|||
![]() Два едита и кнопку на форму.
По нажатии на кнопку в цикле ищешь текст в файле введенный в первом едите и заменяешь на тот что во втором, тоже самое со вторым файлом. Для этого нужно будет знать такие слова как: pos, copy, delete, TStringList. upd: Цикл не нужен, во я на вечер туплю) Последний раз редактировалось m1sclick, 10.03.2012 в 23:54. |
#7
|
||||
|
||||
![]() Создай 2 потока, к примеру TMemoryStream, в первый грузишь оригинальный текст, во-второй готовый. Ищешь первое вхождение искомой замены, нашёл - копируешь во-второй от начала потока до вхождения. Ищешь конец искомой замены и, если больше искать нечего копируешь во-второй поток от второго вхождения до конца, иначе повторяешь всё по-новой.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
||||
|
||||
![]() А про StringReplace все забыли?
Код:
procedure ChangeText(InFilename, OutFilename, ChtoIschem, NaChtoMenyaem: string); var txt: TStrings; begin txt:= TStringList.Create; try txt.LoadFromFile(InFilename); txt.Text:= StringReplace(txt.Text, ChtoIschem, NaChtoMenyaem, [rfReplaceAll]); txt.SaveToFile(OutFilename); finally txt.Free; end; end; Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#9
|
||||
|
||||
![]() StringReplace может не подойти. Бывают ситуации, и довольно часто, когда точно знаешь начало и конец искомого и это растягивается на несколько строк, а середина может меняться.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |