Ver Mensaje Individual
  #9  
Antiguo 05-03-2012
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Reputación: 0
ungrande87 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Creo que a partir de Delphi 2006 existe la propiedad StrictDelimiter que soluciona ese problema. Pero para los que aún tenemos Delphi 7 hay que escribir un poco de código.

Una forma puede ser:

Código Delphi [-]
function SepararCadena(Cadena: string; const Delim: Char): TStrings;
var
p: Integer;
begin
Result:= TStringList.Create;
Cadena:= Cadena + Delim;
while Length(Cadena) > 0 do
begin
p:= Pos(Delim, Cadena);
if p = Length(Cadena) then
SetLength(Cadena,Length(Cadena)-1);
Result.Add(Copy(Cadena, 1, p));
Delete(Cadena, 1, p);
end;
end;




Llamadas de ejemplo:

Código Delphi [-]
var
Texto: string;
TS: TStrings;
begin
Texto:= 'Esta función, se podría haber evitado, si Delphi 7, '+
'tuviera implementada la propiedad StrictDelimiter.';
Memo1.Lines:= SepararCadena(Texto, ',');
// otro ejemplo
TS:= TStringList.Create;
try
TS:= SepararCadena(Texto, 'e');
Memo1.Lines:= TS;
finally
TS.Free;
end;
end;





Saludos.

Edito: ¡Al fín pude encontrar el hilo!... Creo que también te podría interesar esto
Muchisimas gracias amigo me sirvio!!!
Responder Con Cita