Difference between revisions of "TStringList-TStrings Tutorial/es"

From Lazarus wiki
Jump to navigationJump to search
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 4: Line 4:
  
 
   TStringList (o TStrings) se parece mucho a un gran matriz dinámica o a un conjunto de cadenas (un conjunto de cadenas no es posible en FPC). ¡Será muy útil al programar y yo te voy a enseñar el uso básico de TstringList!
 
   TStringList (o TStrings) se parece mucho a un gran matriz dinámica o a un conjunto de cadenas (un conjunto de cadenas no es posible en FPC). ¡Será muy útil al programar y yo te voy a enseñar el uso básico de TstringList!
<delphi> program StrList;
+
<syntaxhighlight> program StrList;
 
  {$mode objfpc}
 
  {$mode objfpc}
 
   uses Classes, SysUtils;
 
   uses Classes, SysUtils;
Line 12: Line 12:
 
   writeln('La lista de cadenas (tstringlist) contiene ' + IntToStr(ListaCadenas.Count) + ' cadena(s).');
 
   writeln('La lista de cadenas (tstringlist) contiene ' + IntToStr(ListaCadenas.Count) + ' cadena(s).');
 
   Readln;
 
   Readln;
  end.</delphi>
+
  end.</syntaxhighlight>
  
 
&nbsp;&nbsp;&nbsp;Este es un programa de consola simple que crea y agrega una cadena a una lista de cadenas. Ahora, he aquí algunas cosas que debes saber:
 
&nbsp;&nbsp;&nbsp;Este es un programa de consola simple que crea y agrega una cadena a una lista de cadenas. Ahora, he aquí algunas cosas que debes saber:
Line 26: Line 26:
  
 
&nbsp;&nbsp;&nbsp;¿Qué tal un ejemplo más jugoso, ¿eh?
 
&nbsp;&nbsp;&nbsp;¿Qué tal un ejemplo más jugoso, ¿eh?
<delphi> program StrList2;
+
<syntaxhighlight> program StrList2;
 
   {$mode ObjFPC}
 
   {$mode ObjFPC}
 
   uses Classes, SysUtils;
 
   uses Classes, SysUtils;
Line 50: Line 50:
 
     end;
 
     end;
 
   until (S = 'Terminar');
 
   until (S = 'Terminar');
   end.</delphi>
+
   end.</syntaxhighlight>
  
 
==Usando archivos==
 
==Usando archivos==
Line 57: Line 57:
 
*''SaveToFile'' guardará todas las cadenas en la lista en un archivo.
 
*''SaveToFile'' guardará todas las cadenas en la lista en un archivo.
 
*''LoadFromFile'' abrirá el archivo y agregará los datos del archivo a la cadena de la lista de cadenas.
 
*''LoadFromFile'' abrirá el archivo y agregará los datos del archivo a la cadena de la lista de cadenas.
<delphi> program StrListFile;
+
<syntaxhighlight> program StrListFile;
 
  {$mode objfpc}
 
  {$mode objfpc}
 
  uses
 
  uses
Line 68: Line 68:
 
   ListaCadenas.Add('Hola');
 
   ListaCadenas.Add('Hola');
 
   ListaCadenas.SaveToFile('Algo_de_Texto_en_Archivo.txt');
 
   ListaCadenas.SaveToFile('Algo_de_Texto_en_Archivo.txt');
  end.</delphi>
+
  end.</syntaxhighlight>
  
 
&nbsp;&nbsp;&nbsp;¡Acabamos de abrir un archivo, hemos editado el texto y lo hemos guardado de nuevo¡
 
&nbsp;&nbsp;&nbsp;¡Acabamos de abrir un archivo, hemos editado el texto y lo hemos guardado de nuevo¡

Revision as of 15:01, 24 March 2012

Deutsch (de) English (en) español (es) suomi (fi) français (fr) polski (pl) русский (ru)

