![]() |
[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:
Vielleicht weiß ja jemand die Antwort. Danke euch.
[ID]
101=Wie lang darf das hier sein? |
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 ;) |
AW: [INI] Wie lange darf ein Key sein?
zum lesen die normale mitgelieferte Inifiles
|
AW: [INI] Wie lange darf ein Key sein?
Du könntest mal das ausprobieren:
Delphi-Quellcode:
Ich kanns mangels Delphi nicht testen
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; |
AW: [INI] Wie lange darf ein Key sein?
Zitat:
|
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; |
AW: [INI] Wie lange darf ein Key sein?
Ich schätze es wird bei 255 eh aufhören oder?
|
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:
|
AW: [INI] Wie lange darf ein Key sein?
Eigentlich lag doch die Grenze bei Inis bei 64 kb??:?:
|
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) |
AW: [INI] Wie lange darf ein Key sein?
Also wenn ich schon so eine Frage stellen muss, dann stimmt was mit meinem Konzept nicht.
|
AW: [INI] Wie lange darf ein Key sein?
Luckie hat Recht (natürlich)
Wenn du große Daten Ablegen willst, speicere sie lieber in einer Typisierten Datei ö.Ä, denn für Rohdaten ist die Ini nicht gemacht. Außerdem ist es nicht sonderlich performant. Natürlch kann es auch sein, dass du die Frage nur Interressehalber gestellt hast. Das ist dann was anderes |
AW: [INI] Wie lange darf ein Key sein?
Zitat:
Zitat:
|
AW: [INI] Wie lange darf ein Key sein?
|
AW: [INI] Wie lange darf ein Key sein?
Zitat:
Zitat:
(nja, zumindestens sein erster Punkt ist definitiv falsch) Aber sonst kann ich ihm zustimmen. |
AW: [INI] Wie lange darf ein Key sein?
Zitat:
Du verstehst schon Englisch, oder? :zwinker: |
AW: [INI] Wie lange darf ein Key sein?
Es sind eigentlich keine externen Schritte nötig, die WinAPI, welche in TIniFile gekapselt ist, kann das von sich aus.
Zitat:
Getestet mit Delphi2009 und WinXP. Vor Delphi2009 bekommt man kein Unicode da rein, aber wenn die INI einmal Unicode ist, dann sollte auch Delphi 7 damit zurechtkommen (auch wenn es selber nur ANSI rausgekommt). |
AW: [INI] Wie lange darf ein Key sein?
Zitat:
![]() ![]() Verdammt noch eins, die von Schopenhauer beschriebenen Tricks haben sich in den über hundertfünfzig Jahren seit Niederschrift wohl doch weiter rumgesprochen als anzunehmen war ... :zwinker: |
AW: [INI] Wie lange darf ein Key sein?
Wo ist da ein Link? :shock:
Nja, Das zeigt dann wenigstens, daß er den selben Beitrag zitiert hat und Microsoft seit 7 Jahren nicht mehr viel dort dran gemacht hat. :stupid: ( irgendwo dort drin ![]() Ist aber och böse, wenn er sowas gleich als ersten Punkt schreibt und da nicht gleich das Richtige verlinkt. :angle2: |
AW: [INI] Wie lange darf ein Key sein?
Wenn man die Werte UTF8-kodiert, klappt es auch mit alten Delphi-Versionen und Unicode in Inis. Vor Delphi 2009 war ein UTF8String ja auch nichts anderes als ein AnsiString. D.h. man muss nur vor dem Schreiben bzw. nach dem Lesen die Werte umkodieren. :-D
Große Datenmengen gehören da natürlich trotzdem nicht rein. Aber für einen Dateinamen mit Unicode-Zeichen reicht das allemal. |
AW: [INI] Wie lange darf ein Key sein?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Anhang 33366 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 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