:: Visual Foxpro, Foxpro for DOS
Re: Отобрать уникальные пары
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
2 lulgu

Уважаемый, в очередной раз напоминаю.
Я НЕ веду с вами дискуссий.
Я НЕ отвечаю на ваши сообщения.
Я НЕ ставлю вам оценок - ни красных ни зелёных.
Я просто ваши сообщения игнорирую, если вы ещё этого до сих пор не поняли


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Отобрать уникальные пары
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
lulgu
Для проверки на NULL есть функции NVL(), ISNULL(), но не операторы сравнения.
Вот за это я оценил. Потому как... полная нелепица. Речь вообще не о том в топике.
Остальные оценки..., видимо не только я вижу в ваших сообщениях, смысл виденный только автору поста)
Постоянная бессмыслица. Практически во всех постах.
ЗЫ. Пишу, и понимаю что глупо. лулгу не поймет, а остальные и так все видят...


------------------
Ratings: 0 negative/1 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Аспид
lulgu
Для проверки на NULL есть функции NVL(), ISNULL(), но не операторы сравнения.
Вот за это я оценил.

Читаем Help:

Цитата:
Используйте функцию NVL( ) для исключения значений типа null из текущих вычислений или из операторов различных команд, в которых не поддерживаются данные значения или значения типа .NULL. не имеют особого значения.
Цитата:
Функцмя ISNULL( ) используется для определения содержания поля таблицы, переменной памяти или элемента массива, содержат ли указанные величины значение = null.

Если будет еще что-то такое непонятное - обращайтесь.
Ratings: 1 negative/0 positive
Re: Отобрать уникальные пары
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Конечно обращусь, как только.

...Ты че к ISNULL прикопался...а если будет тип дата, или еще более другой...то как писать проги? в расчете любой тип входных данных?
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
of63
Конечно обращусь, как только.
...Ты че к ISNULL прикопался...а если будет тип дата, или еще более другой...то как писать проги? в расчете любой тип входных данных?

Для определения типа данных есть функции TYPE() и VARTYPE().
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Ну, функции такие есть? Мы все, вместе с тобой, оказались в курсе? Ребятам, (и ИК) донесли, слава богу. Игорь, не упоминая значение NULL, его "не бывает" )

Разрабы фокса, когда пристроили значение NULL к перемменой/полю таблицы, приделали волюнтаризм, в смысле "ранее не сравнивали поле/переменную", а после доработки фокса - надо вернуть результат сравнения с значением/НУЛЛ-ом. Поставь себя на их место, и выбери, результат сравнения (чего?) с 0, или 1, например... ...



Исправлено 1 раз(а). Последнее : of63, 17.09.17 00:02
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
of63
Ну, функции такие есть? Мы все, вместе с тобой, оказались в курсе? Ребятам, (и ИК) донесли, слава богу. Игорь, не упоминая значение NULL, его "не бывает" )
Разрабы фокса, когда пристроили значение NULL к перемменой/полю таблицы, приделали волюнтаризм, в смысле "ранее не сравнивали поле/переменную", а после доработки фокса - надо вернуть результат сравнения с значением/НУЛЛ-ом. Поставь себя на их место, и выбери, результат сравнения (чего?) с 0, или 1, например... ...

Ну, теорию работы с NULL в фоксе сочиняет ИК, не я.
Так что можете спокойно писать свои коды, как писали.

Контекст данной темы это ведь сортировка, почти классика.
В общем случае сортируют однотипные элементы.
Так что по теме здесь всего пара постов с ASORT() - ваш и Юдина.
А вообще суть алгоритмов сортировки в основном это ведь опять попарное сравнение IIF..., только в цикле.

Если же данную задачу дополнить NULL-значениями, то проще ведь не заморачиваться, а предварительно заменить в курсоре(массиве) значения на 0, или 1, или что нравится.
Можете повторить этот прием и в других задачах и не надо будет кого-то ставить на какое-то место.
Ratings: 1 negative/0 positive
Re: Отобрать уникальные пары
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Igor Korolyov
"логичное и правильное поведение" оказывается совершенно неподходящим
Да, есть какие-то правила практически везде подходящие. И есть правила, которые не всегда или не везде подходят.
Цитата:
Если джентльменов не устраивают правила, они их меняют
.Null. не редко портит настроение. Поэтому его диагностика или адаптация нужна. Да и не только Null.
Если я сам это значение не предполагаю в данном коде, то, может там, где переменная или поле определяется, значение надо сразу проверить.

