Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.14;
Скачать: CL | DM;

Вниз

Как передать функции управление динамическим массивом?   Найти похожие ветки 

 
Vopros01   (2003-04-03 09:42) [0]

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


 
Anatoly Podgoretsky ©   (2003-04-03 09:47) [1]

SetLength


 
Skier ©   (2003-04-03 09:48) [2]

>Vopros01
1) модификатор var у формального параметра
2) SetLength(...)


 
vopros01   (2003-04-03 10:37) [3]

Извините, неправильно поставил вопрос.
Пример:

var
SpisSearch: array of Integer; // список найденного
CountSearch: Word; // количество найденного

begin

Search(CountSearch, SpisSearch);

// Далее обработка полученного списка


end;

Процедура Search должна мне вернуть сформированные SpisSearch и CountSearch

Procedure Search(Spis: array of Integer; Count: Word);
begin

// вычисление количества элементов
...

// назначить размерность динамического массива
SetLength(Spis, Count);

// присвоить значения элементам массива
...

end;

Процедура Search лежит в другом модуле (если это имеет значение)

Так вот, такая схема не работает! Компилятор выдает ошибку на строке
SetLength(Spis, Count);

Help!


 
AlexSV ©   (2003-04-03 10:49) [4]


> vopros01
> Так вот, такая схема не работает

А что при этом говорит?

ИМХО
Сделать объявление типа
type TIntArray: array of Integer;

а потом использовать:
var
SpisSearch: TIntArray;
...
Procedure Search(Spis: TIntArray; Count: Word);


 
vopros01   (2003-04-03 10:49) [5]

Help!


 
Skier ©   (2003-04-03 10:51) [6]

>vopros01
1) type TIntArray: array of Integer;
2) Procedure Search(var Spis: TIntArray; var Count: Word);
(если я правильно понял...)



 
AlexSV ©   (2003-04-03 10:54) [7]


> Skier ©


Списываем? ;-)))


 
vopros01   (2003-04-03 10:54) [8]

> Сделать объявление типа
> type TIntArray: array of Integer;
AlexSV, поясните где сделать? В модуле с вызываемой процедурой или в вызывающей?



 
Skier ©   (2003-04-03 10:56) [9]

>AlexSV
Ну...я бы сказал так : "заимствуем разумные вещи"
И потом...надо вовремя оформлять copyright. :)))


 
AlexSV ©   (2003-04-03 10:57) [10]

Объявление типа делаем в модуле, где находится процедура разделе interface


 
vopros01   (2003-04-03 11:20) [11]

Спасибо. Буду пробовать.
Блин! У меня сейчас рухнул комп. Выдал ошибку записи на винт.
После Reset винт не был обнаружен! Только после полного выключения компа я смог облегченно выдохнуть. Извиняюсь за отступление...:)


 
vopros01   (2003-04-03 12:21) [12]

Всем спасибо! Работает! (пару дней бился, пытаясь врубиться самостоятельно)



Страницы: 1 вся ветка

Текущий архив: 2003.04.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
4-44498
neodiX
2003-02-11 17:07
2003.04.14
Опять хуки! Почему в XP работает, а в Win2kPro нет?


1-44158
Шишкин Илья
2003-04-03 16:13
2003.04.14
помогите с TColor


3-43987
RDA
2003-03-24 11:36
2003.04.14
Проблемы с MS Jet и ADO


1-44215
бред
2003-04-01 17:43
2003.04.14
JPEG > 1000 пикселей


14-44353
Карлосон
2003-03-30 23:17
2003.04.14
Hello Programist А можно ли перевести Дату в числовой тип данных