Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
14-44431
Alexandrius
2003-03-28 20:06
2003.04.14
Нужен бесплатный компонент для работы с Excel файлами


1-44155
lex01
2003-04-03 16:00
2003.04.14
как получить значение ключа реестре


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


7-44492
Andy BitOff
2003-02-18 12:46
2003.04.14
WinXP CTRL+ALT+DEL, ALT-TAB, CTRL-ESC


4-44525
vvolkov
2003-02-13 13:12
2003.04.14
Названия стандартных кнопок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский