:: Visual Foxpro, Foxpro for DOS
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Аспид
Ydin
Да, походу, был не прав.
Ерунда
Думаю просто вся эта фишка создана, до Empty фокса.
Привык. А потом уж смысла менять не было.
(у меня с КА та же хрень)
Я сейчас старый стал. Сделал на 9-ке, может года 2 назад. Нет, просто, лоханулся. По старому мыслил.
В Help даже не глянул.
Знал, что через объекты минимальное с Name и Parent. Без этого - как они могут лечь в контейнер?
А через св-ва, без проблем.
Я как тот чукча, что писатель, но не читатель.
А у меня не переменные, а св-ва объектов. Да, именно, лоханулся.
Чтоб было понятнее, есть таблицы Users(пользователи) и Regions(Где они работают).
В параметрах передаю объект, а у него свойства-объекты:
в одном поля по Users для строки и , в другом - по Regions и тоже для строки.
А структурном программировании (была такая теория в моей где-то молодости) - надо писать проще.
Чтобы для тех, кто сможет в этом разобраться, минимизировать их уровень.
Я нарушил это. Но голову пеплом не посыпаю. Ну, такой я и есть по жизни.
Не немец. Ordnung (порядок) не в крови.
Если нельзя, но сильно хочется, значит - можно.



Исправлено 8 раз(а). Последнее : Ydin, 08.12.17 17:45
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Аспид
Думаю просто вся эта фишка создана, до Empty фокса.
До Empty не было и нужных функций ADDPROPERTY/REMOVEPROPERTY. Как добавили этот класс, так и функции эти появились (по-моему, в 8-ке).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Igor Korolyov
До Empty не было и нужных функций ADDPROPERTY/REMOVEPROPERTY

А может, там и не функции Фокса вовсе, а UDF(), основанные на том же SCATTER'е?
Предвосхитил их появление, так сказать...



Исправлено 1 раз(а). Последнее : akvvohinc, 08.12.17 19:04
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

Сообщений: 31188
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Igor Korolyov
даже если это написать "в столбик" - откровенный г*нокод.даже если это написать "в столбик" - откровенный г*нокод.

Ну да, ну да.. У нас разные понятия о говнокоде. Я вот 100500 вызовов копипастить, понятное дело, умею без труда.. Но не вижу это красивым и правильным.

Так что в понятиях говнокода мы расходимся. Ты не против?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
sphinx
Так что в понятиях говнокода мы расходимся. Ты не против?
Если много пишешь, то правильно работающий говнекод - он спасает, если не подводит.
А так про Public переменные столько антимнений. А если аккуратно работать, то чем они плохи сами по себе?
Тогда и не надо гнать на них, ведь, если остальное не говнекод, то что в них плохого.
Просто кто-то сам писал г-код и обложал эти паблики в эфире. А было это давно, когда просто писанному верили.
Давайте дадим четкое определение г-коду как категории.
Но если не можем, то и не надо в его понятиях сходиться или расходиться.
Я пишу m. перед переменной - привык. Но придерживаюсь правил в их названиях (переменных памяти).
Поэтому могу m. и не писать. А ведь даже написал ф-ю, кот. их сама вставляет в код.
Но, реально, можно просто аккуратно писать и оба эти правила похерить.



Исправлено 3 раз(а). Последнее : Ydin, 09.12.17 11:37
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Похоже, с легкой руки ИК, началось состязание эрудитов на знание г*кода.
Ratings: 1 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
lulgu
Похоже, с легкой руки ИК, началось состязание эрудитов на знание г*кода.
А где тут состязание? Я его и близко не вижу. Вот Ваше сообщение хороший пример этого говнекода
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Во, даже с примерами!
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Пример во время подоспел. Так не редко бывает. Но без обид, хорошо?
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
Пример во время подоспел. Так не редко бывает. Но без обид, хорошо?

Да состязайтесь, жалко что-ли.