И выдать сообщение трай/кетчем или по ON Error, а лучше ничего - это уже по ситуации.
Это ранняя диагностика. Тогда в разных кодах ниже и в вызываемых функциях эта проверка лишняя - лежат ниже.
А, если я пропустил где-то такую проверку (а я да - пропускаю), то просто пусть сработает Фоксовская реакция - увижу где, посмотрю стек и т.д.
Перебивая, написав
IF Isnull(...)
Messagebox(...)
лишусь этих возможностей

Цитата:
=ln+0 && проверка,что ln числовое и не .Null.
Смешно, но полезно. Просто даст ошибку.
И в стеке по Error() номер строки не следствия, а причины - там, где ошибка возникла.

Еще по-ходу, но уже OFF:
Еще я сталкиваюсь с тем, что ставят Try\catch на целом куске кода. На catch сообщение, а пользователю оно как биологу интеграл.
Еще себе в протокол (текстовый файл) что-то напишут и сами забывают его смотреть.
Потом Иванов считает, что виноват Петров или Сидоров и, наоборот.

Но все это на мелком (работаешь сам, пишешь не часто, не так уж много) не разглядишь и не оценишь



Исправлено 8 раз(а). Последнее : Ydin, 18.09.17 20:57
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ydin
Если я сам это значение не предполагаю в данном коде, то, может там, где переменная или поле определяется, значение надо сразу проверить.
Для "монолитного" приложения - да, обвешивать все входы функций кучей проверок (на типы, диапазоны значения, наличие/количество параметров и т.п.) нецелесообразно - это замедляет работу (особенно если функцию вызывают по миллиону раз изнутри того же SQL запроса). Но для приложения разрабатываемого частями, несколькими разработчиками - это очень полезная привычка - вместо того чтобы тратить дни на поиск таких не очевидных ошибок при взаимодействии кода Васи с кодом Пети, получим сразу же точную диагностику - "вот тут с параметром ошиблись".

Ydin
Цитата:
=ln+0 && проверка,что ln числовое и не .Null.
Смешно, но полезно. Просто даст ошибку.
Ты ошибаешься, не даст. Надо либо по VARTYPE() проверять, либо TYPE()+ISNULL()
ln = CAST(null AS I) && или же ln это поле курсора числового типа но допускающего null
=ln+0 && нет ошибки
? VARTYPE(ln)
? TYPE("ln"), ISNULL(m.ln)
Второй вариант может быть полезен для проверки к примеру свойств объектов или полей курсора, если их (полей/свойств или даже вообще "объекта") может вообще не существовать. vartype в этом случае вывалится по ошибке, а комбинация из TYPE и если там значение "подходит" то ISNULL - безопасна.


------------------
WBR, Igor




Исправлено 1 раз(а). Последнее : Igor Korolyov, 18.09.17 21:43
Ratings: 0 negative/1 positive
Re: Отобрать уникальные пары
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Да! Согласен полностью.
ln=.Null.
=ln+0
так вываливается.
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
Да! Согласен полностью.

Осталось понять, за что были такие ужасные наезды асов форума на беднягу lulgu за его безобидную фразу: - "Для проверки на NULL есть функции NVL(), ISNULL()"?
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
lulgu
Осталось понять, за что были такие ужасные наезды асов форума на беднягу lulgu за его безобидную фразу: - "Для проверки на NULL есть функции NVL(), ISNULL()"?
Если вопрос ко мне, то это
1. Случайный наезд, но я не перечитывал и не анализировал. Я таким не занимаюсь
2. Я к этой фразе не имею никаких возражений
3. Далее после этой фразы было что-то полезное, что в этой теме появилось
4. Не надо утрировать и ждать, что фразу не оценили. Вас по жизни всегда оценивали правильно?
Меня - нет. Я перестал ждать переоценки, время идет и назад не любят возвращаться!

