Ver Mensaje Individual
  #1  
Antiguo 28-08-2008
franss franss is offline
Registrado
 
Registrado: Aug 2008
Posts: 5
Reputación: 0
franss Va por buen camino
Question Funcion Array Dinamico???

Buenas tardes,
A ver si algun buen samaritano me puede iluminar.
Intentaré explicarme lo mejor posible:
Mi intención es crear una función en una clase de una unidad con la particularidad de que la salida de esta funcion es un array dinámico.
como ponerlo direcrtamente no lo permite Delphi, creo antes un tipo con ese array publico y lo utilizo. El problema es que no consigo hacer que corra y aparentemente esta todo bien. os paso el código simplificado:

unit 2

Código Delphi [-]
unit 2
type
TStringArray= Array of String;
TCadenas= Class
private
public
Function SplitS(const s: String; const separador: String= ';'): TStringArray;
end;
implementation
{ TCadenas }
function TCadenas.SplitS(const s: String; const separador: String= ';'): TStringArray;
var
loc,locA, Dim: integer;
ArrayA: TStringArray;
begin
loc:= 1;
locA:=0;
Dim:=1;
Repeat
loc:= PosEx (separador, s, locA + 1);
SetLength (ArrayA, Dim);
ArrayA[Dim]:= Copy (s, loc, Abs(loc-locA));
Dim:=Dim + 1;
locA:= loc;
until loc=0;
Result:= ArrayA
end;

y en la 1 o principal:

Código Delphi [-]
implementation
{$R *.dfm}
var
a:String;
b:TCadenas;
c:TStringArray;
Begin
try
a:='Uno;Dos;Tres;Cuatro;Cinco;Seis';
b:=TCadenas.Create;
c:= b.SplitS(a);
finally
b.Free;
end;
end.

error runtime error 217


gracias

Última edición por dec fecha: 28-08-2008 a las 19:43:58.
Responder Con Cita