Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi [INI] Wie lange darf ein Key sein? (https://www.delphipraxis.net/158361-%5Bini%5D-wie-lange-darf-ein-key-sein.html)

Muellermilchtrinker 14. Feb 2011 18:29

[INI] Wie lange darf ein Key sein?
 
Hallo DP,

habe hier mal gelesen, dass ein Key in einer INI-Datei nur eine bestimmte Länge haben darf. Habe dazu leider nichts mehr gefunden, deswegen wollte ich euch fragen.
Code:
[ID]
101=Wie lang darf das hier sein?
Vielleicht weiß ja jemand die Antwort. Danke euch.

Assarbad 14. Feb 2011 18:31

AW: [INI] Wie lange darf ein Key sein?
 
Moin,

also erstmal wäre das der Wert und nicht der Schlüssel (Key), aber die Antwort auf deine Frage hängt komplett davon ab was benutzt wird um die INI zu lesen. Also sei doch mal etwas spezifischer ;)

Muellermilchtrinker 14. Feb 2011 18:33

AW: [INI] Wie lange darf ein Key sein?
 
zum lesen die normale mitgelieferte Inifiles

WM_CLOSE 14. Feb 2011 18:44

AW: [INI] Wie lange darf ein Key sein?
 
Du könntest mal das ausprobieren:
Delphi-Quellcode:
var
  i:Integer;
  s:String;
  ini:TIniFile;
  iTemp:Integer;//damit uns i nicht bei einer exception flöten geht
begin
  ini:=TIniFile.Create('C:\Temp\test.ini');
  try
    for i:=0 to maxint do
    begin
      iTemp:=i;
      s:=StringOfChar('a', i);
      ini.writeString('new-section', 'newKey', s);
    end;
  except
    ShowMessage(Inttostr(iTemp));
  end;
end;
Ich kanns mangels Delphi nicht testen

Namenloser 14. Feb 2011 18:49

AW: [INI] Wie lange darf ein Key sein?
 
Zitat:

Zitat von WM_CLOSE (Beitrag 1081680)
Du könntest mal das ausprobieren:
Delphi-Quellcode:
...

So dauert das doch ewig... da würd ich eher ne binäre Suche vorschlagen.

himitsu 14. Feb 2011 18:58

AW: [INI] Wie lange darf ein Key sein?
 
In älteren Windows-Versionen gab es mal eine 64 KB-Grenze, für die ganze Datei.

Ansonsten sollten in dem Wert (Value) besser keine Sonderzeichen < 32 (Leerzeichen) enthalten sein, vorallem keine Zeilenumbrüche (#10, #13) oder die #0.

PS: Bei TIniFile wird für jeden einzelnen Schreib/Lesezugriff, ala ini.ReadString oder ini.WriteString, die komplette Datei ausgelesen und dann eventuell der eine Wert verändert und alles neu abgespeichert.
Das ist auch der Grund, warum das Teil so langsam ist und weswegen es eigentlich nicht für große Datenmengen geeignet ist. :stupid:


und jupp
Delphi-Quellcode:
for i := 0 to 31 do
begin
  iTemp := i;
  s := StringOfChar('a', $1 shl i);
  ini.writeString('new-section', 'newKey', s);
end;

WM_CLOSE 14. Feb 2011 18:59

AW: [INI] Wie lange darf ein Key sein?
 
Ich schätze es wird bei 255 eh aufhören oder?

Muellermilchtrinker 14. Feb 2011 19:00

AW: [INI] Wie lange darf ein Key sein?
 
Also ich habs mal ne kurze Zeit laufen gehabt. Bin auf 22,7 MB gekommen. Das ist auf jedenfall genug. Würd mich aber trotzdem interessieren was die absolute Grenze ist. :stupid:

WM_CLOSE 14. Feb 2011 19:05

AW: [INI] Wie lange darf ein Key sein?
 
Eigentlich lag doch die Grenze bei Inis bei 64 kb??:?:

himitsu 14. Feb 2011 19:09

AW: [INI] Wie lange darf ein Key sein?
 
Das wurde von Microsoft zwischen Win98 und XP/Vista geändert.
Die absolute Grenze wird aktuell irgendwo zwischen 0 und 1 GB liegen. (Grenze von 2 GB virtuellem Speicher ... und eventuell noch einer Arbeitskopie der INI, also nur die Hälfte)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.
Seite 1 von 3  1 23      

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 by Thomas Breitkreuz