AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Listview Items in eine Ini-Datei schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Listview Items in eine Ini-Datei schreiben

Ein Thema von Die Muhkuh · begonnen am 6. Apr 2004 · letzter Beitrag vom 7. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 17:41
Hoi!


Ich hab eine Listview die sieht so aus:
Code:
Datei    Größe    Kommentar
Unter jedem dieser Columens gibt es Einträge. Diese möchte ich in eine Ini-Datei schreiben. Ich stelle mir das ungefähr so vor:

Code:
[Dateien]
Datei1=...
Datei2=...
[Groesse]
Groesse1=...
Groesse2=...
[Kommentar]
Kom1=...
Kom2=...
Also Groesse1 und Kommentar1 gehören zu Datei1, usw.


Wie kann man das verwirklcihen?
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 17:55
Warum so kompliziert?

Code:
[ListView]
Datei1.dat=24;Hallo Welt K1
Datei2.dat=34;Hallo Welt K222
Datei3.dat=0;Hallo Welt 231
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 17:58
Wie schon gesagt ich stellte mir das so ungefähr aus.

Wenn du mir jetzt noch verräts wies geht dann machst du jemanden sehr glücklitsch.
  Mit Zitat antworten Zitat
sCrAPt
(Gast)

n/a Beiträge
 
#4

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 18:03
Zitat von Spider:
Wenn du mir jetzt noch verräts wies geht dann machst du jemanden sehr glücklitsch.
Mit zwei for schleifen und tinifile

, sCrAPt
  Mit Zitat antworten Zitat
alanblack

Registriert seit: 31. Okt 2003
Ort: Reichertshausen (40km von münchen)
171 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 18:04
Das allgemeine Speichern müsste so funktionieren.

Code:
Var
  SaveList: TStrings;
  i, j: Integer;
  TempStr: String;
Const
  Delimitter = #14;

Begin
  If Not SaveDialog1.Execute Then Exit;
  SaveList := TStringList.create;
  Try
    // ListView
    With ListView1 Do
    Begin
      // durch alle Items laufen
      For i := 0 To pred(Items.Count) Do
      Begin
        TempStr := '';
        With Items[i] Do
          // und durch alle SubItems
          For j := 0 To pred(SubItems.Count) Do
            TempStr := TempStr + Delimitter + SubItems[j];

        SaveList.Add(Items[i].Caption + TempStr);
      End;

    End;
    // Speichern
    SaveList.SaveToFile(SaveDialog1.FileName);
  Finally
    // Freigeben ...
    FreeAndNil(SaveList);
  End;
End;
hoffe das ich helfen konnte

mfg alanblack
Irren ist menschlich, programmieren göttlich
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#6

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 18:07
So könnte man schreiben
Delphi-Quellcode:
var sTmp : String;
    i, j : Integer;

for i := 0 to lst.Count - 1 do
    begin
      sTmp := '';
      for j := 0 to lst.Items[i].SubItems.Count - 1 do
          sTmp := sTmp + ';' + lst.Items[i].SubItems[j];
      ini.WriteString('ListView', lst.Items[i].Caption, sTmp);
    end;
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 18:11
So könnte man lesen
Delphi-Quellcode:
var lst : TStringList;


ini.GetValueList('ListView', lst); // hole alle Values einer Section soll das heißen

for i := 0 to lst.Count - 1 do
    with lst.Items.Add do
      begin
        Caption := lst[i];
        sTmp := ini.ReadString('ListView', lst[i], '');
        while Length(sTmp) > 0 do
          begin
            iPos := Pos(';', sTmp);
            if iPos = 0 then
               iPos = Length(sTmp) + 1;
            SubItems.Add(Copy(sTmp, 1, iPos - 1);
            sTmp := Copy(sTmp, iPos + 1, MaxInt);
          end;
      end;
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#8

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 18:16
Ach, einen kleinen Haken hat das ganze noch!

Wenn in deinem Kommentar ein ; Vorkommt läuft der Leseprozess gegen den Boum. Dies verhintere ich durch Quotierung ("") der einzelnen Daten!

Einfacher währe es eve. das ; durch ein Zeichen zu ersetzen, was nicht geschrieben werden kann. Macht aber die Möglichkeit zu nicht,e den Inhalt der INI per Hand zu ändern.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
alanblack

Registriert seit: 31. Okt 2003
Ort: Reichertshausen (40km von münchen)
171 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 18:17
oder so:

Code:
Var
  LoadList: TStrings;
  i, ActPos, PrevPos: Integer;
Const
  Delimitter = #14;

Begin
  If Not OpenDialog1.Execute Then Exit;
  LoadList := TStringList.create;

  Try
    //Laden...
    LoadList.LoadFromFile(OpenDialog1.FileName);
    // Lösche den ListView
    ListView1.Items.Clear;

    //Laufe durch Zeilen der StringList
    For i := 0 To pred(LoadList.Count) Do
    Begin
      PrevPos := 1;
      ActPos := 1;
      //Erste Position des Delimitters
      ActPos := PosEx(Delimitter, LoadList[i], succ(ActPos));
      // Erstelle Item
      With ListView1.Items.Add Do
      Begin
        //setze Caption des neuen Items
        Caption := Copy(LoadList[i], PrevPos, (ActPos - PrevPos));
        PrevPos := succ(ActPos);
        //erzeuge für jeden gefundenen Delimitter ein SubItem
        Repeat
          ActPos := PosEx(Delimitter, LoadList[i], succ(ActPos));
          If ActPos <> 0 Then
            SubItems.Add(Copy(LoadList[i], PrevPos, (ActPos - PrevPos)))
          Else
            SubItems.Add(Copy(LoadList[i], PrevPos, Length(LoadList[i])));
          PrevPos := succ(ActPos);
        //Wenn ActPos = 0 (kein Delimitter gefunden) -> fertig
        Until ActPos = 0;
      End;
    End;
Mfg alanblack
Irren ist menschlich, programmieren göttlich
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#10

Re: Listview Items in eine Ini-Datei schreiben

  Alt 6. Apr 2004, 18:38
@Alan
...
Woher kenne ich den Code bloß...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz