Difference between revisions of "TStringList-TStrings Tutorial/es"
m (→TStringList) |
|||
Line 87: | Line 87: | ||
| Dimensionar || SetLength(ListaCadenas, X); || ListaCadenas.Size := X; | | Dimensionar || SetLength(ListaCadenas, X); || ListaCadenas.Size := X; | ||
|- | |- | ||
− | | Obtener dimensión || X := Length(ListaCadenas); || X := ListaCadenas. | + | | Obtener dimensión || X := Length(ListaCadenas); || X := ListaCadenas.Count; |
|- | |- | ||
| Añadir elemento || SetLength(ListaCadenas, Length(ListaCadenas) + 1); ListaCadenas[Length(ListaCadenas) - 1] := X; || ListaCadenas.Add(X); | | Añadir elemento || SetLength(ListaCadenas, Length(ListaCadenas) + 1); ListaCadenas[Length(ListaCadenas) - 1] := X; || ListaCadenas.Add(X); |
Revision as of 14:39, 13 January 2013
│
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.Count; |
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!