Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Werte aus einer Ini Datei Lesen funktioniert nicht so ganz (https://www.delphipraxis.net/173531-werte-aus-einer-ini-datei-lesen-funktioniert-nicht-so-ganz.html)

Dalai 1. Mär 2013 12:54

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Zitat:

Zitat von Robin2k (Beitrag 1205599)
Hier:

Und wo ist die Änderung, die Stringlisten vor der Schleife zu erzeugen? Du hast da lustige Speicherlecks.

PS: Die hartkodierten Pfade lässt du am besten auch gleich weg.

MfG Dalai

Back2Code 1. Mär 2013 12:56

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Zitat:

Zitat von Dalai (Beitrag 1205603)
Zitat:

Zitat von Robin2k (Beitrag 1205599)
Hier:

Und wo ist die Änderung, die Stringlisten vor der Schleife zu erzeugen? Du hast da lustige Speicherlecks.

PS: Die hartkodierten Pfade lässt du am besten auch gleich weg.

MfG Dalai

Das Problem ist dann, dass es mit dem Erstellen des Inifiles nicht mehr ging, da ja inilist.Strings[i] genutzt wird von der Schleife...Ich weiß leider nicht wie ich anderst besser machen könnte.

Uwe Raabe 1. Mär 2013 12:57

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Delphi-Quellcode:
ini.ReadSectionValues(Sektionen.Strings[jj], Werte); //<-- Da muss irgendwo der Fehler liegen
Genau! Bei jedem Aufruf wird der aktuelle Inhalt von Werte gelöscht.

Back2Code 1. Mär 2013 12:59

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1205608)
Delphi-Quellcode:
ini.ReadSectionValues(Sektionen.Strings[jj], Werte); //<-- Da muss irgendwo der Fehler liegen
Genau! Bei jedem Aufruf wird der aktuelle Inhalt von Werte gelöscht.

Wie kann ich das Löschen verhindern bzw, dass ich alle Werte von allen Sektionen in der Stringlist speichere?

Dalai 1. Mär 2013 13:00

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Zitat:

Zitat von Robin2k (Beitrag 1205606)
Das Problem ist dann, dass es mit dem Erstellen des Inifiles nicht mehr ging, da ja inilist.Strings[i] genutzt wird von der Schleife...

Das ist doch nicht das Problem, sondern das hier:
Delphi-Quellcode:
for i := 0 to inilist.Count-1 do
  begin
    ini := TIniFile.Create(inilist.Strings[i]);
    Sektionen := TStringList.Create;
    Abschnitte := TStringList.Create;
    Schlüssel := TStringlist.Create;
    Werte := TStringList.Create;
    [...]
    Sektionen.SaveToFile ('C:\Users\admin\Desktop\aTest\Sektionen.txt');
  Abschnitte.SaveToFile ('C:\Users\admin\Desktop\aTest\Abschnitte.txt');
  Werte.SaveToFile ('C:\Users\admin\Desktop\aTest\Werte.txt');
Das ist doch Käse. Erzeuge die Listen ini, Sektionen & Co einmalig vor der Schleife und leere sie, sofern nötig, mit TStringList.Clear innerhalb der for-Schleife. [ADD] Und zu jedem TStringList.Create gehört ein TStringList.Free.[/ADD]

MfG Dalai

p80286 1. Mär 2013 13:04

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Zitat:

Zitat von Dalai (Beitrag 1205603)
PS: Die hartkodierten Pfade lässt du am besten auch gleich weg.

Wenn Du dies hier meinst:
Delphi-Quellcode:
Sektionen.SaveToFile ('C:\Users\admin\Desktop\aTest\Sektionen.txt');
Abschnitte.SaveToFile ('C:\Users\admin\Desktop\aTest\Abschnitte.txt');
Werte.SaveToFile ('C:\Users\admin\Desktop\aTest\Werte.txt');
Das begeistert zwar nicht, aber ist wohl nur für die Testausgabe.
Oder war das Deine Bewerbung für den Job in Rom ;-)

Gruß
K-H

Back2Code 1. Mär 2013 13:06

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Ja also wie es der Ordner vermuten lässt, besteht die Speicherfunktion lediglich für Teste bis ich sehe, dass meine Stringlisten richtig gefüllt sind.

Uwe Raabe 1. Mär 2013 13:07

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Zitat:

Zitat von Robin2k (Beitrag 1205609)
Wie kann ich das Löschen verhindern bzw, dass ich alle Werte von allen Sektionen in der Stringlist speichere?

Du brauchst eine weiter StringList, die du mit
Delphi-Quellcode:
ReadSectionValues
verwendest. Danach überträgst du das per
Delphi-Quellcode:
Werte.AddStrings
.

p80286 1. Mär 2013 13:08

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Delphi-Quellcode:
Sektionen := TStringList.Create;
Abschnitte := TStringList.Create;
Schlüssel := TStringlist.Create;
Werte := TStringList.Create;
for i := 0 to inilist.Count-1 do begin
    ini := TIniFile.Create(inilist.Strings[i]);
   
.....
   ini.free;
end;
Da Ini für jede inilist[i] neu gebraucht wird, oder geht's auch anders?

Gruß
K-H

Uwe Raabe 1. Mär 2013 13:11

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
 
Übrigens: der Sinn von Abschnitte erschließt sich nicht ganz. ReadSectionValues liest immer Key-Value Paare ein.

Überhaupt bleibt deine eigentliche Absicht bei dem Code verborgen. Einzig der Kommentar am Ende bringt etwas Licht, stimmt aber nicht mit dem Code überein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.
Seite 2 von 3     12 3      

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