Вверх ↑
Этот топик читают: Гость
Ответов: 952
Рейтинг: 4
#1: 2010-11-09 10:08:37 ЛС | профиль | цитата
Набросал простую схемку для автоматизации замены текста в файле.
code_21434.txt

Вопрос в том что требуется произвести несколько замен по тексту, по разным ключевым словам, и вывести в Мемо текст со всеми заменами.
карма: 0

0
файлы: 1code_21434.txt [1.3KB] [164]
Ответов: 397
Рейтинг: 34
#2: 2010-11-09 15:57:23 ЛС | профиль | цитата
И в чем проблема?
Один из вариантов:
code_21437.txt
карма: 0

0
файлы: 1code_21437.txt [1KB] [134]
Ответов: 952
Рейтинг: 4
#3: 2010-11-09 20:17:36 ЛС | профиль | цитата
Не понимаю что у меня с кодировкой:
Strings=#30:блаблабла###Image_MY&блаблабла|36:блаблаблаблаблаблаблаблаблаблаблабла|36:блаблаблаб
карма: 0

0
Ответов: 397
Рейтинг: 34
#4: 2010-11-09 20:21:49 ЛС | профиль | цитата
user_asm, в браузере прежде чем скопировать схему поменяй кодировку на UTF-8
карма: 0

0
Ответов: 952
Рейтинг: 4
#5: 2010-11-09 20:31:45 ЛС | профиль | цитата
Спасибо за схемку, что-то я стормозил что передаваемый текст можно менять в последующем.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#6: 2010-11-09 23:07:36 ЛС | профиль | цитата
nesco,вроде и не в тему, но глянь сюда:

procedure THiSearchInFile._work_doSearch;
var
F: TextFile;
fn, t: string;
BufIn : Array[0..65535] of Char;
begin
fn := ReadString(_Data, _data_FileName, _prop_FileName);
if not FileExists(fn) then exit;
t := ReadString(_Data, _data_Text, _prop_Text);
AssignFile(F, fn);
Reset(F);
SetTextBuf(F, BufIn);
FStop := False;
while not eof(F) and not FStop do
begin
Readln(F, str);
If t=' then _hi_onEvent(_event_onSearch, str)
else
case pos(t, str) of
0: Continue
else
_hi_onEvent(_event_onSearch, str);
end;

end;
CloseFile(F);
_hi_onEvent(_event_onEnd, ');
end;

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#7: 2010-11-09 23:15:43 ЛС | профиль | цитата
Tad писал(а):
глянь сюда

Глянул и увидел лишнее условие, вопрос -- для чего оно
карма: 22

0
Ответов: 301
Рейтинг: 11
#8: 2010-11-09 23:19:01 ЛС | профиль | цитата
nesco писал(а):
Глянул и увидел лишнее условие, вопрос -- для чего оно

для скорости. хотя прибавка в скорости - мизерная.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#9: 2010-11-09 23:39:22 ЛС | профиль | цитата
nesco писал(а):
Глянул и увидел лишнее условие, вопрос -- для чего оно

Если текст для поиска не задан, то происходит построчное чтение всех строк файла.
А со строкой делай что хочешь.
------------ Дoбавленo в 23.39:
Во всяком случае
user_asm писал(а):
автоматизации замены текста в файле
с таким изменением решается на раз.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Black-Light
Разработчик
Ответов: 26153
Рейтинг: 2127
#10: 2010-11-10 00:12:01 ЛС | профиль | цитата
Добавлено
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#11: 2010-11-10 09:17:40 ЛС | профиль | цитата
nesco, наверное проверку If t=' лучше убрать из цикла ?

#pas
procedure THiSearchInFile._work_doSearch;
var
F: TextFile;
fn, t: string;
BufIn : Array[0..65535] of Char;
begin
fn := ReadString(_Data, _data_FileName, _prop_FileName);
if not FileExists(fn) then exit;
t := ReadString(_Data, _data_Text, _prop_Text);
AssignFile(F, fn);
Reset(F);
SetTextBuf(F, BufIn);
FStop := False;
If t=' then
while not eof(F) and not FStop do
begin
Readln(F, str);
_hi_onEvent(_event_onSearch, str);
end
else
while not eof(F) and not FStop do
begin
Readln(F, str);
case Pos(t, str) of
0: Continue
else
_hi_onEvent(_event_onSearch, str);
end;
end;
CloseFile(F);
_hi_onEvent(_event_onEnd, ');
end;
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#12: 2010-11-10 10:10:37 ЛС | профиль | цитата
Исправлено
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#13: 2010-11-10 10:20:15 ЛС | профиль | цитата
[flood]Завал на работе. Башка совсем не работает [/flood]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#14: 2010-11-10 11:27:48 ЛС | профиль | цитата
Позволю себе поинтересоваться - о чем то вы? И какой компонент обновить?
карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#15: 2010-11-10 11:51:07 ЛС | профиль | цитата
user_asm писал(а):
о чем то вы?

Tad писал(а):
Если текст для поиска не задан, то происходит построчное чтение всех строк файла

user_asm писал(а):
И какой компонент обновить?

SearchInFile
карма: 22

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)