Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TreeView Items aus TXT-File
Handycommander - Sa 16.07.05 22:21
Titel: TreeView Items aus TXT-File
Hi,
ich habe eine textdatei, in der verschiedene werte untereinander eingetragen sind. in etwa so:
Delphi-Quelltext
1: 2: 3:
| erste zeile zweite zeile dritte zeile |
nun möchte ich diese werte alle in einer treeview haben. aber alle auch untereinander!
wie kann ich diese werte so auslesen, dass ich sie dann so in eine treeview speichern kann?
wie kann ich diese werte in eine treeview speichern?
danke
maxk - Sa 16.07.05 22:30
Meinst du so?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var i:integer; begin with TStringList.Create do try LoadFromFile('Z:\Test.txt'); for i:=0 to Count-1 do TreeView1.Items.AddChild(nil,Strings[i]); finally Free; end; |
Das liest alle Zeilen aus einer Datei aus und schreibt sie untereinander in eine Treeview.
Gruß,
maxk
Tendl - Mi 27.07.05 13:41
Ich glaube es geht nicht nur darum alle Zeilen untereinander in eine Treeview zu schreiben, sondern auch darum unterschiedliche Verschachtelungstiefen wieder
herzustellen. Ich fertig Lösung dazu habe ich auch noch nicht gefunden. Mein Ansatz
dazu wäre z.B das Voranstellen von Zeichen um die Information zu behalten:
Ein Beispiel
Erste Zeile
.Zweite Zeile
.Dritte Zeile
..Vierte Zeile
...Fünfte Zeile
.Sechste Zeile
usw.
Die Leseroutine wertet dann die Anzahl der Punkte aus und baut danach den Tree auf.
Das Ganze läßt sich beliebig optimieren um Zeilen die mit einem Punkt beginnen
ebenfalls verarbeiten zu können, z.B muß jede Zeile mit einem bestimmten Zeichen
beginnen. Bis zu diesem Zeichen ist alles Information über die Verschachtelungstiefe
Realisiert habe ich das Ganze bisher nicht.
Hoffentlich hilft der Denkanstoß weiter.
Thomas
maxk - Mi 27.07.05 15:56
Das wird dann schon etwas schwieriger, da man die vorherigen Nodes speichern müsste. Ist aber auch nicht sooo kompiliziert. Problem hierbei wäre wirklich mehr das Speicherformat, da man hier wirklich überlegen muss, was man eigentlich machen will. Ein Sonderzeichen wie #0 sollte aber für einen Text in einer Treeview sehr gut funktionieren. Fände ich auch besser als Punkte, da #0 eigentlich in Controls nicht vorkommen dürfte.
Gruß,
maxk
Lannes - Mi 27.07.05 17:50
Hallo,
wenn es nur darum geht die Zeilen aus der Textdatei untereinander darzustellen,
kann man das direkt mit:
Delphi-Quelltext
1:
| TreeView1.LoadFromFile('C:\Temp\xxxx.txt'); |
aus der TXT-Datei laden.
Speichern entsprechend mit:
Delphi-Quelltext
1:
| TreeView1.SaveToFile('C:\Temp\xxxx.txt'); |
Tendl hat folgendes geschrieben: |
Ich glaube es geht nicht nur darum alle Zeilen untereinander in eine Treeview zu schreiben, sondern auch darum unterschiedliche Verschachtelungstiefen wieder
herzustellen. Ich fertig Lösung dazu habe ich auch noch nicht gefunden. Mein Ansatz
dazu wäre z.B das Voranstellen von Zeichen um die Information zu behalten:
Ein Beispiel
Erste Zeile
.Zweite Zeile
.Dritte Zeile
..Vierte Zeile
...Fünfte Zeile
.Sechste Zeile
usw.
Die Leseroutine wertet dann die Anzahl der Punkte aus und baut danach den Tree auf.
Das Ganze läßt sich beliebig optimieren um Zeilen die mit einem Punkt beginnen
ebenfalls verarbeiten zu können, z.B muß jede Zeile mit einem bestimmten Zeichen
beginnen. Bis zu diesem Zeichen ist alles Information über die Verschachtelungstiefe
Realisiert habe ich das Ganze bisher nicht.
Hoffentlich hilft der Denkanstoß weiter.
Thomas |
Wenn man für die Punkte ein #09(Tab) einsetzt, dieses dann in eine Datei speichert und anschließend mit TreeView1.LoadFromFile in das TreeView einbaut, hat man die entsprechenden Verschachtelungstiefen.
maxk - Mi 27.07.05 21:22
Es gibt sogar LoadFromStream/SaveToStream. Und wieder etwas, was sich einfacher lösen lässt, wenn man es einfach probiert :autsch:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!