Crear función que retorne un arreglo

En algunos casos debemos realizar una función que retorne un arreglo de datos. Como he visto que algunas personas tienen dudas sobre cómo realizarlo, expongo acá unos pequeños tips.
¿Cómo retornar arreglo estático?
Debemos declarar el tipo:
type TArrayStatic = Array [0..5] of Integer;
Y ahora si podemos usarlo en una función. Ejemplo de su uso:
function GetArrayS: TArrayStatic; var rRes: TArrayStatic; i: Integer; begin for i := 0 to 5 do rRes[i] := i; Result := rRes; end;
¿Cómo retornar arreglo dinámico?
Es muy similar a lo anterior, pero en esta ocasión debemos declarar el tipo de la siguiente manera:
type TArrayDinamic = Array of Integer;
Ejemplo:
function GetArrayD(nNum:Integer): TArrayDinamic; var rRes: TArrayDinamic; i: Integer; begin SetLength(rRes,nNum); for i := 0 to nNum -1 do rRes[i] := i; Result := rRes; end;
Como ven, bastante sencillo.
Un saludo.,
| Este artículo fue publicado por WindHack el 7 enero, 2011 a las 8:57 PM, y está archivado en Delphi/Pascal, Programación. Sigue las respuestas a esta entrada a través de RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio. |











hace 1 año
Hola WindHack, la segunda función está mal.
SetLength() reserva memoria para el array dinámico, y la primera posición es 0, no 1. Sería algo así:
También podrías usar las funciones Low() y High() para saber cual es la primera posición de un array y cual es la última.
Saludos, enhorabuena por la web
hace 1 año
Sí, estás en lo cierto Khronos… Se me pasó de largo ese detalle.
Ya corregí la entrada. Muchas gracias.
Saludos.