Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ini readsections nur 296 einträge von 1010 (https://www.delphipraxis.net/170130-ini-readsections-nur-296-eintraege-von-1010-a.html)

davtix 2. Sep 2012 12:40

ini readsections nur 296 einträge von 1010
 
hi,
komisches problem hab ich da
eigentlich simpel dachte ich, wollte ja nur ini sectionen in ner listbox auflisten.
jedoch sind es immer NUR 296 einträge die gelesen werden, der rest wird einfach nicht eingelesen...
könnt mir da jemand nen tipp geben?
Code:
procedure TForm1.Button1Click(Sender: TObject);
var ini:tinifile;
begin
  try
    Ini := TIniFile.Create('D:\mark.ini');
    Ini.ReadSections( form1.listbox1.Items );
  finally
    Ini.Free;
  end;

end;

jaenicke 2. Sep 2012 12:54

AW: ini readsections nur 296 einträge von 1010
 
Nimm einfach einmal TMemIniFile. Denn TIniFile setzt auf den seit 15 Jahren veralteten Windows 3.x API-Funktionen auf.

Davon abgesehen sieht das bei der Menge an Einträgen so aus als wären INI-Dateien nicht gerade das richtige... :gruebel:

davtix 2. Sep 2012 13:18

AW: ini readsections nur 296 einträge von 1010
 
Zitat:

Davon abgesehen sieht das bei der Menge an Einträgen so aus als wären INI-Dateien nicht gerade das richtige...
das stimmt schon... jedoch habe ich den quellcode für das hauptprogramm nicht mehr.
also neuschreiben!aber zeit ist bei mir gerade nicht vorhanden, deswegen wollt ich eine vorübergehende lösung.
also ein zweites prog. erstmal!

soweit , danke danke funktioniert! :)

p80286 2. Sep 2012 13:33

AW: ini readsections nur 296 einträge von 1010
 
Zitat:

Zitat von jaenicke (Beitrag 1181035)
Davon abgesehen sieht das bei der Menge an Einträgen so aus als wären INI-Dateien nicht gerade das richtige... :gruebel:

Siehst Du mehr als ich?

Wenn ich mich richtig erinnere, ich find's nur im Augenblick nicht, gab es da auch so etwas wie eine 64kGrenze.

Gruß
K-H

davtix 2. Sep 2012 14:42

AW: ini readsections nur 296 einträge von 1010
 
Zitat:

gab es da auch so etwas wie eine 64kGrenze.
64k grenze?? was genau meinst du??

himitsu 2. Sep 2012 15:33

AW: ini readsections nur 296 einträge von 1010
 
In älteren Windowsversionen konnte eine INI-Datei maximal 64 KB groß sein, da intern mit einem festen Puffer gearbeitet wurde,
aber das ist aktuell (k.A. seit wann) nicht mehr so.

Aber schon alleine bei der Anzahl der Einträge ist ein Problem,

denn TIniFile geht, wie schon gesagt, auf eine uralte API und diese arbeitet so:

Für jeden einzelnen Lese-/Schreibzugriff (Sektionnamen oder einen Value auslesen und schreiben/verändern) wird die Datei komplett neu ausgelesen und danach wieder freigegeben.
Wenn man also 1000 Werte liest, dann wird die Datei 1000 Mal geladen, geparst, der Wert gesucht und alles wieder freigegeben ... jedesmal.



Wie sieht denn deine Datei aus?
Es gibt doch nicht etwa mehrere Sektionen, welche den selben Namen besitzen?
(es gibt manchmal Dateiformate, die sehen wie eine INI aus, sind aber eigetlich vollkommen inkompatibel)

jaenicke 2. Sep 2012 15:34

AW: ini readsections nur 296 einträge von 1010
 
Aber TMemIniFile hat keine derartigen Probleme, insofern ist damit alles in Ordnung.

Popov 2. Sep 2012 16:15

AW: ini readsections nur 296 einträge von 1010
 
@jaenicke

In diesem Fall sollte man noch erwähnen, dass man irgendwann, wenn man fertig ist, oder auch zwischendurch, ein Update der Datei starten muß. Das nur der Vollständigkeitshalber.

Was die 64k Grenze angeht, das war mal, ich weiß aber nicht mehr bis wann. Da ich mit Delphi erst ab Windows 95 angefangen habe und mich erinnern kann dort mal eine böse Überraschung erlebt zu haben, kann die Grenze da noch gewesen sein. Aber ich hab da noch sowohl mit Delphi 1, wie auch mit Delphi 2 gearbeitet.

himitsu 2. Sep 2012 16:41

AW: ini readsections nur 296 einträge von 1010
 
Das Delphi ist hier insofern egal, da es ja eine Begrenzung in der API ist und nicht in der Delphi-Klasse.

In Win9x war's IMHO noch drin, also wirde es wohl mir NT/2K geändert. In XP war's, woweit ich mich erinnere, schon nicht mehr begenzt. (ab Vista isses definitiv weg)

davtix 4. Sep 2012 15:24

AW: ini readsections nur 296 einträge von 1010
 
Zitat:

Wie sieht denn deine Datei aus?
Es gibt doch nicht etwa mehrere Sektionen, welche den selben Namen besitzen?
(es gibt manchmal Dateiformate, die sehen wie eine INI aus, sind aber eigetlich vollkommen inkompatibel)
also verschiedene sectionen (1011 sinds gerade)
mit 8 werten
nein keine gleichen namen ... das hab ich beim speichern damals schon verhindert! if sectionexists.....
ich habe dieses programm erstellt (lange iss es her )ist aber ne ini.nur hab ich keinen quellcode mehr (platte hat damals den geist aufgegeben)

danke an alle für die schnellen antworten und die 64k erklärung :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz