Autor Beitrag
Julian W.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
D7 Enterprise
BeitragVerfasst: Do 21.12.06 22:36 
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:
ausblenden 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:
ausblenden 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
      //dateiname und dateigröße schreiben
        ini.WriteString('Names', Listview1.items[i].Caption,  Listview1.items.Item[i].SubItems[1 -1]);
      //Parameter und ausgabedatei schreiben
        ini.Writestring('Params',Listview1.items[i].SubItems[2 -1],Listview1.items.Item[i].SubItems[3 -1]);
      //URL und Komment schreiben
        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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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

_________________
There are 10 types of people - those who understand binary and those who don´t.
Julian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
D7 Enterprise
BeitragVerfasst: Fr 22.12.06 17:24 
Ja, sry. War gestern von der ganzen Sache ziemlich angepisst. Hier ma nen Screen:
user defined image

Freue mich auf eure Antworten. Und - Frohe Weihnachten schonmal
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: 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.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Julian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
D7 Enterprise
BeitragVerfasst: So 24.12.06 22:57 
OK, vielen Dank. Habs jetz hinbekommen. Gruß Julian & Ein frohes Fest =)