Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#1: 2009-09-08 17:46:57 ЛС | профиль | цитата
Почему точка *Index=Хранит индекс найденной строки|3|1
в случае doGetString - не выдает индекс найденой строки
code_14862.txt

Вернее почему, я и так знаю. А почему так ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_14862.txt [1.8KB] [154]
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2009-09-08 17:56:38 ЛС | профиль | цитата
Это защита "от дурака" действием Exit; если такой строки нет
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#3: 2009-09-08 18:21:33 ЛС | профиль | цитата
я не понял какая постановка задачи решается продемонстрированным примером? Если нужно получить индекс элемента, если тавой есть и -1, если такового нет, то не проще ли воспользоваться элементом If и не городить того, что показано выше?
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#4: 2009-09-08 18:48:40 ЛС | профиль | цитата
А я понял:
---Не правильно я понял, башка дырка, глаза впадины---
карма: 10
0
Ответов: 16884
Рейтинг: 1239
#5: 2009-09-08 18:51:26 ЛС | профиль | цитата
Dilma, речь о том, что в StrList есть строка или нет - все равно на точке Index стоит -1.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 4698
Рейтинг: 426
#6: 2009-09-08 18:53:57 ЛС | профиль | цитата
А-а, странно, раньше все работало верно
карма: 10
0
Ответов: 16884
Рейтинг: 1239
#7: 2009-09-08 18:56:18 ЛС | профиль | цитата
И приходится городить If на точке String, что не всегда удобно.
А если применяешь и doGetIndex и doGetString, то нужен двойной огород.
А точка StrList.Index работает только при StrToFind
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 4698
Рейтинг: 426
#8: 2009-09-08 18:57:00 ЛС | профиль | цитата
----
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2009-09-08 19:00:38 ЛС | профиль | цитата
Assasin писал(а):
А я понял:
Дело все в том, что событием onGetIndex выдается -1 если строки нет, а с точки Index берется Null или отсутствие данных, что противоречит выходным данным onGetIndex

можно узнать в какой момент и где Tad, говорил о проблемах с onGetIndex?

Tad писал(а):
речь о том, что в StrList есть строка или нет - все равно на точке Index стоит -1.

метод doGetString ищет строку по индексу. Это значит, что результатом работы метода является строка, которую можно получить с точки String. Почему и для чего данный метод должен сохранять поданный на него индекс - не известно. Если в схеме выше была сделана попытка провести аналогию с элементом ListBox, то она весьма не удачна - его Index является свойством контрола и присутствует у него всегда вне зависимости от методов, которые используются в схеме.
------------ Дoбавленo в 19.02:
Tad писал(а):
А если применяешь и doGetIndex и doGetString, то нужен двойной огород.

вот и следует продемонстрировать это "если"
карма: 27
0
Ответов: 16884
Рейтинг: 1239
#10: 2009-09-08 19:22:06 ЛС | профиль | цитата
Dilma писал(а):
Почему и для чего данный метод должен сохранять поданный на него индекс - не известно.
А почему - нет?
Каждый думает посвоему.
ИМХО считаю, что если есть точка Index то на ней всегда должна быть -1 если строки нет, или индекс строки если она есть, не зависимо от того каким методом идет поиск - по индексу, по строке или по верхним точкам StrToFind или IdxToSelect.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:filyaxxxcom
Ответов: 485
Рейтинг: 86
#11: 2009-09-09 00:29:55 ЛС | профиль | цитата
Tad писал(а):
ИМХО считаю, что если есть точка Index то на ней всегда должна быть -1 если строки нет, или индекс строки если она есть, не зависимо от того каким методом идет поиск - по индексу, по строке или по верхним точкам StrToFind или IdxToSelect.
Согласен. Такое поведение значительно облегчает составление схем и экономит время. Прочитал описание точки и знаешь чего от нее ожидать. А иначе, как в данном случае, приходится или помнить особенности некоторого элемента или, поставив на рабочее поле десяток элементов, расставлять Debug и смотреть что из этого получилось
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#12: 2009-09-09 00:49:49 ЛС | профиль | цитата
filyaxxxcom, я поступаю по другому - ставлю ListBox, отлаживаю (визуально !) схему и потом меняю ListBox на StrList.
И если не исползуется точка Index, то всё получается отлично.
А если нужно получить и строку и ее индекс, то начинаются пляски с бубном, потому что и точка вроде есть, а висит на ней -1.
И никакой If_Else не поможет.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#13: 2009-09-09 01:29:03 ЛС | профиль | цитата
Tad писал(а):
А если нужно получить и строку и ее индекс, то начинаются пляски с бубном, потому что и точка вроде есть, а висит на ней -1

Еще раз, для тех, кто в танке -- приведи пример, где в режиме doGetString, ну просто необходимо, действующее значение Index, и почему нельзя
Dilma писал(а):
воспользоваться элементом If

на точке onGetString
К тому же, уже был задан вопрос
Dilma писал(а):
вот и следует продемонстрировать это "если"

------------ Дoбавленo в 01.34:
filyaxxxcom писал(а):
Такое поведение значительно облегчает составление схем и экономит время

Пример в студию, как облегчает, будем посмотреть.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#14: 2009-09-09 01:43:52 ЛС | профиль | цитата
nesco, не хочу я спорить.
Нет - нет.


Вот здесь для получения строки приходится подавать индекс через Memory, чтобы запомнить индекс и потом эту строку удалить.
А если бы на точке Index был индекс, а не -1, то эта задача решалась бы проще (без Memory)

Когда предлагаешь - добавить в компонент нижнюю точку или событие , то сразу поднимается крик:
"Ты чего! Увеличатся коды ! Поставь пару компонент и нет вопроса"
А то, что эти пару компонент увеличат результирующие коды в разы по сравнению с той строчкой - никого не колышит.

Нет - значит нет.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1ii.png [2.7KB] [293]
Разработчик
Ответов: 26170
Рейтинг: 2127
#15: 2009-09-09 02:08:48 ЛС | профиль | цитата
Добавил и привел в соответствие значение String для doGetIndex. Теперь все это хозяйство соответствует ListBox-y
------------ Дoбавленo в 02.13:
Tad писал(а):
Увеличатся коды

Это увеличатся для тех, кто не использует эти точки в этих методах, но код там, в натуре, копеечный. Да и не думаю я, что кто-то использует эти методы в большом цикле, так что говорить о влиянии на быстродействие тут не приходится.
карма: 22

3
Голосовали:Tad, filyaxxxcom, Assasin
Сообщение
...
Прикрепленные файлы
(файлы не залиты)