TStringList-TStrings Tutorial/es

From Free Pascal wiki
Revision as of 21:44, 26 February 2012 by Iskraelectrica (talk | contribs) (New page: {{TString_List-TString_Tutorial}} xx ==TStringList==    TStringList (o TStrings) se parece mucho a un gran matriz dinámica o ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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! <delphi> 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.</delphi>

   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? <delphi> 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.</delphi>

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.

<delphi> 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.</delphi>

   ¡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);
Elimiara 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!