Ver Mensaje Individual
  #5  
Antiguo 28-08-2008
franss franss is offline
Registrado
 
Registrado: ago 2008
Posts: 5
Reputación: 0
franss Va por buen camino
gracias a los dos. Con las prisas no he probado el algoritmo. lo cuelgo abajo para quien pueda interesarle. Ahora si funciona perfectamente.

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:= 0;
locA:=0;
Dim:=1;

SetLength (ArrayA, Dim); // Dimensiono
loc:= PosEx(Separador,s,1); //Busco el lugar del primer separador del String
ArrayA[Dim-1]:= Copy (s,1,loc-1); // Añado al array
Dim:= Dim +1;


Repeat
locA:= PosEx (separador, s, loc + 1); // busco el lugar del n separador
SetLength (ArrayA, Dim);
ArrayA[Dim-1]:= Copy (s, loc + 1 , Abs(loc-locA)-1);
Dim:=Dim + 1;
loc:= locA;
until loc=0;

Result:= ArrayA
end;
Responder Con Cita