Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Резервация" слов, Как сделать своими силами? 
:(
    Опции темы
Alkash
  Дата 5.7.2004, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Каким образом для RichEdit замутить резервацию слов?Например если слово встречается в тексте, чтоб выделялось по особому?
Пробовал замутить необходимые слова как булевый массив, да чёт не выходит sad.gif


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
Albinos_x
Дата 5.7.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



попробуй сделать через запись


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
p0s0l
Дата 9.7.2004, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Если честно, не понял суть проблемы... Надо в тексте выделить к примеру все слова "procedure" или как ?
Цитата
Пробовал замутить необходимые слова как булевый массив, да чёт не выходит

А это как это ? Слова как булевый массив... хм...


--------------------
С уважением, г-н Посол.
PM   Вверх
Pakshin A. S.
Дата 9.7.2004, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Может запихнуть все слова в связанный список или организовать дерево (я бы остановился на последнем, т. к. работать будет гораздо быстрее)
PM   Вверх
Alkash
Дата 9.7.2004, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



p0s0l
Именно так, а булевый массив- это массив типа of boolean.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
p0s0l
Дата 9.7.2004, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата
Именно так, а булевый массив- это массив типа of boolean.

А я то ломал голову... smile.gif
Ты лучше расскажи затею, куда пихать-то этот булевый массив ? А то у меня сомнения, что всё-таки я неправильно понимаю задачу: в тексте надо выделить зарезервированные слова ?
Если так, то вот наброски:
Код
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;

Мож совсем не то накатал ??... smile.gif


Это сообщение отредактировал(а) p0s0l - 9.7.2004, 21:33


--------------------
С уважением, г-н Посол.
PM   Вверх
Alkash
Дата 9.7.2004, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



p0s0l
То что надо, спасибо!


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1173 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.