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
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