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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2015, 11:38   #1
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию Поиск и замена символов - Delphi

Есть восемь Edit в которых записан текст. Как по нажатии кнопки искать во всех едитах нужный символ и заменить его в цикле на другой, указанный в константе? Желательно с проверкой - если в едите текст есть то - искать и заменять, а если нет то не тратить время
Не хватает извилистости мозгов, помогите пожалуйста!

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s: array of String;
i:Integer;
const a = ['A','Б','В','Г','а','б','в']; //Эти надо искать
const b = ['1','2','3','4','5','6','7']; //Заменять на эти
begin
    s[0] := Edit1.Text;
    s[1] := Edit2.Text;
    s[2] := Edit3.Text;
    s[3] := Edit4.Text;
    s[4] := Edit5.Text;
    s[5] := Edit6.Text;
    s[6] := Edit7.Text;
    s[7] := Edit8.Text;

    for i := 0 to 7 do
    begin
       .........
       .........
    end;
end;
S_007, на форуме не первый день, пора бы уже научиться пользоваться кнопкой # для выделения кода

Исправлюсь...

Последний раз редактировалось S_007; 05.05.2015 в 11:49.
S_007 вне форума Ответить с цитированием
Старый 05.05.2015, 11:47   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По каждому эдиту цикл по количеству заменяемых символов и StringReplace
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.05.2015, 11:51   #3
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
По каждому эдиту цикл по количеству заменяемых символов и StringReplace
а примерчик кода можете написать? Если не трудно, буду очень благодарен

Аватар, Спасибо за наводку - StringReplace! Но нельзя ли сделать чтоб цикл был для всех едитов?

Последний раз редактировалось Аватар; 05.05.2015 в 13:49.
S_007 вне форума Ответить с цитированием
Старый 05.05.2015, 12:58   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цикл для всех эдитов?
Код:
for i:=0 to components.count - 1 do begin
	if (components[i] IS TEdit) then begin
		txt:=(components[i] AS TEdit).text;
		// Выполнить оепрации над тектом
		(components[i] AS TEdit).text:=txt;
		
	end;
end;

Последний раз редактировалось Вадим Мошев; 05.05.2015 в 13:38. Причина: исправил for i:=1 на for i:=0
Вадим Мошев вне форума Ответить с цитированием
Старый 05.05.2015, 13:20   #5
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Вадим Мошев, Спасибо! Но не понял как связать с моим кодом Ваш пример с заменой?

Последний раз редактировалось S_007; 05.05.2015 в 13:31.
S_007 вне форума Ответить с цитированием
Старый 05.05.2015, 13:34   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от S_007 Посмотреть сообщение
Вадим Мошев, Спасибо! Но не понял как связать с моим кодом Ваш пример с заменой?
это код перебора ВСЕХ TEdit на форме.
нужно этот код разместить на обработчике вашей кнопке (Button1Click).

если бы Вы написали код, который заменяет символы в Edit1, то я бы показал, как это сделать для ВСЕХ Edit'ов, имеющихся на форме!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2015, 13:37   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от S_007 Посмотреть сообщение
Вадим Мошев, Спасибо! Но не понял как связать с моим кодом Ваш пример с заменой?

Наверное, так можно:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
txt: String;
i:Integer;
const a = ['A','Б','В','Г','а','б','в']; //Эти надо искать
const b = ['1','2','3','4','5','6','7']; //Заменять на эти
begin
    for i:=0 to components.count - 1 do begin // не с 1, а с нуля, я ранее ошибся!
	if (components[i] IS TEdit) then begin
		txt:=(components[i] AS TEdit).text;
		// Выполнить оепрации над тектом - код обработки сами напишите
		(components[i] AS TEdit).text:=txt;
		
	end;
end;
end;
Вадим Мошев вне форума Ответить с цитированием
Старый 05.05.2015, 13:46   #8
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Вадим Мошев, Вы меня простите, цикл для всех Едитов я понял, Спасибо Вам!, очень грамотно... Но а код обработки (поиска, замены) то какой?
S_007 вне форума Ответить с цитированием
Старый 05.05.2015, 14:09   #9
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

внутри внешнего цикла запустите внутренний цикл for j:=1 to 7
в котором пишите
Код:
 txt:= StringReplace(txt, c[j]', intToStr(j),
                          [rfReplaceAll, rfIgnoreCase]);
где C - у вас будет массивом:
c[1] = 'А'
c[1] = 'Б'
c[1] = 'В'
и так далее
Вадим Мошев вне форума Ответить с цитированием
Старый 05.05.2015, 14:13   #10
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Благодарю Сердечно! Счас буду пробовать....
S_007 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SynEdit - поиск и замена. Delphi [DisAssembleR] Помощь студентам 2 08.06.2012 12:15
Нужна прога. Язык по усмотрению автора. Загрузка текстового файла, поиск и замена одних символов на другие. Taygleb Помощь студентам 2 17.01.2012 11:41
Поиск и замена символов iostream Armatus Общие вопросы C/C++ 3 21.10.2011 10:47
Поиск и замена символов в файле yanhumak Общие вопросы C/C++ 2 18.03.2011 11:56
Поиск и замена групп символов данными из edit в memo treefantom Общие вопросы Delphi 5 26.10.2008 17:26