Re: INI mit Schleife auslesen
Der Aufbau der Ini-Datei ist schon mal falsch:
Zitat:
|
Re: INI mit Schleife auslesen
Zitat:
|
Re: INI mit Schleife auslesen
Hier mal ein gutes Ini Tutorial
|
Re: INI mit Schleife auslesen
Zitat:
Zitat:
Delphi-Quellcode:
Dann heißt es "E2010 Inkompatible Typen: 'string' und 'procedure, untyped pointer or untyped parameter'". Eben wollte er doch nocht TStrings? :wiejetzt:
ListBoxFiles.Items.Add(VideoIni.ReadSection('Name',ListBoxFiles.Items));
|
Re: INI mit Schleife auslesen
ReadSection ist auch eine Prozedur. Keine Funktion.
Versuch es mal damit:
Delphi-Quellcode:
[add]
procedure Test;
var i: Integer; Sektionen: TStringList; begin Sektionen := TStringList.Create; ListBoxFiles.Items.Clear; VideoIni.ReadSections(Sektionen); // Alle Sektionsnamen sind nun in Sektionen gespeichert. for i := 0 to Sektionen.Count - 1 do begin ListBoxFiles.Items.Add(VideoIni.ReadString(Sektionen[i], 'Name', Format('Unbekannter Name %d', [i]))); end; end; Ich beziehe mich auf das INI-File Format aus Post #7 |
Re: INI mit Schleife auslesen
Dann lies mal das Tutorial nochmal dann fällt dir auf was du falsch gemacht hast. :wink:
|
Re: INI mit Schleife auslesen
Zitat:
Zitat:
|
Re: INI mit Schleife auslesen
Hallo,
Delphi-Quellcode:
Dir fehlt vermutlich auch das letzte Video :wink:
for i := 0 to Sektionen.Count - 1 do
begin ListBoxFiles.Items.Add(VideoIni.ReadString(Sektionen[i], 'Name', Format('Unbekannter Name %d', [i]))); end; Deine Videos sind von 1 bis 3 nummeriert, die For-Schleife geht von 0 bis 2, Du musst also
Delphi-Quellcode:
durch
ListBoxFiles.Items.Add(VideoIni.ReadString(Sektionen[i], 'Name', Format('Unbekannter Name %d', [i])));
Delphi-Quellcode:
ersetzen.
ListBoxFiles.Items.Add(VideoIni.ReadString(Sektionen[i + 1], 'Name', Format('Unbekannter Name %d', [i + 1])));
Oder nummeriere die Video in der Ini-Datei auch mit 0 beginnend. |
Re: INI mit Schleife auslesen
OK, ich bin wieder auf das vorherige Schema für die INI zurückgegangen.
Code:
Er zeigt mir aber dennoch einen Eintrag zu viel an.
[Videoindex]
videos=3 [Video0] Path=.\datei0.wmv Name=Name 0 Desc=Beschreibung 0 [Video1] Path=.\datei1.wmv Name=Name 1 Desc=Beschreibung 1 [Video2] Path=.\datei2.wmv Name=Name 2 Desc=Beschreibung 2 Ich hab auch mit dem Konstrukt zum Auslesen der Dateieinträge versucht, die Videobeschreibungen zu laden, aber es kommt immer nur die Beschreibung der allerletzten Section dabei raus. Der Code:
Delphi-Quellcode:
Scheint so, als müsste ich etwas umformulieren?
procedure TForm1.ListBoxFilesClick(Sender: TObject);
var I: Integer; VideoFile : TStringList; VideoDesc : TStringList; begin VideoIni := TIniFile.Create(PChar(ExtractFilePath(ParamStr(0)) + 'files.ini')); VideoFile := TStringList.Create; VideoDesc := TStringList.Create; VideoIni.ReadSections(VideoFile); VideoIni.ReadSections(VideoDesc); for i := 0 to VideoFile.Count -1 do begin MediaPlayerControl.FileName := VideoIni.ReadString(VideoFile[i],'Path',''); end; for i := 0 to VideoDesc.Count - 1 do begin MemoDesc.Text := VideoIni.ReadString(VideoDesc[i],'Desc',''); end; |
Re: INI mit Schleife auslesen
Hallo,
na klar, Du überschreibst ja auch immer die Werte. Statt
Delphi-Quellcode:
mal damit versuchen
for i := 0 to VideoDesc.Count - 1 do
begin MemoDesc.Text := VideoIni.ReadString(VideoDesc[i],'Desc',''); end;
Delphi-Quellcode:
MemoDesc.Lines.Clear;
for i := 0 to VideoDesc.Count - 1 do begin MemoDesc.Lines.Add(VideoIni.ReadString(VideoDesc[i],'Desc','')); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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