Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Использование массива из записи в процедуре (функции).  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 33
S.G.
Андрей Игоревич
Как напрямую использовать массив из записи в процедуре, минуя использование промежуточных массивов.


Можно его вообще не объявлять в списке входно/выходных переменных процедуры, и пользовать как "внешнюю" для нее переменную. Это несколько выпадает из канонов, но не запрещается.

unit Unit1;
.....


Можно.

Сейчас залез в свой в код и понял, что оба способа не подходят мне :).

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

Но, что вариант с использованием записи, что с использованием глобальных переменных\записей делает этот кусок кода пригодным только под эту задачу, так и вообще можно без вызова процедуры обойтись.
5 дек 17, 13:12    [21007005]     Ответить | Цитировать Сообщить модератору
 Re: Использование массива из записи в процедуре (функции).  [new]
S.G.
Member

Откуда: cartoon network
Сообщений: 27676
Андрей Игоревич
S.G.
пропущено...


Можно его вообще не объявлять в списке входно/выходных переменных процедуры, и пользовать как "внешнюю" для нее переменную. Это несколько выпадает из канонов, но не запрещается.

unit Unit1;
.....



Можно.

Сейчас залез в свой в код и понял, что оба способа не подходят мне :).

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

Но, что вариант с использованием записи, что с использованием глобальных переменных\записей делает этот кусок кода пригодным только под эту задачу, так и вообще можно без вызова процедуры обойтись.
Я не знаю, насколько универсальным вы хотите сделать свой код, но "капсулирование" данных и методов в один объект (как это делается в коде выше, да и вообще является основой Паскаля/Дельфи), делает именно это - универсальность.
У вас есть объект, "переменые" в нем (то есть, ваш массив), задают "состояние" объекта, а "методы" - процедуры и функции - переводят его из одного состояния в другое. Ну и решается типичная задача:
- начальное заполнение данных, (из другого объекта, из базы данных, из файла)
- обработка
- выгрузка (в другой объекта, в базу данных, в файл).

Как внутри проходит передача данных, через явное указание в виде параметров процедур, или в виде глобальной переменной, неважно (важно для компилятора, но не очень для нас)
5 дек 17, 13:42    [21007178]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить