:: Visual Foxpro, Foxpro for DOS
Re: Количество параметров процедуры.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
_vit
Хотя
Calvin Hsia (Microsoft Corp)
Visual Foxpro classes can also be used as structures. Structures are useful programming constructs that can hold related data together.

Если смотреть со стороны Си, то "структура" это просто непрерывный (как правило небольшой) кусок памяти, доступ к разным частям которой компилятор обеспечивает при помощи нотации str.SomeField. В фоксе класс (или объект Empty или объект полученный через scatter name) ну никак под это дело не подходит. Даже си-шарповский struct гораздо ближе к "старому доброму" сишному понятию структуры - хотя и не является ею (плюс "встроенная" возможность маршаллинга в уже самую настоящую "структуру" - т.е. банальный блок памяти - чтобы в те же АПИ функции передавать).
В фоксе приходилось изгаляться по-всякому чтобы к этому приблизиться.

Нет, оно, конечно, можно назвать empty/scatter-name объекты "структурой" и группируя в нём связанные логически свойства оперировать примерно так же как это в си делается - но ТОЛЬКО внутри самого фокса. И лично я всё равно не стал бы называть такие объекты "структурами". И уж точно не стал бы называть структурами классы, где всегда имеются методы - как минимум "встроенные".


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
_vit
просто к топику отношения не имеет, надо в курилку переходить.
Увы, там я не могу поддерживать разговор - слишком много инфошума


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
"Ну ты, есличо, заходи". (C)
Ratings: 1 negative/0 positive
Re: Количество параметров процедуры.
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
Igor Korolyov
В фоксе приходилось изгаляться по-всякому чтобы к этому приблизиться.

как то попадалось типа думали вводить понятие структуры в фокс.
даже видел синтаксис что то типа:

declare struct = name
var1 as type
var2 as type
...
endstruct

но все равно она не была бы эквивалентной сишной ибо в фоксе переменная базового типа уже есть сишная структура.
Было бы что-то типа структуры структур в сишном эквиваленте.
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Разнесло знатоков мамонтового наследия.

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

Даже Calvin Hsia безуспешно пытается вам обэяснить:
Structures are useful programming constructs ...

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

Структура - это специальная конструкция, которая обрабатывается функцией, и функция возвращает это структуру, но уже с другими обработанными данными.
Вы же дружно параметр от переменной не отличаете.

_vit
Прежде чем писать подобную бессмыслицу, загляните хотя бы в HELP.



Исправлено 2 раз(а). Последнее : lulgu, 08.02.20 23:59
Ratings: 2 negative/0 positive
Re: Количество параметров процедуры.
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
ИК
Чуть выше я выложил простую структуру для работы с ДатаВремя.
Предъяви, пожалуйста, в своих кодах на ее примере хоть что-то из того, что ты тут поднаписал.
Ratings: 2 negative/0 positive
Re: Количество параметров процедуры.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
_vit
как то попадалось типа думали вводить понятие структуры в фокс.
Не очень понятна мотивация для этого. Фокс гораздо более бизнес-дата-ориентированный язык нежели си/паскаль и даже современные шарп/ява. Кто стал бы пользоваться этими структурами и для каких целей? Для визуальных и стыковочных библиотек можно обойтись строкой-как-структурой и DECLARE DLL, для чуть более сложных случаев есть фокс-апи и можно на том же си всё сделать, организовав настоящий "фоксовый" интерфейс к этому делу. Поэтому ввод "родной" поддержки структур выглядел бы не оправданным. Уменьшить боль 0.001% разработчиков, при том что вполне хватало областей в бизнес-дата части которые нуждались в улучшении и/или переработке. Так что если и были такие планы, то стояли бы они в приоритетах команды где-то на предпоследнем месте
Тем более что были решения-обёртки (например библиотека struct, ещё что-то попроще было для управления памятью, если в структуре нужны ссылки на другие структуры - не помню как называлось) хоть и костыльно, и довольно коряво, но решавшие 90% проблем для взаимодействия с внешними dll.
А для внутренних нужд действительно вполне достаточно классов и empty/scatter name объектов, никаких преимуществ ввод структур не дал бы.


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Количество параметров процедуры.
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Так и продолжает ИК хронически путать работу со структурами с передачей параметров, а классы с набором методов для работы со структурами как с конструкцией с собственно самими структурами.
Класс EMPTY не имеет методов, только свойства-параметры.
Для работы со структурами нужны методы, т.е. класс CUSTOM.



Исправлено 1 раз(а). Последнее : lulgu, 09.02.20 12:33
Ratings: 2 negative/0 positive
Re: Количество параметров процедуры.
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
Igor Korolyov
Не очень понятна мотивация для этого. Фокс гораздо более бизнес-дата-ориентированный язык

Даже бизнес-дата-ориентированном ПО достаточно много сущностей которые характеризуются набором логически связанных данных
например физ/юр. лицо, товар, денежная единица и т.д. манипулировать такими наборами было бы проще через объект который их связывает.
А если бы еще был реализован автоматический маршалинг фоксовых структур в сишные и обратно то это бы шире раскрыло потенциал WINAPI
для разработчиков на фоксе и не только повысило эффективность самих программ но и их разработки.
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() Чтобы создавать структуры для WINAPI написал маленькую подпрограмку, которая из входных параметров конструирует Q-строку, ее и подаю на вход API. Есть похожая разбиралка входной Q-строки как структуры (структуру задаешь на псевдоязыке, типа формат полей при создании таблицы, но ее не доделал, т.к. не особо надо), возвращает массив с считанными данными... Чем не "маршаллинг" (преобразователь?)

Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Сам принцип верен, но вот реализация ....
Пора уже переходить на нормальные обозначения.
И убери ты свой дурацкий "Самовывоз".