Если же о коде, то ваш код, даже без упоминания про m. и Empty, избыточен.
К тому же непонятно, как, к примеру, ваша последняя функция обрабатывает ошибки.
Поэтому - к какой категории вы его сами относите?
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
sphinx
Я вот 100500 вызовов копипастить, понятное дело, умею без труда.. Но не вижу это красивым и правильным.

Всё очень просто. Мне вот за много лет ни разу не требовалось "копипастить 100 вызовов метода/функции с разными параметрами". Соответственно не возникало вопроса о том как бы это "свернуть, чтобы потом развернуть". Т.е. проблема находится не в самом коде, а где-то выше - там где возникла сама потребность в
Func(p1)
Func(p2)
...
Func(p100)

Вот и всё. Г*нистость находится ВЫШЕ, её просто не видно, т.к. ты, как обычно, спрашиваешь про какой-то конкретный вариант реализации, для делания конфетки из этого г*на. Тогда как лучше было бы спросить о том как убрать то г*но которое приводит к потребности во всём этом - от передачи 100 параметров (не, ну не полные идиоты же в MS, что ограничили число параметров в функциях/методах), до следующего шага - перевода непонятно откуда взявшихся 100 отдельных значений в массив/коллекцию, чтобы потом над ней цикл крутить.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
lulgu. Я ж писал, что с категориями не определился.
Состязаешься сам с собой, а мне зачем. Я тут редко бываю
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
lulgu. Я ж писал, что с категориями не определился.
Состязаешься сам с собой, а мне зачем. Я тут редко бываю

Редко, но в этот раз метко.
С категориями ладно - код как код, это обычный код.
Но замечания кто будет причесывать, управдом?

К тому же вы выложили только половину функций для работы с Empty, а где остальное?
И тогда у вас функций наберется на целый класс для работы с классом Empty.
Ratings: 1 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
давайте все вместе напишем целый класс для работы с Empty

и еще что-нибудь

а потом вместе будем нюхать клей из мешочка
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Троль какой-то понурый. Не интересно
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Igor Korolyov
Func(p1)
Func(p2)
...
Func(p100)

FOR i = 1 TO 100
lcParam = 'p' + ALLTRIM(STR(i))
&lcParam = ALLTRIM(STR(i))
ENDFOR
***
FOR i = 1 TO 100
lcParam = 'p' + ALLTRIM(STR(i))
? lcParam,&lcParam
DO DoFunc WITH &lcParam
ENDFOR
***
FUNCTION DoFunc(tt)
? tt
Ratings: 3 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
lulgu, все тут более-менее владеют макросами lcParam,&lcParam, и Empty-обьектами. Про 26 параметров (принципиально максимальное количество параметров). Чего нового-то им скажешь?
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
lulgu, все тут более-менее владеют макросами

Нет, некрасиво и медленно из-за макроса.

Вместо
lcParam = 'p' + ALLTRIM(STR(i))
&lcParam = ALLTRIM(STR(i))

более красиво и почти в 2 раза быстрее
STORE TRAN(i) TO ('p'+TRAN(i))

или почти в 4 раза быстрее
STORE LTRIM(STR(i)) TO ('p'+LTRIM(STR(i)))
Ratings: 0 negative/1 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
of63
lulgu, все тут более-менее владеют макросами lcParam,&lcParam, и Empty-обьектами. Про 26 параметров (принципиально максимальное количество параметров). Чего нового-то им скажешь?

Владеть то владеют, но напомнить лишний раз не грех.
Способов передачи параметров наберется с десятка полтора, наверное.
И от знания чего-то вряд ли стоит как-то обзывать остальное.
В принципе они почти равнозначны, многие из них приведены в теме, и выбор зависит от программиста.
Ratings: 1 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

Сообщений: 31188
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Я так и не понял, чем цикл стал хуже 100500 вызовов. Наверное модным стало раскрывать циклы, но мне не сказали. Забыли наверное.

Сделаю по-другому. Разумеется тоже через говнокод. ;)


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive


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

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

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