Busca la funcion que necesitas!

miércoles, 22 de junio de 2011

DELPHI - Funcion split o explode

Bueno en esta ocasión les he programado una función que simula al split de vb6 o explode de php para delphi 7 ya que pues bueno no existe en este lenguaje y aveces es algo necesaria... La función devuelve un array de strings por lo que hay que declarar en type un array de strings así:



Código:
type
TStringArray=array of string

Y despues colocar nuestra función en cualquier parte de tú programa:

Código:
{ *******************************
     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;

Para que tengas una idea mas clara, sí estas haciendo un proyecto con un form en delphi 7  nuestro proyecto quedaría masomenos así:


Código:
{.... etcetc
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
TStringArray=array[1..10] of string;
var
  Form1: TForm1;
implementation

{$R *.dfm}

{ *******************************
     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;



No hay comentarios:

Publicar un comentario