Stringlist/de: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: Stringlist/de
| Old | New | Line | |
|---|---|---|---|
| 1 | + | Zurück zu den [[File types/de|Dateitypen]].\ | |
| 2 | + | ||
| 3 | + | # Stringlist | |
| 4 | + | ||
| 5 | + | 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.\ | |
| 6 | + | ||
| 7 | + | # Anlegen einer Datei | |
| 8 | + | ||
| 9 | + | ``` pascal | |
| 10 | + | procedure subStringlistDateiAnlegen(); | |
| 11 | + | var | |
| 12 | + | // TStringlist ist Bestandteil der Unit Classes | |
| 13 | + | strList: TStringList; | |
| 14 | + | begin | |
| 15 | + | // Erstellt die Stringliste | |
| 16 | + | strList := TStringList.Create; | |
| 17 | + | ||
| 18 | + | // Fügt einen Datensatz inclusiv Zeilenumbruch an die Stringliste an | |
| 19 | + | strList.Add('xyz'); | |
| 20 | + | ||
| 21 | + | // Fügt einen Datensatz inclusiv Zeilenumbruch an die Stringliste an | |
| 22 | + | strList.Add('abcd'); | |
| 23 | + | ||
| 24 | + | // Schreibt die Datei auf die Festplatte | |
| 25 | + | strList.SaveToFile('D:\beispiel.txt'); | |
| 26 | + | ||
| 27 | + | // Gibt den Speicher der Stringliste frei | |
| 28 | + | strList.Free; | |
| 29 | + | end; | |
| 30 | + | ``` | |
| 31 | + | ||
| 32 | + | # Einen Datensatz an eine vorhandene Datei anfügen | |
| 33 | + | ||
| 34 | + | ``` pascal | |
| 35 | + | procedure subStringlistAnDateiAnfuegen(); | |
| 36 | + | var | |
| 37 | + | // TStringlist ist Bestandteil der Unit Classes | |
| 38 | + | strList: TStringList; | |
| 39 | + | begin | |
| 40 | + | // Erstellt die Stringliste | |
| 41 | + | strList := TStringList.Create; | |
| 42 | + | ||
| 43 | + | // Liest eine Datei vollständig ein | |
| 44 | + | strList.LoadFromFile('D:\beispiel.txt'); | |
| 45 | + | ||
| 46 | + | // Fügt einen Datensatz inclusiv Zeilenumbruch an die Stringliste an | |
| 47 | + | strList.Add('Text'); | |
| 48 | + | ||
| 49 | + | // Schreibt die Datei auf die Festplatte zurück | |
| 50 | + | strList.SaveToFile('D:\beispiel.txt'); | |
| 51 | + | ||
| 52 | + | // Gibt den Speicher der Stringliste frei | |
| 53 | + | strList.Free; | |
| 54 | + | end; | |
| 55 | + | ``` | |
| 56 | + | ||
| 57 | + | # Einen Datensatz suchen | |
| 58 | + | ||
| 59 | + | ## Methode 1 | |
| 60 | + | ||
| 61 | + | ``` pascal | |
| 62 | + | procedure subStringlistInDateiSuchen(); | |
| 63 | + | var | |
| 64 | + | // TStringlist ist Bestandteil der Unit Classes | |
| 65 | + | strList: TStringList; | |
| 66 | + | intI: Integer; | |
| 67 | + | begin | |
| 68 | + | // Erstellt die Stringliste | |
| 69 | + | strList := TStringList.Create; | |
| 70 | + | ||
| 71 | + | // Liest eine Datei ein | |
| 72 | + | strList.LoadFromFile('D:\beispiel.txt'); | |
| 73 | + | ||
| 74 | + | // Verwendung einer Zählschleife um den entsprechenden Datensatz zu finden | |
| 75 | + | for intI := 0 to strList.Count -1 do | |
| 76 | + | begin | |
| 77 | + | // Suchen und verändern des Datensatzes | |
| 78 | + | if strList[intI]='abcd' then | |
| 79 | + | strList[intI]:='dcba'; | |
| 80 | + | end; | |
| 81 | + | ||
| 82 | + | // Schreibt die Datei auf die Festplatte zurück | |
| 83 | + | strList.SaveToFile('D:\beispiel.txt'); | |
| 84 | + | ||
| 85 | + | // Gibt den Speicher der Stringliste frei | |
| 86 | + | strList.Free; | |
| 87 | + | end; | |
| 88 | + | ``` | |
| 89 | + | ||
| 90 | + | ## Methode 2 | |
| 91 | + | ||
| 92 | + | ``` pascal | |
| 93 | + | procedure subStringlistInDateiSuchen2(); | |
| 94 | + | var | |
| 95 | + | // TStringlist ist Bestandteil der Unit Classes | |
| 96 | + | strList: TStringList; | |
| 97 | + | intI: Integer; | |
| 98 | + | begin | |
| 99 | + | // Erstellt die Stringliste | |
| 100 | + | strList := TStringList.Create; | |
| 101 | + | ||
| 102 | + | // Liest eine Datei ein | |
| 103 | + | strList.LoadFromFile('D:\beispiel.txt'); | |
| 104 | + | ||
| 105 | + | // Sucht einen Text, wird der Text nicht gefunden gibt die Suche -1 aus | |
| 106 | + | intI := strList.IndexOf('Text'); | |
| 107 | + | ||
| 108 | + | // Ändert den Text unter zuhilfename des Index | |
| 109 | + | if intI <> -1 then | |
| 110 | + | strList[intI]:='txeT'; | |
| 111 | + | ||
| 112 | + | // Schreibt die Datei auf die Festplatte zurück | |
| 113 | + | strList.SaveToFile('D:\beispiel.txt'); | |
| 114 | + | ||
| 115 | + | // Gibt den Speicher der Stringliste frei | |
| 116 | + | strList.Free; | |
| 117 | + | end; | |
| 118 | + | ``` | |
| 119 | + | ||
| 120 | + | # Eine Datei alphabetisch sortieren | |
| 121 | + | ||
| 122 | + | ``` pascal | |
| 123 | + | procedure subStringlistInDateiSortieren(); | |
| 124 | + | var | |
| 125 | + | // TStringlist ist Bestandteil der Unit Classes | |
| 126 | + | strList: TStringList; | |
| 127 | + | intI: Integer; | |
| 128 | + | begin | |
| 129 | + | // Erstellt die Stringliste | |
| 130 | + | strList := TStringList.Create; | |
| 131 | + | ||
| 132 | + | // Liest eine Datei ein | |
| 133 | + | strList.LoadFromFile('D:\beispiel.txt'); | |
| 134 | + | ||
| 135 | + | // Sortiert die Stringliste Alphabetisch | |
| 136 | + | strList.Sort; | |
| 137 | + | ||
| 138 | + | // Schreibt die Datei auf die Festplatte zurück | |
| 139 | + | strList.SaveToFile('D:\beispiel.txt'); | |
| 140 | + | ||
| 141 | + | // Gibt den Speicher der Stringliste frei | |
| 142 | + | strList.Free; | |
| 143 | + | end; | |
| 144 | + | ``` | |
| 145 | + | ||
| 146 | + | --Olaf 16:41, 23 October 2012 (UTC) | |
| 147 | + | ||
| 148 | + | --- | |
| 149 | + | *From the Free Pascal wiki, page "Stringlist/de", as it stood on 2020-01-15 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* | |
| 150 | + | Category: Code Snippets/de | |
| 151 | + | Category: Deutsch | |
| 152 | + | Category: Pascal/de | |
| 153 | + | Category: Tutorials/de |
