Форум: "Основная";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];
ВнизКак в Pascal сделать чтобы ф-ция возвращала массив? Найти похожие ветки
← →
новый (2003-04-22 14:36) [0]Извините, за вопрос, я только начал учить ....
Пишу
function My(i:integer):array of string;
begin
...
Result[1] := ...
Result[2] := ...
end;
ругается, что нельзя так....
← →
MBo (2003-04-22 14:37) [1]сначала объяви тип
type ...
а его уже используй для объявления ф-ции
← →
sashas (2003-04-22 14:38) [2]Стадлартный вопрос, с которым все сталкиваются. Чтобы не создавать себе проблем пусть функция возвращает и получает не массив, а указатель на него. Все станет быстрее и оптимальнее.
← →
новый (2003-04-22 14:40) [3]что-то типа такого?
type Myarray : array[1..2] of string;
function my(i:integer):myarray;
← →
Skier (2003-04-22 14:41) [4]>новый
1) type
TStringArray = array of string;
function My(i:integer) : TStringArray;
begin
...
Result[1] := ... //НЕ ЗАБУДЬ ЧТО МАССИВ ИНД-СЯ С НУЛЯ !!!
Result[2] := ...
end;
2) procedure My(i:integer; AList : TStrings); //(c) Mbo
begin
if Assigned(AList) then begin
//заполняешь AList...
end; //if
end;
← →
Foxtrot (2003-04-22 14:45) [5]Если обстоятельства особо не требуют, то можно просто обойтись процедурой, а не функцией.
var procedure MyProc (var A: array of Byte);
← →
Palladin (2003-04-22 15:20) [6]ну var в начале лишний явно
← →
evvcom (2003-04-22 15:20) [7]Также не надо забывать, что надо установить длину (размер) динамического массива процедурой SetLength(DynArray, NewLength); а только после этого можно обращаться через индексы к элементам
for i:=0 to NewLength - 1 do // или High(DynArray)
DynArray[i] := "кое-какой string";
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c