Stringlist/de

From Free Pascal wiki

Deutsch (de)
Zurück zu den Dateitypen.


Stringlist

Bei Stringlist wird eine Datei vollständig in den Arbeitsspeicher gelesen. Daher eignet sich Stringlist für Dateien kleinerer und mittlerer Grösse. Stringlist ist eine Möglichkeit Dateien einfach und schnell zu verarbeiten. Stringlist bietet sich für die Verarbeitung von Dateien an, die kleiner als ein MB sind. Für die Verarbeitung der Datei wird die gesamte Datei in den Arbeitsspeicher geladen. Jede Zeile des Datensatzes wird dabei in ein eigenes Arrayelement eingelesen.

Anlegen einer Datei

procedure subStringlistDateiAnlegen();
var
  // TStringlist ist Bestandteil der Unit Classes
  strList: TStringList;
begin
  // Erstellt die Stringliste
  strList := TStringList.Create;

  // Fügt einen Datensatz inclusiv Zeilenumbruch an die Stringliste an
  strList.Add('xyz');
  // Fügt einen Datensatz inclusiv Zeilenumbruch an die Stringliste an
  strList.Add('abcd');

  // Schreibt die Datei auf die Festplatte
  strList.SaveToFile('D:\beispiel.txt');
  // Gibt den Speicher der Stringliste frei
  strList.Free;
end;


Einen Datensatz an eine vorhandene Datei anfügen

procedure subStringlistAnDateiAnfuegen();
var
  // TStringlist ist Bestandteil der Unit Classes
  strList: TStringList;
begin
  // Erstellt die Stringliste
  strList := TStringList.Create;

  // Liest eine Datei vollständig ein
  strList.LoadFromFile('D:\beispiel.txt');

  // Fügt einen Datensatz inclusiv Zeilenumbruch an die Stringliste an
  strList.Add('Text');

  // Schreibt die Datei auf die Festplatte zurück
  strList.SaveToFile('D:\beispiel.txt');
  // Gibt den Speicher der Stringliste frei
  strList.Free;
end;


Einen Datensatz suchen

Methode 1

procedure subStringlistInDateiSuchen();
var
  // TStringlist ist Bestandteil der Unit Classes
  strList: TStringList;
  intI: Integer;
begin
  // Erstellt die Stringliste
  strList := TStringList.Create;

  // Liest eine Datei ein
  strList.LoadFromFile('D:\beispiel.txt');

  // Verwendung einer Zählschleife um den entsprechenden Datensatz zu finden
  for intI := 0 to strList.Count -1 do
  begin
	// Suchen und verändern des Datensatzes
    if strList[intI]='abcd' then strList[intI]:='dcba';
  end;

  // Schreibt die Datei auf die Festplatte zurück
  strList.SaveToFile('D:\beispiel.txt');
  // Gibt den Speicher der Stringliste frei
  strList.Free;
end;


Methode 2

procedure subStringlistInDateiSuchen2();
var
  // TStringlist ist Bestandteil der Unit Classes
  strList: TStringList;
  intI: Integer;
begin
  // Erstellt die Stringliste
  strList := TStringList.Create;

  // Liest eine Datei ein
  strList.LoadFromFile('D:\beispiel.txt');

  // Sucht einen Text, wird der Text nicht gefunden gibt die Suche -1 aus
  intI := strList.IndexOf('Text');
  // Ändert den Text unter zuhilfename des Index
  if intI <> -1 then
    strList[intI]:='txeT';

  // Schreibt die Datei auf die Festplatte zurück
  strList.SaveToFile('D:\beispiel.txt');
  // Gibt den Speicher der Stringliste frei
  strList.Free;
end;


Eine Datei alphabetisch sortieren

procedure subStringlistInDateiSortieren();
var
  // TStringlist ist Bestandteil der Unit Classes
  strList: TStringList;
  intI: Integer;
begin
  // Erstellt die Stringliste
  strList := TStringList.Create;

  // Liest eine Datei ein
  strList.LoadFromFile('D:\beispiel.txt');

  // Sortiert die Stringliste Alphabetisch
  strList.Sort;

  // Schreibt die Datei auf die Festplatte zurück
  strList.SaveToFile('D:\beispiel.txt');
  // Gibt den Speicher der Stringliste frei
  strList.Free;
end;



--Olaf 16:41, 23 October 2012 (UTC)