:: Visual Foxpro, Foxpro for DOS
Re: Создание возврат массива из процедуры через параметры
sphinx

Сообщений: 31179
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Наши начали в Джаву. И неожиданно узнали, что форма на фоксе - это класс. И в Делфях просто компоненты таскают на форму, и будут таскать каждый раз. Наследование если и проходили - то ничерта не поняли. А виноват, конечно, фокс. От гуру я еще готов принять. Но не от наших. Накипело.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
sphinx
ну покажите мне задачу, которую я (коллеги помогут, но не напишут за меня, понятно) не реализую.

Думаю, Вы не напишите на фоксе, скажем, авторизацию через интернет банк.
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
sphinx

Сообщений: 31179
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
leonid
sphinx
ну покажите мне задачу, которую я (коллеги помогут, но не напишут за меня, понятно) не реализую.

Думаю, Вы не напишите на фоксе, скажем, авторизацию через интернет банк.

Уделал.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
leonid
sphinx
ну покажите мне задачу, которую я (коллеги помогут, но не напишут за меня, понятно) не реализую.

Думаю, Вы не напишите на фоксе, скажем, авторизацию через интернет банк.
Почему нет? Просто фоксовые детали (типа БД юзеров, которые имеют право авторизироваться, будет рядом стоять, как некая SQL- с которой и умеет ( SQL- языком) общаться. Стандарт - хорошее дело, но...

() до сих пор думаю, где лежат ПД клиентов, ихп ароли... в отткрытом виде, практически, чтобы чел "зашел". Только СМС-ная фигня ограждает...

> Вы не напишите на фоксе, скажем, авторизацию через интернет банк.
/Вы написали?

Доб. Это пишут "люди", со всеми их предположениями о читателях, с огрехами. Специфическая тема, лучше туда не ходить



Исправлено 3 раз(а). Последнее : of63, 24.05.23 00:26
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
of63
Вы написали?

Я пишу на джаве. На джаве это писать не надо. Все написано до нас. Бери - и пользуйся.
Ratings: 0 negative/1 positive
Re: Создание возврат массива из процедуры через параметры
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Леонид, понятно, что на любом ЯП можно изложить всё, для того ЯП и создаются придумываются.

"Что написано до нас" - часто придется переписать, кроме Библии... которую вовсю переписывают (вернее, пока перестали читать, ее "несчастные 10 заповедей", ее табу), переписывают - в смысле переиначивают "веру" (да, "вера" - это просто тотемные, народные верования, сближающие их в тяжелые времена...

Я непрерывно переписываю собственные проги, и считаю это нормальным, это свойство "живой" проги.

Доб. А что есть "вера" вы спросите, а вера - это именно надежда, что вы "прАвы", что ваш способ решения проблем, "стиль", уклад есть "правильный"... (А определения "правильного" никому не дано)



Исправлено 1 раз(а). Последнее : of63, 26.05.23 19:03
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
akvvohinc
= MakeArray(@myarray) && вызов функции, создающей массив с именем передаваемой по ссылке переменной

Что-то с ходу не нашел оператор @ в хелпе, что это за синтаксис?



Исправлено 1 раз(а). Последнее : DmitryKn, 14.06.23 16:19
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
Владимир Максимов

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
DmitryKn
Что-то с ходу не нашел оператор @ в хелпе, что это за синтаксис?

Как: Передавать значения параметров "по-ссылке"

Оригинальное название статьи в Help: "How to: Pass Data to Parameters by Reference"
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
Это аналог оператора "?" ?
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
Владимир Максимов

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
DmitryKn
Это аналог оператора "?" ?

Нет

Вопросительный знак - это можно считать своеобразной "макроподстановкой". Там идет вычисление и подстановка значения. Это просто способ формирования символьной строки. Указание на то, где взять значение для очередного фрагмента символьной строки.

По сути, вопросительный знак - это аналог STRTRAN(). Замена фрагмента строки на другой фрагмент, который еще надо вычислить.


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

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

Так и здесь, одна и та же область памяти получит несколько разных имен. Несколько разных переменных будут менять свое содержимое синхронно, поскольку физически - это будет одна переменная (область памяти)
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Это аналог оператора "?" ?
Можно считать это принудительной установкой настройки SET UDFPARMS TO REFERENCE, но не глобально, а для одного единственного аргумента.

Ну, а разница между передачей по ссылке и по значению в том, что в первом случае не создается новая переменная - вызываемая функция изменит значение передаваемого аргумента, если изменит значение принятого параметра - они ссылаются на одну и ту же область памяти.
А при передаче по значению - параметр можно считать копией переданного аргумента, и изменение параметра не изменит аргумент.
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
Стал смотреть справку по функции SET UDFPARMS
В примере есть такой код (фрагмент)
@ 2,2 SAY 'UDF value: ' + STR(plusone(gnX))
@ 4,2 SAY 'Value of gnX: ' + STR(gnX)

что такое @ 2,2 и что это за SAY ?
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Visual FoxPro 9.0 Описание Языка
Команда @ ... CLASS
Создает элемент управления или объект, управляемый командой READ.
@ nRow, nColumn CLASS ClassName NAME ObjectName
Параметры
@ nRow, nColumn
Задает начальную позицию объекта. Высота и ширина объекта определены в описании родительского класса. Строки и столбцы нумеруются с 0 и до конца представленной области (экран VFP или пользовательское окно). Количество строк и количество столбцов, размещаемых в текущей активной области зависит от размера и характеристик текущего Шрифта.
CLASS ClassName
Задает имя порождающего класса для данного объекта. Параметр ClassName должен быть именем базового класса Visual FoxPro или именем определенного пользовательского класса.
NAME ObjectName
Задает имя переменной, которая будет хранить ссылку на данный объект. Соответствующие свойства, события и методы связываются с данной переменной. Дополнительная информаци о базовых классах Visual FoxPro в разделе Базовые классы в Visual FoxPro.
Комментарии
Команда @ ... CLASS обеспечивает промежуточный вариант перехода от старой технологии программирования, применяемой в младших версиях VFP к объектно-ориентированной технологии. Для дополнительной информации о совместимости с младшими версиями FoxPro 2.x см. раздел Controls and Objects Created in Earlier Versions.
Для дополнительной информации об объектно-ориентированном программировании см. раздел Объектно-ориентированное программирование.
Пример
Представленный пример демонстрирует использование команды @ ... CLASS при технологии программирования, используемой в младших версиях FoxPro (в примере используется команда READ, как диспетчер элементов управления). Команда @ ... CLASS используется для создания объекта TextBox, который можно было заменить на уже привычный управляющий элемент TextBox в объектно-ориентированной технологии программирования.
Команда ON KEY LABEL вызывает системный диалоговый бокс выбора цветовой схемы при нажатии комбинации клавиш CTRL+I. Элемент TextBox размещается на главном экране Visual FoxPro командой @ ... CLASS, и активируется командой READ.
CLEAR
ON KEY LABEL CTRL+I _SCREEN.PageFrame1.Page1.goFirstName.BackColor;
= GETCOLOR( )
@ 2,2 SAY 'Press Ctrl+I to change the background color'
READ
CLEAR


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
Владимир Максимов

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
DmitryKn
Стал смотреть справку по функции SET UDFPARMS
В примере есть такой код (фрагмент)
@ 2,2 SAY 'UDF value: ' + STR(plusone(gnX))
@ 4,2 SAY 'Value of gnX: ' + STR(gnX)

что такое @ 2,2 и что это за SAY ?

Это наследство FoxPro for DOS. Команда оставлена для обратной совместимости. Вставка текста на экран с определенной позиции "строки" и "столбца".

Никто всерьез старые статьи Help не переписывал, если не было каких-то нововведений в новых версиях по той или иной статье. Вот периодически такое и всплывает в примерах

PS: Для примера вполне можно сделать замену "@ 2,2 SAY" на "?". В этом случае вопросительный знак в начале строки - это как раз вывод на экран с новой строки. Т.е. код из примера будет примерно такой

? 'UDF value: ' + STR(plusone(gnX))
? 'Value of gnX: ' + STR(gnX)



Исправлено 1 раз(а). Последнее : Владимир Максимов, 15.06.23 21:18
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
что такое @ 2,2 и что это за SAY ?
Здесь главное понимать, что команда с именем @, и специальный знак @,
который может быть указан перед именем переменной в myFunc(@var1, var2) и означающий передачу var1 по ссылке,
только выглядят одинаково, а по сути не имеют ничего общего.

Ну, а если захочется почитать про эту и другие команды FoxPro 2.6 for DOS, для которых уже нет статей в современном Help,
то вот файлы Help для той версии (в моем переводе):
[attachment 36594 FOXHELP.rar]

После разархивации появятся два файла - Foxhelp.dbf и Foxhelp.fpt
Можно подключить их как файл помощи командой
SET HELP TO Foxhelp (с указанием полного пути к файлу, если потребуется)
и далее смотреть командой HELP или F1



Исправлено 4 раз(а). Последнее : akvvohinc, 16.06.23 04:06
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
Спасибо за разъяснения, друзья!
Столько нюансов в этом мире...
akvvohinc
...то вот файлы Help для той версии (в моем переводе):
вряд ли я буду сейчас смотреть что-то для ранних версий Fox, но вот сам этот факт вызывает еще большее уважение.
Ratings: 0 negative/0 positive


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

On-line: 32 PaulWist  (Гостей: 31)

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