![]() |
|
|
#1
|
|||
|
|||
|
Сейчас при вводе в едит 1,2,1,2,3,2,1,2,1,1,1 появляется в мемо -красн- т.е. при суммарном количестве
а задача предстоит, чтобы после Пяти! одинаковых цифр появлялся цвет к примеру 1,2,2,2,1,2,2,3,3,3,3,3,1,2 появляется в едит4 -зелен- или 1,1,1,2,2,2,1,2,3,3,1,1,1,1,1,2 -красн- в едит2 Честно говоря зациклился в этих циклах архив прилагается заранее благодарю! |
| Этот пользователь сказал Спасибо plazmaser за это полезное сообщение: | ||
MotoArhangel (03.02.2015)
| ||
|
#2
|
|||
|
|||
|
Исходник не смотрел. Скажу одно. можно и без циклов
Используем case of end для подсчета количества той или иной цифры + процедура допустим NextCh. ![]() Как то так: Код:
case str of
1:
begin
что то делаем;
NextCh;
end;
,:
begin
что то делаем;
NextCh;
end;
.....
endДля мемо делал так Код:
procedure NextCh;{ Читать следующий символ }
begin
if Line = MainForm.MemoListing.Lines.Count
then Ch := chEOT // если достигнут конец текста, то в Ch заносим признак "конец текста"
else
if Pos > Length(MainForm.MemoListing.Lines.Strings[Line])
then // если достигнут конец строки, то ...
begin
Ch := chEOL; // в Ch заносим признак "конец строки"
Line := Line + 1; // и переходим к следующей строке
lineNum:=line; //Сохраняем номер строки
Pos := 1; // Установили начальную позицию в новой строке
end
else // иначе обрабатываем следующий символ в строке
begin
Ch := MainForm.MemoListing.Lines.Strings[Line][Pos];
Pos:= Pos+ 1; //Переходим на новую позициию
lineNum:=line+1; //Сохраняем номер строки
end;
end;Последний раз редактировалось MotoArhangel, 03.02.2015 в 17:11. |