Но мне, лично, импонирует Ваше желание переоценки. У мудаков этого нет!
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Я служил солдатом, если честно - ефрейтором.
Однажды, был в самоволке, село было рядом.
Узнал нашего офицера, кот. вроде тоже смотрел на меня. Но это на расстоянии.
А у меня 188 см роста, приметный.
Пришел в казарму, а меня комвзвода обвинил в безхалатности - оставил в парке какие то грязные ведра, типа такого.
Сказал, что забыл, вот подумаешь, трагедия. Наряд вне очереди!
А ведь мог сказать, что в парке даже не был - меня офицер в самоволке видел. Алиби!
И отработал наряд. А тот офицер или не узнал меня или просто не заложил.
Так, что мне надо было обижаться и доказывать, что я ни за фиг наряд отработал?
Твоя обида мне кажется мельче. Общее то, что оба как-то недоумеваем...
И правильно. Надо же недоумевать и в этом тоже есть жизни смысл и свой резон.
А самоволка тянула на 5-10 суток гаупвахты. Но у меня было свое алиби - я в это время был в парке!
А у тебя только светлое впереди! По этим 2-м ситуациям я тебе сильно проигрываю...
Модер нас рассудит, это уже все OFF и это совсем другая история...
Главное было - отобрать уникальные пары!
У нас по этим 2-м эпизодам одна уникальная пара, не совсем из тех, что Равиль имел ввиду.
Равиль, я рад, что мы в этой жизни встречались и лично знакомы - Уфа и Киев!



Исправлено 8 раз(а). Последнее : Ydin, 19.09.17 20:36
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
lulgu
Осталось понять, за что были такие ужасные наезды асов форума на беднягу lulgu за его безобидную фразу: - "Для проверки на NULL есть функции NVL(), ISNULL()"?
Если вопрос ко мне, то это
1. Случайный наезд, но я не перечитывал и не анализировал. Я таким не занимаюсь
2. Я к этой фразе не имею никаких возражений
3. Далее после этой фразы было что-то полезное, что в этой теме появилось
4. Не надо утрировать и ждать, что фразу не оценили. Вас по жизни всегда оценивали правильно?
Меня - нет. Я перестал ждать переоценки, время идет и назад не любят возвращаться!

Но мне, лично, импонирует Ваше желание переоценки. У мудаков этого нет!

Согласен.
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Наверное глупо спорить. Но...
Ydin
Но мне, лично, импонирует Ваше желание переоценки. У мудаков этого нет!
Просто расскажу случай из моей жизни.
Был знакомый. Настоящий м.. дебил!
Стоим в курилке, разговариваем с товарищем, и он (дебил) рядом стоит.
Упомянули Площадь Ногина. Вскользь.
Через 5 минут реплика дебила.
"А там вчера хорошие рубашки продавали" (Времена советские, сплошной дефицит)
Мы долго разбирались, где, и при чем тут рубашки)))

Если мудак, осознает где он не верно общается, пытается исправиться, то флаг ему в руки.
Если Мудак, настаивает на своем... своей линии поведения... то желание переоценки, это всего лишь личное желание, оно еще больше убеждает окружающих, в правоте сложившегося мнения.


------------------
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Аспид
при чем тут рубашки

?
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
lulgu
Аспид
при чем тут рубашки

?

А при чем тут null?
Равиль
*!* Дано :
Use In Select("test")
Create Cursor test (id1 i, id2 i)
Insert Into test (id1, id2) Values (1, 2)
Insert Into test (id1, id2) Values (2, 3)
Insert Into test (id1, id2) Values (2, 1) && Эта пара лишняя - она повторяет первую
Insert Into test (id1, id2) Values (3, 1)
Browse Last
*!* Вопрос : Как выбрать из этой таблицы только уникальные пары ?


------------------
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
И что, вам что рубашки, что NULL - без разницы?
Вообще-то, NULL вбросил ИК как козырь, да еще с ошибкой, перечитайте тему.
Или вы коды с NULL пропускаете, не читая?
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
lulgu
Вообще-то, NULL вбросил ИК как козырь, да еще с ошибкой, перечитайте тему.
Не поленился. Перечитал.
Речь о круглах и квадратных скобках в min max
Тут предлагают "якобы" равнозначную замену из IIF.
Козырем ты называешь, что Игорь подметил, что тут с null не то.
Верно заметил.
А ты что в ответ. Про проверку на null.
Так тут речь о другом, а как проверить все и так знают.
Переоцени переоценку)


------------------
Ratings: 0 negative/0 positive
Re: Отобрать уникальные пары
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Аспид
Игорь подметил, что тут с null не то.

И что там "не то"?
Ratings: 1 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 29 PaulWist  (Гостей: 28)

© 2000-2024 Fox Club 
Яндекс.Метрика