TStringList

   TStringList (o TStrings) se parece mucho a un gran matriz dinámica o a un conjunto de cadenas (un conjunto de cadenas no es posible en FPC). ¡Será muy útil al programar y yo te voy a enseñar el uso básico de TstringList!

 program StrList;
 {$mode objfpc}
  uses Classes, SysUtils;
  var ListaCadenas: TstringList;
  begin
   ListaCadenas := TStringList.Create; // Esto es necesario cuando se utiliza esta clase (y la mayoría de las clases) ListaCadenas.Add('¡Algo de texto!');
   writeln('La lista de cadenas (tstringlist) contiene ' + IntToStr(ListaCadenas.Count) + ' cadena(s).');
   Readln;
 end.

   Este es un programa de consola simple que crea y agrega una cadena a una lista de cadenas. Ahora, he aquí algunas cosas que debes saber:

  • Create - Creará la lista de cadenas para modificar.
  • Count - Es un contador para el número de cadenas en la Lista.
  • Add - Permite añadir una cadena a la lista de cadenas. La función devolverá el índice de la cadena. Aquí es donde el contador viene muy bien.
  • Delete - Borra una cadena de la lista de cadenas. Debemos de saber que no debemos introducir la cadena, tenemos que introducir el índice de la cadena. Como he dicho: es como una matriz dinámica de lujo.
  • IndexOf - Devolverá el índice de la cadena en la lista. Si no lo encuentra, devuelve -1.
  • Clear - Borrará la lista completa

Ejemplo

   ¿Qué tal un ejemplo más jugoso, ¿eh?

 program StrList2;
  {$mode ObjFPC}
  uses Classes, SysUtils;
  var ListaCadenas: TstringList;
   C: String;
   Contador: Integer;
  begin
   ListaCadenas := TstringList.Create;
   Writeln('Prueba de lista de cadenas');
   repeat
    Writeln('Introduce la cadena a añadir');
    Readln(C);
    if (C = 'Terminar') then Halt;
    if not (C = '') then
     begin
      Contador := ListaCadenas.Add(C);
      Writeln('¡La cadena: ' + C + ' fue añadida!');
      Writeln('El índice es: ' + IntToStr(Contador)); // El contador siempre será el índice de la última adición.
     end
    else
     begin
      Writeln('No hay texto para añadir...');
     end;
   until (S = 'Terminar');
  end.

Usando archivos

   Cuando se utiliza TStringList tenemos dos procedimientos de manipulación de archivos: SaveToFile y LoadFromFile.

  • SaveToFile guardará todas las cadenas en la lista en un archivo.
  • LoadFromFile abrirá el archivo y agregará los datos del archivo a la cadena de la lista de cadenas.
 program StrListFile;
 {$mode objfpc}
 uses
 Classes, SysUtils;
 var
  ListaCadenas: TStringList;
 begin
  ListaCadenas := TStringList.Create;
  ListaCadenas.LoadFromFile('Algo_de_Texto_en_Archivo.txt');
  ListaCadenas.Add('Hola');
  ListaCadenas.SaveToFile('Algo_de_Texto_en_Archivo.txt');
 end.

   ¡Acabamos de abrir un archivo, hemos editado el texto y lo hemos guardado de nuevo¡

Comparación dinámica de matrices de cadenas

   TStringList es simplemente una versión avanzada, de objeto, de una matriz de cadena dinámica. Algunos métodos son análogos:

Operación                      Matriz de cadenas TStringList
Declaración de Variable ListaCadenas: array of string; ListaCadenas: TStringList;
Inicialización constructor implícito ListaCadenas := TStringList.Create
Dimensionar SetLength(ListaCadenas, X); ListaCadenas.Size := X;
Obtener dimensión X := Length(ListaCadenas); X := ListaCadenas.Size;
Añadir elemento SetLength(ListaCadenas, Length(ListaCadenas) + 1); ListaCadenas[Length(ListaCadenas) - 1] := X; ListaCadenas.Add(X);
Borrar item for I := Index to Length(ListaCadenas) - 2 do ListaCadenas[I] := ListaCadenas[I + 1]; SetLength(ListaCadenas, Length(ListaCadenas) - 1); ListaCadenas.Delete(Index);             
Eliminar todos los items SetLength(ListaCadenas, 0); ListaCadenas.Clear;
Terminación destructor implícito ListaCadenas.Free;

   Pero TStringList ofrece mucha mas funcionalidad que una simple estructura como la matriz dinámica.

Sigue aprendiendo

   Para aprender los diferentes procedimientos, funciones y propiedades, puedes ver Documentación de TStringList

   Si sientes que podría haber dejado algo fuera, 'modificalo a voluntad!'

   ¡Espero que sea de ayuda!