Autor Beitrag
cl9wn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Sa 13.09.08 15:40 
Hi, ich habe festgestellt, dass man per ini.ReadSections(ListBox1.Items); (wobei ini natürlich mein TIniFile ist) alle Sections der INI in eine Listbox schreiben kann. Kann ich das auch mit einer ListView machen? Irgendwie funktioniert das nämlich nicht weil das eine TListItem und das andere TStrings ist ...

Also ini.ReadSection(ListView1.Items); geht nicht ...
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: Sa 13.09.08 15:49 
Nein, dirkt geht das nicht. Was erwartest du denn als Ergebnis?

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 13.09.08 16:06 
Du könntest den Inhalt der Sektion in eine StringListe laden ...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var StringList: TStringList; i: Integer;
begin
  StringList := TStringList.Create;
  try
    Ini.ReadSection(StringList);

... und dann die StringList abklappern und Schritt für Schritt in das ListView laden.

ausblenden Delphi-Quelltext
 
6:
7:
8:
9:
10:
11:
12:
13:
14:
{ ... }
    for i := 0 to StringList.Count-1 do
      with ListView1.Items.Add do
      begin
        Caption := StringList[i];
      end;
  finally
    StringList.Free;
  end;
end;

Da du ein ListView verwendest, hast du sicherlich noch andere Eigenschaften (Symbol, Spalten etc.). Die kannst du auch im with-Block setzen.
cl9wn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Sa 13.09.08 16:45 
Vielen dank, ich denke das klappt, werde es mal ausprobieren.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

So, ausprobiert und Funktioniert. Aber schon das nächste Problem:

Meine ListView ist so aufgebaut: 2 Spalten, Links "Servername", rechts "ServerAdresse"

Hab jetzt folgenden Quellcode:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TfrmLauncher.FormCreate(Sender: TObject);
var
  i : Integer; 
  Sections : TStringList;
begin
Sections := TStringList.Create();
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'realmlist.ini');
AssignFile(realmlist, 'D:\Programme\World of Warcraft\realmlist.wtf');
if FileExists('D:\Programme\World of Warcraft\realmlist.wtf'then
  Reset(realmlist)
else
  ReWrite(realmlist);

try
  ini.ReadSections(Sections);
  for i := 0 to Sections.Count-1 do
    with ListView.Items.Add do
    begin
      Caption := Sections[i];
    end;
finally
  Sections.Free;
end;
end;


Wenn ich mein Programm starte lädt er alle verfügbaren Sections in die linke Spalte. Richtig so.

Frage: Wie bekomme ich jetzt die Werte (Also z.B. vom Abschnitt [SERVER1] IP=WERT ... Also wie bekomme ich den Wert in meine rechte Spalte? Das gabs beim ausprobieren wieder probleme mit TStrings und String ... Habs mit ReadSectionValues versucht...

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Habs gelöst. Für alle, die eine Antwort suchen ...

ausblenden Delphi-Quelltext
1:
SubItems.Add(ini.ReadString(Sections[i], 'IP'''));