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

Сообщений: 5640
Откуда: Днепр
Дата регистрации: 02.01.2002
Навеяно веткой про параметры
Есть функция аналог по результату фоксовскому ALines() - разбирают строку на необходимые элементы в массив.
Что то я запутался как сделать чтобы я через параметры передал имя массива, функция внутри создала бы соответствующий массив и вернула его заполненным чтобы не создавать массив/переменную заранее. Т.е. аналогично ALines - MyAlines(MyArray, MyStr)


------------------
В борьбе бобра с козлом побеждает бобро
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
Совсем аналогично ALINES не получится, так как при вызове собственных функций передаваемые аргументы уже должны существовать, иначе получим ошибку №12.

Если условия задачи разрешают предварительно создать переменную с именем будущего массива, то решение несложно:
LOCAL myarray && имя будущего массива
= MakeArray(@myarray) && вызов функции, создающей массив с именем передаваемой по ссылке переменной
* проверяем качество работы функции
CLEAR
DISPLAY MEMORY LIKE myarray
FUNCTION MakeArray
PARAMETERS arrname && приняли ссылку на переменную, из которой создаем массив
DIMENSION arrname[3] && создаем массив на основе созданной ранее переменной
* заполняем его элементы
arrname[1] = '1'
arrname[2] = '2'
arrname[3] = '3'

Если же создавать переменную заранее нельзя, то сходу на ум приходят только 2 варианта:
1) Функция создаст PUBLIC массив - тут проблем нет, и такой массив будет виден снаружи.
2) Функция создаст объект на основе, например, Empty, единственным свойством которого будет массив, имя которого передается в функцию.
Функция возвратит ссылку на этот объект, её примет переменная Obj вызывающей программы, а далее работа с массивом по имени Obj.MyArray
Но какой может быть смысл в подобных "извращениях", если можно всё решить кодом, приведенным выше?
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
Burn
Автор

Сообщений: 5640
Откуда: Днепр
Дата регистрации: 02.01.2002
Спасибо.
С созданной заранее переменной я и сделал. Едиственно не додумался передать ее по ссылке
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Что то я запутался как сделать чтобы я через параметры передал имя массива, функция внутри создала бы соответствующий массив

DIMENSION A[1]
=fu(@A)
? A
RETURN
FUNCTION fu
LPATAMETERS parMASS
EXTERNAL ARRAY parMASS
? TRANSFORM(parMASS[1])
parMASS[1] = "xxx"
RETURN
надо учить пробовать! матчасть, нет другого пути
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ну спросите, если схема не такая, как хотелось бы... хотя, иногда, лучше бы не спрашивали.
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
я вас запутал... Фокс, как умеет передавать в функцию и переменыец и массиивы, обьектв. Порстор вы лусаете, что другие ЯП дадукут новые возможности. Они не дадут, кроме ващих фантазий (за минусом ващих фантазий)
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
Burn
Автор

Сообщений: 5640
Откуда: Днепр
Дата регистрации: 02.01.2002
Ну вот пришел, нахамил, ничего не понял, повторил уже предложенные решения.
Спашиваеться: нафига?
Ratings: 0 negative/2 positive
Re: Создание возврат массива из процедуры через параметры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Нахамить хочется обстановка хамская в мире. Да не в нашем мирке.

Вообще - виноват (Верю пока Дмитрию)

() Не могу читать забаненные свои тексты (кстати?, а почему бы и нет?!, понимаю сложности програмера этого сайта).

Доб. Это, если я виноват перед Дм.

А если нет, то тогда куй... всё просто

()() Пью вотку Белорусскую, хорошая. В дурацких емкостях - 0.45л, ну, их но хау, возможно. Водка "Хлебная" "половинка"



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

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
Когда то, в детстве, я изучал Pascal. А зачем?

.


------------------
Говорить стоит лишь для тех, кто слушает.




Исправлено 1 раз(а). Последнее : Vedmak, 19.05.23 22:43
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
Vedmak

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
ссылка на переменную.

pointeroperation


------------------
Говорить стоит лишь для тех, кто слушает.




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

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Vedmak
Когда то, в детстве, я изучал Pascal. А зачем?
.

Ты много чего изучал, в т.ч. ЯП "русский", и поэтому не пойму как разговаривать, после "майданов" с тобой. Попытки осталвю уже.
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Цитата:
2) Функция создаст объект на основе, например, Empty,

3) Функция создает объект на основе _SCREEN.


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

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Vedmak
Когда то, в детстве, я изучал Pascal. А зачем?
.

+1

