Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2021, 02:12   #1
Pascalius
Пользователь
 
Аватар для Pascalius
 
Регистрация: 22.10.2011
Сообщений: 18
Лампочка Delphi 7 Как ускорить замену текста в MEMO?

Здравствуйте

? имеется MEMO в который грузится TXT файл в котором имеется 1000 строк (точно не знаю сколько, примерно наверное так и есть), так вот

так же имеется 2 Edit-а
EDIT1 - Указываем что заменить (если будет понятнее, то искать что менять)
EDIT1 - Указываем на что заменить найденный текст

файл имеет такое содержание

TEXT TEXT
TEXT TEXT
TEXT TEXT и т.д

так вот мне надо изменить этот текст в вид

TEXT_TEXT
TEXT_TEXT
TEXT_TEXT и т.д

КОДЫ КНОПОК

ОТКРЫТЬ ФАЙЛ Text.txt из папки в которой находится программа

memo1.Clear;//очистка MEMO
memo1.Lines.LoadFromFile((ExtractFi lePath(Application.ExeName) + 'Text.txt'));//Загрузить файл в МЕМО

СОХРАНИТЬ ФАЙЛ Text.txt в папку в которой находится программа

memo1.Lines.SaveToFile((ExtractFile Path(Application.ExeName) + 'Text.txt'));

КОД ЗАМЕНЫ ТЕКСТА

Var
S: String;
i: Integer;
begin
For i:= 0 To Memo1.Lines.Count - 1 Do
begin
S:= StringReplace(Memo1.Lines.Strings[i], Edit1.Text, Edit2.Text, [rfReplaceAll, rfIgnoreCase]);
if S <> Memo1.Lines.Strings[i] Then;
Memo1.Lines.Strings[i]:=S;
end;
begin
ShowMessage('Замена произведена');
end;

MEMO.zip - ПРОЕКТ

ТЕПЕРЬ ?

КАК УСКОРИТЬ ЗАМЕНУ В МЕМО??? а то происходит я так понимаю построчно чтоли и замена происходит ОЧЕНЬ ДОЛГО

если эту же самую операцию произвести в простом блокноте то там это занимает 1 сек.

заранее спасибо (пишу подробно для тех кто так же как и я изучает DELPHI, но который только сейчас открыл её в первый раз!)
Pascalius вне форума Ответить с цитированием
Старый 07.01.2021, 08:01   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

1 вар.
Код:
memo.text:=stringreplace(memo.text, edit1.text, edit2.text, [rfreplaceall]);
2 вар.
Код:
memo.lines.beginupdate;
...// код по замене
memo.lines.endupdate;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 07.01.2021, 09:59   #3
Pascalius
Пользователь
 
Аватар для Pascalius
 
Регистрация: 22.10.2011
Сообщений: 18
По умолчанию

Спасибо!
Локализа́ция програ́ммного обеспече́ния — перевод пользовательского интерфейса, документации и сопутствующих файлов программного обеспечения с одного языка на другой
Pascalius вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дополнить код Delphi XE - добавить рандомную замену текста по словарю kladsss Общие вопросы Delphi 11 30.05.2018 15:45
Как сделать замену текста по всей базе (phpmyadmin) Karyuudo SQL, базы данных 5 14.09.2015 12:12
Excel, Как осуществить поиск и замену сразу нескольких фрагментов текста? Танита Помощь студентам 0 24.05.2012 00:18
Как сделать замену символов в Memo на личные? Зод Общие вопросы Delphi 12 09.03.2012 14:59
Как ускорить загрузку текста в memo? zver777 Общие вопросы Delphi 3 10.01.2010 10:06