Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi WideString / Unicode in INI schreiben (https://www.delphipraxis.net/50365-widestring-unicode-ini-schreiben.html)

CodeX 24. Jul 2005 16:30


WideString / Unicode in INI schreiben
 
ihr merkt schon, ich bin gerade auf dem unicode-trip ;)
bisher hat alles ganz gut hingehauen, wobei ihr einen großen teil dazu beigetragen habt :) danke!

jetzte stehe ich aber vor dem problem, dass ich auch gerne unicodetext in einer ini datei speichern würde.
der text liegt in einem widestring.
und normalerweise würde ich einen string ja so speichern:
Delphi-Quellcode:
ini.WriteString(xxx,yyy,MyWideString);
das speichern geht zwar, jedoch werden alle unicodezeichen durch "?" ersetzt.
ich habe die ini datei außerhalb von delphi extra als unicode-textfile gespeichert. das bleibt dann sogar nach einem delphi zugriff immer noch unicode, jedoch hat das nichts geholfen.
ini.WriteWideString gibts leider nicht :P

also irgendwie den widesring in ansistring umwandeln, wobei die besonderen zeichen in #1234 umwandeln und dann erst speichern?
und wieder richtig auslesen?

:? ... hilfe ... :?

MosiXXL 24. Jul 2005 21:34

Re: WideString / Unicode in INI schreiben
 
Hi,

wenn es noch keinen gibt, der bereits ein "TIniFileW" Object hat, dann könntest Du Dich selbst ans Werk machen. Die API Funktionen, welche von dem TIniFile Object verwendet werden, gibt es als A(ANSI) und W(Unicode) Variante.
Delphi-Quellcode:
function TIniFile.ReadString(const Section, Ident, Default: string): string;
var
  Buffer: array[0..2047] of Char;
begin
  SetString(Result, Buffer, GetPrivateProfileString(PChar(Section),
    PChar(Ident), PChar(Default), Buffer, SizeOf(Buffer), PChar(FFileName)));
end;
Die API Funktion GetPrivateProfileString gibt es als GetPrivateProfileStringA und GetPrivateProfileStringW. Bedeuted ein bischen Arbeit, aber unmöglich ist es nicht.

Luckie 24. Jul 2005 21:41

Re: WideString / Unicode in INI schreiben
 
Oder du suchst dir eine schon fertige Implementation der TIniFile Klasse für Unicode. Gibt es bestimmt irgendwo.

Bernhard Geyer 25. Jul 2005 08:43

Re: WideString / Unicode in INI schreiben
 
Unicode Enabled TIniFile

Olli 25. Jul 2005 10:27

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Bernhard Geyer

Glaubt mir, das (^---) wird einst der Tod von Delphi sein. Alle können Komponenten zusammenpappen, aber keiner kann sie schreiben :cry:

Bernhard Geyer 25. Jul 2005 12:31

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Bernhard Geyer

Glaubt mir, das (^---) wird einst der Tod von Delphi sein. Alle können Komponenten zusammenpappen, aber keiner kann sie schreiben :cry:

???? Versteh ich jetzt nicht was Du damit meinst :wiejetzt:

Olli 25. Jul 2005 12:46

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Bernhard Geyer
???? Versteh ich jetzt nicht was Du damit meinst :wiejetzt:

Daß du mit Verweis auf Kompos den Nachwuchs schädigst :mrgreen: ...

MosiXXL 25. Jul 2005 12:49

Re: WideString / Unicode in INI schreiben
 
Hallo Bernhard,

kannst Du mir sagen in welcher Unit sich das TIniFile (Unicodeversion) Object befindet? Davon mal abgesehen, ist sicher hilfreich sich an so einem einfachen Object zu versuchen. Die Erfahrungen, die man dabei gewinnt, sind sehr hilfreich.

MFG

Bernhard Geyer 25. Jul 2005 12:49

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Bernhard Geyer
???? Versteh ich jetzt nicht was Du damit meinst :wiejetzt:

Daß du mit Verweis auf Kompos den Nachwuchs schädigst :mrgreen: ...

Vergib mir :wink:
Aber wer mit Unicode sich herumplagen muß ist schon geschädigt genug :???:

Olli 25. Jul 2005 12:59

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Bernhard Geyer
Vergib mir :wink:
Aber wer mit Unicode sich herumplagen muß ist schon geschädigt genug :???:

Na gut :mrgreen: Delphi und Unicode ist echt eine Plage, da hast du ganz recht. Umso höher muß man Leuten wie Troy anrechnen, daß sie solche Kompos zur Verfügung stellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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-2025 by Thomas Breitkreuz