![]() |
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Könntest du dir vielleicht mal meine angehängten Klassen oben anschauen und sagen wo ich das machen muss? Ich bekomm das gerade einfach nicht hin...
|
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Ich geh einfach mal von der normalen Ini-Klasse aus, die ich auch an einigen Stellen zum Speichern von Unicode-Strings benutze. Aber wie schon gesagt: Wenn die Datei zu groß wird, dann wird das ineffizient. Dann sollte man sich ggf. ein eigenes Format für die Dateien überlegen - kommt drauf an, was man machen möchte.
Delphi-Quellcode:
var tmp: String;
//... // schreiben: tmp := Utf8Encode(MyWideStringVar); ini.WriteString('Section', 'MeinWideStringWert', tmp); //lesen: tmp := ini.ReadString('Section', 'MeinWideStringWert', '-'); MyWideStringVar := Utf8Decode(tmp); |
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Ich werde es mal versuchen und melde mich dann...
|
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Delphi-Quellcode:
läßt sich auch mit den anderen NichtUnicodeKlassen so machen
// schreiben
ini.WriteString('Section', 'MeinWideStringWert', Utf8Encode(MyWideStringVar)); // lesen MyWideStringVar := Utf8Decode(ini.ReadString('Section', 'MeinWideStringWert')); oder notfalls 'ne Klasse ableiten und diese Konvertierung darin machen. |
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Das geht so leider nicht, da die Liste ja leer bleibt. Das Bearbeiten der Klassen funktioniert nicht (bzw. ich schaffs einfach nicht)...
|
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Kennt jemand die TntIniFiles? Diese unterstützen auch Unicode.
Bin mir aber nicht sicher, ob sie >64KB unterstützen. |
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
'ne Erweiterung für TBigIniFile könnte z.B. so aussehn.
(ein ReadAnsiString und WriteAnsiString gibt's in TBigIniFile ja auch schon)
Delphi-Quellcode:
type
TWideBigIniFile = class(TBigIniFile) public function ReadWideString(const aSection, aKey: string; const aDefault: WideString): WideString; virtual; procedure WriteWideString(const aSection, aKey: string; const aValue: WideString); virtual; end; function TWideBigIniFile.ReadWideString(const aSection, aKey: string; const aDefault: WideString): WideString; begin Result := Utf8Decode(ReadString(aSection, aKey, Utf8Encode(aDefault))); end; procedure TWideBigIniFile.WriteWideString(const aSection, aKey: string; const aValue: WideString); begin WriteString(aSection, aKey, Utf8Encode(aValue))); end; |
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Hi,
also TTnt(Mem)IniFile bzw. T(Mem)IniFile nutzen beide GetPrivateProfileString/WritePrivateProfileString. Nur nutzt Tnt eben die WideString Funktionen. Aber eine generelle Rückfrage: Das Limit betrifft afaik doch nur Win98SE und älter. Dort dann ja teilweise auch ![]() Nutzt Du denn wirklich INI files > 32/64k auf Win98? Gruß Assertor |
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Danke für die Antworten!
@ himitsu: Danke, ich werde es mal testen! @ Assertor: Ich möchte Reg-Dateien einlesen, welche ja im Enddefekt nur Ini-Dateien sind. Diese sind aber sehr, sehr groß (komplette Reg-Sicherung beträgt z.B. auf meinem Laptop 70 MB). Wo bekomm ich denn die TntInis her? Die suche findet nur einen Verwei sauf ![]() |
Re: Klasse für sehr große Ini-Dateien + Unicode gesucht
Hi xX0815Xx,
Zitat:
![]() Himitsus Idee mit der Klassenerweiterung für UTF8Encode/Decode finde ich übrigens sehr gut geeignet, so etwas nutze ich an anderer Stelle auch. Gruß Assertor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 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