Саньк, чтобы потом освоить что-то другое. Базы там закладывались, как у многих - xBase и Pascal.


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

Сообщений: 5640
Откуда: Днепр
Дата регистрации: 02.01.2002
У меня друг всю жизнь программировал контролеры, разводил платы и писал софт для управляющих устройств АСУТП.
А вот сейчас работает с аериканцами, пишушими софт для всяких медсистем. И выясняеться что работаю в мире системы чуть ли ни от DOS до всяких Линуксов, Андроидов и iOC. Пришлось вспомнить и Паскаль и Ассемблер ...



Исправлено 1 раз(а). Последнее : Burn, 20.05.23 13:24
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
sphinx
Цитата:
2) Функция создаст объект на основе, например, Empty,
3) Функция создает объект на основе _SCREEN.
Не понял.
Поясни, к какому списку и зачем этот пункт 3).
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
sphinx

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




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

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
akvvohinc
sphinx
Цитата:
2) Функция создаст объект на основе, например, Empty,
3) Функция создает объект на основе _SCREEN.
Не понял.
Поясни, к какому списку и зачем этот пункт 3).

Я понял, что пробежался и смысл не совсем понял. Я подумал, что ты писал про самостоятельный (пусть паблик) объект Empty, а я часто такие обЪекты не пложу (есть один - классический по сути oApp), а свойство _SCREEN. Не думаю, что есть мой ТРЕТИЙ пункт, признал свою спешку и невнимательность. А может заказчик звонил и сбил с мысли.



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

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Цитата:
Пришлось вспомнить и Паскаль и Ассемблер ...

Дим, согласись, что вспоминать и изучать с нуля - очень разные вещи. Я в Делфи не очень, а на паскале только синтаксисы посмотреть, он у меня до Клиппера/Фокса и был основной. Но в чистом виде почти и не пишу на нем, как-то все с фоксом и PLSQL/pgSQL.


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

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Я подумал, что ты писал про самостоятельный (пусть паблик) объект Empty, а я часто такие обЪекты не пложу (есть один - классический по сути oApp), а свойство _SCREEN.
Я и писал про самостоятельный объект на основе, например, Empty.
Про область видимости я ничего не писал, так как она может быть любой - автору виднее, но делать его Public смысла не имеет, так как тогда проще просто создать Public-массив.
Конечно, если уже есть какой-нибудь oApp, то ничто не мешает создать свойство-массив в этом объекте.

_SCREEN - это не свойство, а ссылка на объект.
Естественно, можно создать свойство-массив (а не объект, как в твоем пункте 3) и в этом объекте, но я бы так делать не стал - это нелогично - всё же _SCREEN-объект имеет вполне определённое назначение, и, на мой взгляд, не стоит его наполнять чем попало.



Исправлено 1 раз(а). Последнее : akvvohinc, 21.05.23 01:27
Ratings: 0 negative/0 positive
Re: Создание возврат массива из процедуры через параметры
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Цитата:
_SCREEN - это не свойство, а ссылка на объект.

Я же упростил. Это мне известно. Но, полагаю, ты не мне лично уточнял (это не ЛС!) а всем, в том числе подключившимся в освоении Фокса Леменему и DmitryKn.

Да, ты не писал, КАК создавать объект, его видимость. Я признал свою невнимательность. И писал - это каждый решает сам, как удобнее, или как уже сформился корпоративный стиль написания. Не все так просто и категорично. Фокс много чего позволяет разными способами. Про ограниченность языка (в целом да, уступает Джаве/СШарпу). Но на нашем уровне, на нашем производстве - ну покажите мне задачу, которую я (коллеги помогут, но не напишут за меня, понятно) не реализую. Мне говорили, что досовские ПРГ я не соберу... Внимание! Потому что ДО ТЕБЯ никто не смог. О, это показатель. Люди на нашем производстве здесь - ноунеймы и сами даже в гугл (представьте!) не умеют. И эти люди будут вещать... Ругаться не хочется, это вряд ли полезно в коллективе.

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

Нучитесь хотя бы на Фоксе (простой как три копейки) свои мысли прогить, а потом мне пальцем показывать будете. А то Делфи... Юра Шутенко рассказывал в свое время, как на конференции молодого просто и с улыбкой опустил. Может перевру, но что-то типа заготовки (без отчетов) под склад с коленки наваять, только общие классы, а не свои готовые наработки. И Юра показал, как за пару часов. Тот не смог. Как Юра и я не смогу. Дело - в УМЕНИИ пользоваться инструментом, а не в его наворотах. Дай дураку джаву - так он и калькулятор за три года не напишет.


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


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

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

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