Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Problem Tlistview in INI zu speichern...
Julian W. - Do 21.12.06 22:36
Titel: Problem Tlistview in INI zu speichern...
Ja, ich HABE die Suche benutzt, aber leider hat mir das alles nicht weitergeholfen. Ich verstehe ja selber nicht, wo mein Problem liegt. Also ich möchte den Inhalt meiner ListView in ne Ini speichern. Die Ini sieht so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| [Files] ; http://datei=description http://google.de/bla.exe=MeineTestDatei
[Params] ;parameter=ausgabedatei.tm /stabular C:\Windows\System32\upd.tm=upd.tm
[Names] ;dateiname=dateigröße upd32=88064 bla=1 bls=2 ble=454 |
Also mein Programm läd die Dateien in der Ini der Reihe nach herunter. Das ist aber nebensächlich. Also mein Ausgabecode sieht wie folgt aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| begin savedialog1.InitialDir := extractfilepath(paramstr(0)); if savedialog1.Execute = true then begin ini := tinifile.Create(savedialog1.FileName); for i := 0 to pred(Listview1.Items.Count) do begin ini.WriteString('Names', Listview1.items[i].Caption, Listview1.items.Item[i].SubItems[1 -1]); ini.Writestring('Params',Listview1.items[i].SubItems[2 -1],Listview1.items.Item[i].SubItems[3 -1]); ini.WriteString('Files',Listview1.items[i].SubItems[4 -1],Listview1.items.Item[i].SubItems[5 -1]); end; end; end; |
Wenn ich das so kompilliere, kommt nen Fehler, von wegen listenindex maximum überschritten (-2). Und in der Ini steht das:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| [Names] upd32=88064 bla=1 [Params] http://google.de/bla.exe=MeineTestDatei upd.tm=http://google.de/bla.exe /stabular C:\Windows\System32\upd.tm=upd.tm [Files] http://google.de/bla.exe=MeineTestDatei |
Würde mich über shcnelle Hilfe total freuen. Gruß Julian.
Narses - Do 21.12.06 23:11
Moin!
Ich weiß nicht so genau, was du da eigentlich mit dieser armen INI tust, aber so wird das sicher nix... :nixweiss:
Vielleicht beschreibst du mal den Aufbau des Listview-Inhalts, dann können wir evtl. einen alternativen Ansatz für den INI-Aufbau diskutieren bzw. Code-Vorschläge dazu machen. ;)
cu
Narses
Julian W. - Fr 22.12.06 17:24
Ja, sry. War gestern von der ganzen Sache ziemlich angepisst. Hier ma nen Screen:
Freue mich auf eure Antworten. Und - Frohe Weihnachten schonmal
Lannes - Fr 22.12.06 17:56
Hallo,
die SubItems müssen existieren, wenn man auf sie zugreifen will.
Daher wird vermutlich die Meldung bzgl. Listenüberschreitung kommen.
Entweder man legt zumindest ein leeres SubItem mit SubItems.Add('') an und prüft auf diesen Leerstring beim Schreiben in die ini-Datei,
oder man nutzt Items[x].SubItems.Count zur Ermittelung der Anzahl der vorhandenen SubItems.
Julian W. - So 24.12.06 22:57
OK, vielen Dank. Habs jetz hinbekommen. Gruß Julian & Ein frohes Fest =)
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!