|
Вопрос # 6 671/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Пишу код для поиска слова по маске, uses Mask пользоваться не хочу.
По моей логике, код должен работать, но он не работал, я попробовал снова и итог был тем же. После чего мои нубские мозги выдали еррор и вот я тут.
В memo1 на разных строчках есть два слова "дом" и "дым". В Edit1 маска "д_м" должна отослать эти два слова в Memo2 но ничего не происходит.
Как починить?
Приложение: Переключить в обычный режим- for i:=0 to Memo1.Lines.Count do
- if Memo1.Lines.Strings[i].Length=Length(Edit1.Text) then
- begin
- q1:=0;
- q2:=0;
- for q:=1 to Length(Edit1.Text) do
- if not(Edit1.Text[q]='*') then
- Inc(q2);
- for q:=1 to Length(Edit1.Text) do
- begin
- if (Memo1.Lines.Strings[i].Chars[q]=Edit1.Text[q]) then
- Inc(q1);
- if q2=q1 then
- begin
- Memo2.Text:=Memo2.Text+Memo1.Lines.Strings[i]+#13#10
- end;
- end;
- end;
 |
Вопрос задал: ugorek (статус: Посетитель)
Вопрос отправлен: 20 июля 2017, 15:06
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 25 июля 2017, 08:41; участников в обсуждении: 2.
|
DNK (статус: Студент), 20 июля 2017, 15:24 [#1]:
Перед людьми, которые умеют пользоваться дебагом, такого вопроса не возникает.
Именно тот случай:
Цитата:
Гораздо проще установить точку остановки и последовательно выполнить каждую строчку кода, чем провести часы за изучением того же самого кода, пытаясь выяснить, в каком месте он начал работать не так, как это было задумано нами.
"Digital Networked Knight"
|
|
ugorek (статус: Посетитель), 20 июля 2017, 15:26 [#2]:
Решилась бы проблема дебагом, не задавал бы я тут этого вопроса. Условие на повышение q1 не прокатывает, а как написать по другому я не знаю.
|
|
DNK (статус: Студент), 20 июля 2017, 15:35 [#3]:
Дебаг всё покажет почему условия не прокатывают.
"Digital Networked Knight"
|
|
ugorek (статус: Посетитель), 20 июля 2017, 15:37 [#4]:
Даже если и покажет, как починить я всё равно не знаю, нет вариантов. Ващ.
|
|
DNK (статус: Студент), 21 июля 2017, 14:06 [#5]:
т.е. вообще не знаешь как реализовать алгоритм? тогда гуглить "алгоритм поиска текста" или задать вопрос иначе с полным описанием необходимого функционала, ибо этого:Цитата:
В memo1 на разных строчках есть два слова "дом" и "дым". В Edit1 маска "д_м" должна отослать эти два слова в Memo2 -маловато будет. Кроме того, в вопросе вижу противоречие: в маске символ "_", а в коде идет сравнение с "*". Так какая в итоге маска должна быть?
"Digital Networked Knight"
|
|
ugorek (статус: Посетитель), 25 июля 2017, 08:41 [#6]:
С символом опечатался, "_" должна быть вместо "*". Я уже решил проблему всё таки использовав модуль Masks :I
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|