Entwickler-Ecke
Dateizugriff - Textdatei erstellen
darksign - Do 28.05.09 17:23
Titel: Textdatei erstellen
Hallo!
Ich noch Delphi-Anfänger, und habe nun folgende Aufgabe:
Ich solle in eine Textdatei ein paar Zeilen reinschreiben (in einer Schleife), das Ganze soll ungefähr so aussehen (Pseudocode):
for i:=1 to 20 do
SchreibeinDatei ('Zeile'+inttostr(i));
Das Ergebnis soll ungefähr so aussehen:
Zeile1
Zeile2
Zeile3
Zeile4
...
Es soll halt einfach 20 Mal ein beliebiger Satz reingeschrieben werden, jedoch soll jeder Satz eingerückt werden (er soll also nicht am Anfang der Zeile stehen, sondern davor sollen zwei Tabzeichen sein!).
Wie macht man sowas, und welche Komponenten benötige ich dazu?
mfg
Narses - Do 28.05.09 17:27
Moin!
Einfacher Ansatz:
- TStringList anlegen
- Inhalt deiner Datei zeilenweise in die Stringliste einfügen
- StrList.SaveToFile('C:\mein.txt');
cu
Narses
ffgorcky - Do 28.05.09 17:34
Ich würde Dir als Einstieg raten, ein
TMemo (also in meinem Fall wäre das hier
MemoZuErweiterndeDatei) auf Deine Form zu ziehen und dort dann das so reinzuschreiben:
Delphi-Quelltext
1: 2:
| for i:=0 to 20 do MemoZuErweiterndeDatei.addLine('Zeile'+inttostr(i)); |
Wobei Du natürlich vorher das ganze laden kannst, und nachher wieder Abspeichern:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| if FileExists(ExtractFileDir(ParamStr(0))+ 'mein.txt') then MemoZuErweiterndeDatei.LoadFromFile('mein.txt'); for ... MemoZuErweiterndeDatei.SaveToFile('mein.txt'); |
Wobei ich jetzt ja kein
begin und
end; für meine if- und for-Anweisungen brauchte, weil sie ja nur einzeilig sind.
Wenn Du aber mehrere Zeilen in einem solchen Fall behandeln möchtest, dann musst Du sie mit
begin und
end; "umklammern"!
jaenicke - Do 28.05.09 17:47
Zu solch unsauberem Vorgehen sollte man erst gar nicht raten... :roll:
Narses' Lösung ist nicht schwieriger, dafür aber sauber.
darksign - Do 28.05.09 19:11
danke für eure Antworten, ich werds mit der StringList probieren!
Aber eine Frage hätte ich noch:
Wie bekomme ich vor jeder Zeile (bzw. vor jedem Eintrag in der StringList einen Tabstop rein, so dass jede Zeile mit einer Einrückung anfängt, und dann erst der TExt kommt!)
mfg
jaenicke - Do 28.05.09 19:13
Tab ist das Zeichen 9. Das kannst du einfach an einen String anfügen.
Delphi-Quelltext
1:
| MyStringList.Add(#9'Nach dem Tab'); |
darksign - Do 28.05.09 19:32
super, danke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!