Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   funcion arrays (https://www.clubdelphi.com/foros/showthread.php?t=23485)

fabian20s 18-07-2005 23:53:34

funcion arrays
 
quisiera saver cual es l afuncion de almacena en un arrays todos los datos de un tedit que esten seguidos de una coma o un espacio

por ejemplo

edit.text := '1,2,3,4,5'

y que la funcion debuelva

i1=1;
i2=2;
i3=3;
i4=4;
i5=5;

mamcx 19-07-2005 01:53:41

Mira en TStringList la propiedad Delimiter (Creas el TStringList, le pones Delimiter = "," y luego asignas el texto)

dec 19-07-2005 03:51:21

Hola,

Cabe añadir a lo dicho por mamcx que la clase "TStringList" cuenta con una propiedad "CommaText", la cual te valdrá perfectamente si los elementos en cuestión se separan por comas. Si se separan por espacios puedes tomar nota de lo dicho por mamcx.

Por otro lado, una función no puede devolver un "array of string" sin más, como podrás ver si lees el siguiente hilo de estos mismos foros. Sin embargo, según lo que puede leerse en el referido hilo y en función de lo dicho por mamcx podría hacerse algo así:

Código Delphi [-]
 type
   TArrayOfString = array of string;
 
 function CommaTextToArrayOfString(commaText: string) : TArrayOfString;
 var
   i: integer;
   t: TStrings;
 begin
   t := TStringList.Create;
   try
     t.CommaText := commaText;
     SetLength(Result, t.Count);
     for i := 0 to t.Count-1 do
       Result[i] := t[i];
   finally
     t.Free;
   end;
 end;
 
 // Ejemplo de llamada a la función
 procedure TForm1.Button1Click(Sender: TObject);
 var
   i: integer;
   s: TArrayOfString;
 begin
   s := CommaTextToArrayOfString(Edit1.Text);
   // Solo a efectos de prueba...
   for i := 0 to High(s) do ShowMessage(s[i]);
 end;
Empero, puede que te fuera suficiente algo así para utilizar los distintos elementos que separados por comas se encuentren en un "TEdit" por seguir con tu ejemplo:

Código Delphi [-]
 procedure TForm1.Button2Click(Sender: TObject);
 var
   t: TStrings;
 begin
   t := TStringList.Create;
   try
     t.CommaText := Edit1.Text;
     // En "t" tienes ahora todos
     // los elementos de "Edit1"
     {...}
   finally
     t.Free;
   end;
 end;
En fin, si lo inmediatamente anterior te fuera suficiente, te ahorrarías el enjendro que me salió antes. Creo que, en todo caso, ya tienes información para lograr tu objetivo. Si me equivoco hazlo saber.

fabian20s 19-07-2005 17:06:34

grasias ya solucione mi problema


La franja horaria es GMT +2. Ahora son las 16:22:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi