Página 1 de 1

Split en delphi 7

Publicado: 20 Jun 2011, 02:09
por linkgl

Código: Seleccionar todo

type
TStringArray=array of string
{...}

{ *******************************
     FUNCION SPLIT BY Linkgl
     }
function split(cadena:string;delimitador:string):TStringArray;
var i:Integer;
begin
for i:=1 to length(cadena) do
begin
  if AnsiPos(delimitador,cadena) = 0 then
  begin
    Result[i]:=Copy(cadena,1,Length(cadena));
    exit;
  end
  else
  begin
    Result[i]:=Copy(cadena,1,AnsiPos(delimitador,cadena));
    cadena:=Copy(cadena,length(Result[i])+length(delimitador),length(cadena)-length(delimitador));
  end;
  end;
end;
hay que definir TStringArray como un array de string para poder hacer que la funcion devuelva un array :P la probé con la cadena:

Código: Seleccionar todo

dato:=split('xDDD&&Indetectables&&foro&&','&&');
dato definido como TStringArray...

Re: Split en delphi 7

Publicado: 20 Jun 2011, 19:07
por Metal_Kingdom
Ole, ole y ole! esto me encanta, made in delphi

Muchas gracias tio!

Re: Split en delphi 7

Publicado: 20 Jun 2011, 20:23
por ØnLy
broooo, y en delphi!
Me gusto mucho que retornes un array de strings......
Avansas rapido en este lenguaje capo..

Re: Split en delphi 7

Publicado: 22 Jun 2011, 18:30
por linkgl
Jeje gracias por los comentarios, tenia un error pequeño lo que pasa que devolvia un caracter mas despues de cortar ya lo arreglé hace un rato pero olvidé posterlo correjido:

Código: Seleccionar todo

{ *******************************
     FUNCION SPLIT BY Linkgl
     }
function split(cadena:string;delimitador:string):TStringArray;
var i:Integer;
begin
for i:=1 to length(cadena) do
begin
  if AnsiPos(delimitador,cadena) = 0 then
  begin
    Result[i]:=Copy(cadena,1,Length(cadena));
    exit;
  end
  else
  begin
    Result[i]:=Copy(cadena,1,AnsiPos(delimitador,cadena)-1);
    cadena:=Copy(cadena,length(Result[i])+length(delimitador)+1,length(cadena)-length(delimitador));
  end;
  end;
end;

Re: Split en delphi 7

Publicado: 23 Jun 2011, 19:41
por AX
Que bien! Y una bonita función.

Gracias por compartir.

Saludos.