| Цитата | | Именно так, а булевый массив- это массив типа of boolean. |
А я то ломал голову...  Ты лучше расскажи затею, куда пихать-то этот булевый массив ? А то у меня сомнения, что всё-таки я неправильно понимаю задачу: в тексте надо выделить зарезервированные слова ? Если так, то вот наброски:
| Код | const reserved_words : array [0..6] of string = ('procedure', 'begin', 'end', 'function', 'unit', 'uses', 'type'); // тут перечисли все зарезервированные слова
procedure TForm1.Button3Click(Sender: TObject); var txt, w : string; i, i0, j : integer; c : char; Found : boolean;
begin txt := RichEdit1.Text; i := 1; i0 := 1; for i := 1 to Length(txt) do begin c := txt[i]; if not (((c >= 'A') and (c <= 'Z')) or ((c >= 'a') and (c <= 'z')) or ((c >= 'А') and (c <= 'Я')) or // проверку русских букв можно убрать, если нет русских зарезервированных слов ((c >= 'а') and (c <= 'я'))) then begin if i0 < i then begin w := Copy(txt, i0, i-i0); w := AnsiLowerCase(w); Found := false; for j := Low(reserved_words) to High(reserved_words) do if reserved_words[j] = w then begin Found := true; Break; end; if Found then begin RichEdit1.SelStart := i0-1; RichEdit1.SelLength := i - i0; RichEdit1.SelAttributes.Color := clRed; end; end; i0 := i+1; end; end; end; |
Мож совсем не то накатал ??...  |