Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 671

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Пишу код для поиска слова по маске, uses Mask пользоваться не хочу.
По моей логике, код должен работать, но он не работал, я попробовал снова и итог был тем же. После чего мои нубские мозги выдали еррор и вот я тут.

В memo1 на разных строчках есть два слова "дом" и "дым". В Edit1 маска "д_м" должна отослать эти два слова в Memo2 но ничего не происходит.
Как починить?

Приложение:
  1. for i:=0 to Memo1.Lines.Count do
  2. if Memo1.Lines.Strings[i].Length=Length(Edit1.Text) then
  3. begin
  4. q1:=0;
  5. q2:=0;
  6. for q:=1 to Length(Edit1.Text) do
  7. if not(Edit1.Text[q]='*') then
  8. Inc(q2);
  9. for q:=1 to Length(Edit1.Text) do
  10. begin
  11. if (Memo1.Lines.Strings[i].Chars[q]=Edit1.Text[q]) then
  12. Inc(q1);
  13. if q2=q1 then
  14. begin
  15. Memo2.Text:=Memo2.Text+Memo1.Lines.Strings[i]+#13#10
  16. end;
  17. end;
  18. end;


ugorek Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: ugorek (статус: Посетитель)
Вопрос отправлен: 20 июля 2017, 15:06
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 25 июля 2017, 08:41; участников в обсуждении: 2.
DNK

DNK (статус: Студент), 20 июля 2017, 15:24 [#1]:

Перед людьми, которые умеют пользоваться дебагом, такого вопроса не возникает.

Именно тот случай:

Цитата:

Гораздо проще установить точку остановки и последовательно выполнить каждую строчку кода, чем провести часы за изучением того же самого кода, пытаясь выяснить, в каком месте он начал работать не так, как это было задумано нами.
"Digital Networked Knight"
ugorek

ugorek (статус: Посетитель), 20 июля 2017, 15:26 [#2]:

Решилась бы проблема дебагом, не задавал бы я тут этого вопроса. Условие на повышение q1 не прокатывает, а как написать по другому я не знаю.
DNK

DNK (статус: Студент), 20 июля 2017, 15:35 [#3]:

Дебаг всё покажет почему условия не прокатывают.
"Digital Networked Knight"
ugorek

ugorek (статус: Посетитель), 20 июля 2017, 15:37 [#4]:

Даже если и покажет, как починить я всё равно не знаю, нет вариантов. Ващ.
DNK

DNK (статус: Студент), 21 июля 2017, 14:06 [#5]:

т.е. вообще не знаешь как реализовать алгоритм? тогда гуглить "алгоритм поиска текста" или задать вопрос иначе с полным описанием необходимого функционала, ибо этого:

Цитата:

В memo1 на разных строчках есть два слова "дом" и "дым". В Edit1 маска "д_м" должна отослать эти два слова в Memo2
-маловато будет. Кроме того, в вопросе вижу противоречие: в маске символ "_", а в коде идет сравнение с "*". Так какая в итоге маска должна быть?
"Digital Networked Knight"
ugorek

ugorek (статус: Посетитель), 25 июля 2017, 08:41 [#6]:

С символом опечатался, "_" должна быть вместо "*". Я уже решил проблему всё таки использовав модуль Masks :I

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 28 марта 2023, 06:23
Выполнено за 0.02 сек.
Рейтинг@Mail.ru