|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Поиск символов в RichEdit
Привет всем!
Есть вот такой вот код: Код:
procedure TForm1.Button1Click(Sender: TObject); var l,i: integer; sym: string; begin l:=length(RichEdit1.Lines.Text); for i:=0 to l do begin sym:=Copy(RichEdit1.Lines.Text,i,1); if (sym='G') or (sym='M') or (sym='F') then ColorText(RichEdit1,i-1,clGreen); if (sym='X') or (sym='Y') then ColorText(RichEdit1,i-1,clRed); end; end; Может, кто-нибудь подскажет как его оптимизировать? Заранее благодарен! |
#2
|
|||
|
|||
Попробуйте так:
Код:
var i, j, allchar : integer; st : string; begin allchar := 0; for i := 0 to RichEdit1.Lines.Count-1 do begin st := RichEdit1.Lines[i]; if (pos('G',st) > 0) or (pos('M',st) > 0) or (pos('F',st) > 0) or (pos('X',st) > 0) or (pos('Y',st) > 0) then begin for j := 1 to length(st) do begin if (st[j] = 'G') or (st[j] = 'M') or (st[j] = 'F') then ColorText(RichEdit1,allchar + j,clGreen); if (st[j] = 'X') or (st[j] = 'Y') then ColorText(RichEdit1,allchar + j,clRed); end; end allchar := allchar + st; end; end; Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#3
|
|||
|
|||
Попробовал. Немножко неправильно срабатывает, но смысл я понял. Надо работать со строками, а не со всеми символами сразу.
Спасибо за совет! |