AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview und Ini

Ein Thema von DarkItachi · begonnen am 15. Jan 2010 · letzter Beitrag vom 16. Jan 2010
Antwort Antwort
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#1

Listview und Ini

  Alt 15. Jan 2010, 19:59
Hallöchen!

Ich habe ein Listview1 mit Report Style!

Jetzt mache ich einige einträge in der Laufzeit..
Wenn ich auf Speichern drücke dann speichert er mir die Einträge in einer Ini Datei!

Delphi-Quellcode:
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'Configs\Settings\mainsettings.ini');
  for i := 0 to Listview1.Items.Count - 1 do

    TheFiles:= TheFiles + ' ' + Listview1.Items[i].Caption;

ini.WriteString('Listview','Data', TheFiles);

 ini.Free;
In der Ini sieht dann das halt alles so aus:
TheFiles=Eintrag1 Eintrag2 Eintrag3[usw..]

Nun will ich aber über ini.readstring diese Daten wieder korrekt einlesen!
Wie mache ich das, dass für jedes Leerzeichen ein neuer Eintrag entsteht?
(Mir ist es allerdings egal, wie es in der Ini steht oder ob man das anders macht, ich will nur dass das Listview wieder so wie vorher ist!)

Hat jemand eine Idee?
Developer since age 14
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#2

Re: Listview und Ini

  Alt 15. Jan 2010, 20:26
1. Ini-Datei ist meines Erachtens hier ungeeignet.
2. Speichern im Programmordner ist in der Regel "böse" (Seit Windows 2000)

Eine mögliche Lösung findest du bei Swissdelphicenter
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#3

Re: Listview und Ini

  Alt 15. Jan 2010, 21:30
Hallo,
Du musst auf jeden Fall Deinen "Bezeichner", hier Data ändern, da sonst
bei jedem Schleifendurchlauf Dein Wert "The Files" wieder auf den Bezeichner
"Data" geschrieben wird. So kannst Du die Einträge nicht auseinender halten.

Delphi-Quellcode:
var
 The Files : String;
 Data : String;

....

ini := TIniFile.Create(Extract File .......

for i := 0 to ListView1.Items.Count -1 do
 begin
  The Files := ListView1.Items[i].Caption;
  Data := 'Data'+IntToStr(i);
  ini.WriteString('ListView', Data, The Files);
 end;
Ini.Free;
so erhältst Du eine Ini-datei, die ungefähr so aussieht :
[ListView]
Data0=TheFiles
Data1=....
Data2=....

jetzt kannst Du wiederum per Schleife auf die Einträge zugreifen.
Möglichweise ist es sinnvoll, die Anzahl der Einträge auch in der
Ini-datei zu speichern.
z.B.
[delphi]
...
ini.WriteInteger('ListView', 'Items', ListView1.Items.Count -1);
...
[delphi]
Markus H.
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#4

Re: Listview und Ini

  Alt 15. Jan 2010, 22:07
@markus5766h

Wie bereits in meinem vorherigen Posting gesagt, eignet sich eine Ini-Datei nicht bzw nur sehr beschränkt um den Inhalt eines Listviews zu speichern. Dein Vorschlag mag zwar hier vielleicht funktionieren, was machst Du aber wenn Subitems vorhanden sind?

@DarkItachi

Ein etwas anderer Vorschlag:

Savelistview Pseudocode(ungetestet)
Delphi-Quellcode:
procedure SaveListViewToFile(AListView: TListView; sFileName: string);
var st : TFileStream;
begin
  st := TFileStream.Create( sFileName, fmCreate );
  try
    st.WriteComponent(AListView);
  finally
    st.free;
  end;
end;
Openlistview Pseudocode(ungetestet)

Delphi-Quellcode:
procedure OpenListViewToFile(AListView: TListView; sFileName: string);
var st : TFileStream;
begin
  st := TFileStream.Create( sFileName, fmOpenRead );
  try
      st.ReadComponent(AListView);
  finally
      st.free;
  end;

end;
Achtung: gilt nur als Denkanstoss, benötigt noch einige Arbeiten!
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#5

Re: Listview und Ini

  Alt 16. Jan 2010, 14:38
@fatalerror
... war ja auch nur eine Möglichkeit von vielen.

Es ging mir primär nur darum, aufzuzeigen, wie man die Einträge
lesen - schreiben kann, da "DarkItachi" seine Daten immer
auf den Bezeichner "DATA" geschrieben hat.
Selbstverständlich gibt es andere / bessere Möglichkieten :
Stream speichern, XML-Datei ....

Wenn ich Ini-Dateien benutze, lasse ich von Anwender bestimmen,
wo die Datei gespeichert wird (App-Data-Verzeichnis/se, Programm-Verzeichnis ...)
Markus H.
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:32 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