Если есть данная функция сборки (DoMake), то должна быть парная ей функция разборки(DoSplit).
Определение типов данных лучше вынести в отдельную процедуру (DoDataType).
(например, знаковые и беззнаковые числа это разные типы).
Преобразование значеий (bintoc-ы) лучше вынести в отдельную процедуру (DoDataUtil).
Параметры все же лучше передавать через объект loEmpty.



Исправлено 1 раз(а). Последнее : lulgu, 09.02.20 19:13
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
of63
Чтобы создавать структуры для WINAPI написал маленькую подпрограмку, которая из входных параметров конструирует Q-строку, ее и подаю на вход API

Так-то да, только дороговато выходит на фоксе такой маршаллинг.
Лучше было бы для этого FLL-ку сварганить.
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Параметры все же лучше передавать через объект loEmpty.
Лулгу... не хотел встревать в дискуссию, но, подумай сам: в структуре важен не только тип элементов, но и их порядок. В Empty-обьекте порядок теряется...

ПС. С самовывозом без тебя разберусь )
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Порядок (имена) определяется массивом, он сохраняется (для внутреннего пользования).
Его лучше создвать тоже в loEmpty.
В свойствах Empty сохраняются значения (для внешнего пользования).
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Через loEmpty к порядку ( последовательности ) имен нет привязки. Как и в Collection.
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
От такого внимания таких крутых знатоков к своему коду как-бы Оффа снова не запил.

ЗЫ. Помогли бы лучше ИК написать свой пример.



Исправлено 1 раз(а). Последнее : lulgu, 09.02.20 21:42
Ratings: 1 negative/0 positive
Re: Количество параметров процедуры.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
_vit
Даже бизнес-дата-ориентированном ПО достаточно много сущностей которые характеризуются набором логически связанных данных
например физ/юр. лицо, товар, денежная единица и т.д. манипулировать такими наборами было бы проще через объект который их связывает.
Это и есть объект - от класса или от empty он сделан уже не так важно. Зачем ещё одну сущность вводить? Тем более что большинство разработчиков даже и с имеющимся функционалом туго справляются - от чего, собственно, и зародилась эта тема

_vit
А если бы еще был реализован автоматический маршалинг фоксовых структур в сишные и обратно то это бы шире раскрыло потенциал WINAPI
для разработчиков на фоксе и не только повысило эффективность самих программ но и их разработки.
Ни разу не приходилось маршаллить во внешние АПИ бизнес-сущности. Даже 15-20 лет назад взаимодействие уже происходило если не через HTTP/XML, то через COM - а там сишные структуры не нужны вообще.


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Количество параметров процедуры.
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
lulgu
ЗЫ. Помогли бы лучше ИК написать свой пример.
А сам чего не поможешь? А о каком примере идет речь?
С улицы прийти, чтоб нагадить?
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> то через COM

Вопрос немного не по теме, а про передачу из фох в эксель обьекта массива массивов - ARRAY(ARRAY(),ARRAY()...). На форуме где-то пытались, давно, кончилось ничем...

Вот реальный макрос в Excel, открывает файл CSV и читает из него строки. В реальном CSV первая колонка заполнена 20-значным числом (банковский № счета). Эксель бодро читает его как число, и изображает его в E-формe. Казалось бы "ерунда, поставь формат колонки целочисловой", да, поставил, эксель изобразил числом, но последние 4 цифры всегда 0, т.е. он потерял [в формате Double] точность! Тогда открываю этот файл как произвольный текстовый и говорю, что в первой колонке строка:

m.oExcel.Workbooks.OpenText(
Filename:= "...", Origin:= xlWindows (2), StartRow:=1, && CSV: 1е поле - 20-число - см. Array(1, 2)
DataType:=xlDelimited (1), (=1)
TextQualifier:= xlDoubleQuote (1), ConsecutiveDelimiter:=False,
Tab:=True, Semicolon:=True, Comma:=False, (Tab, Semicolon)
Space:=False, Other:=False, [OtherChar],
FieldInfo:=Array(Array(1, 2), Array(2, 1), Array(3, 1),...), (= 2-массив [колонка, Excel-формат данных в ней])
[TextVisualLayout, DecimalSeparator, ThousandsSeparator], TrailingMinusNumbers:=True, [Local]

Так вот собственно проблема: в фоксе нет массива массивов. Что можно передать в параметр FieldInfo, чтобы эксель подумал, что это массив массивов?
Или как бы узнать, как устроен преобразователь (маршаллинг?) фоксовых переменных в COM-интерфейс...



Исправлено 3 раз(а). Последнее : of63, 10.02.20 08:27
Ratings: 0 negative/0 positive
Re: Количество параметров процедуры.
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Массив массивов!
Каждая строка имеет свое к-во эл-тов?
Об этом речь, в принципе?
Если да, то а в чем вопрос, вернее где?

У себя, в самом Фоксе, так просто по-другому реализуется.
Во вне или из вне? Мне не встречалось, хотя живу уже много.



Исправлено 1 раз(а). Последнее : Ydin, 10.02.20 17:46
Ratings: 0 negative/0 positive


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

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

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