Delphi-PRAXiS

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.

Bernhard Geyer 25. Jul 2005 13:51

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von MosiXXL
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.

Wie wäre es einfach mal die Webseite zu lesen? Dort steht ganz eindeutig beim entsprechenden Eintrag:
Zitat:

This is a single unit: TntIniFiles.pas.

MosiXXL 25. Jul 2005 14:10

Re: WideString / Unicode in INI schreiben
 
Danke für den netten aggressiven Hinweis. Habe schon mitbekommen, dass man hier sofort alles verstehen und können muss. Scheinbar ist man hier der Döddel, wenn man nicht diesem Standard entspricht. Es kann natürlich auch sein, das Du mich kennst und daher einschätzen kannst, das ich wahrscheinlich zu "intelligent" zum suchen war oder mir erst gar keine Mühe gemacht habe.

Olli 25. Jul 2005 14:25

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von MosiXXL
Danke für den netten aggressiven Hinweis.

Als eindringlich könnte man den Hinweis vielleicht noch sehen, aber sicher nicht als aggressiv!

Zitat:

Zitat von MosiXXL
Habe schon mitbekommen, dass man hier sofort alles verstehen und können muss.

Muß man nicht, aber man muß seine Hausaufgaben gemacht haben bevor man von anderen Leuten erwartet, daß sie einem helfen. Wenn man das nicht getan hat, muß man sich auch nicht über einen Hinweis aufregen, der sogar noch die Antwort auf die eigentlich überflüssige Frage enthält.

Zähl mal bis 10 und atme aus ... :roll:

Bernhard Geyer 25. Jul 2005 14:33

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von MosiXXL
Danke für den netten aggressiven Hinweis. Habe schon mitbekommen, dass man hier sofort alles verstehen und können muss. Scheinbar ist man hier der Döddel, wenn man nicht diesem Standard entspricht. Es kann natürlich auch sein, das Du mich kennst und daher einschätzen kannst, das ich wahrscheinlich zu "intelligent" zum suchen war oder mir erst gar keine Mühe gemacht habe.

Ich hoffe doch nicht das du immer alles vorgekaut bekommen must. :wink:
Aber vor kurzen hatten wir eine Diskussion wo ein "Hilfesuchender" jede Quellzeile vorgekaut haben wollte.

MosiXXL 25. Jul 2005 14:49

Re: WideString / Unicode in INI schreiben
 
Bernhard ...

woher willst Du wissen, ob ich alles vorgekaut haben möchte?

Olli

woher weist Du, ob ich meine Hausaufgaben gemacht habe?

Es kann keiner wissen! Manchmal ist es einfach so, dass man den Wald vor lauter Bäumen nicht sieht. Da ist es dann gut, wenn man qualifizierte Hinweise bekommt. Im Grundsatz des Kodex dieses Forums steht etwas sehr wichtiges: "Bedenke also grundsätzlich bei Deinem Handeln, dass auf der anderen Seite auch 'nur' ein Mensch sitzt.". Keiner weis wer auf der anderen Seite sitzt, was er kann, welche Aufgaben oder Probleme ihn plagen, ob er Anfänger oder Profi ist. Das muss aber auch egal sein. Und sollte jemand nur Wissen abschöpfen wollen, dann gibt es zwei Möglichkeiten:
1. nicht antworten
2. eine direkte Nachricht zukommen lassen.

Vielleicht ist nun doch jemand so nett, mir einen Link auf die gesuchte Datei oder das gesuchte Archiv (in dem sich die Datei befindet) zu nennen. Ich habe sie noch nicht gefunden.

Die Muhkuh 25. Jul 2005 14:53

Re: WideString / Unicode in INI schreiben
 
Hi,

hier: http://download.tntware.com/delphi_u...ntIniFiles.zip

SubData 25. Jul 2005 14:54

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von MosiXXL
Vielleicht ist nun doch jemand so nett, mir einen Link auf die gesuchte Datei oder das gesuchte Archiv (in dem sich die Datei befindet) zu nennen. Ich habe sie noch nicht gefunden.

Kann ich zwar nicht so ganz glauben, aber was solls...

http://www.tntware.com/delphicontrol.../downloads.htm

"Unicode Enabled TIniFile"

dahead 25. Jul 2005 14:56

Re: WideString / Unicode in INI schreiben
 
wie wäre es mit

http://download.tntware.com/delphi_u...ntIniFiles.zip

?

(edit, ok jetzt hast du es drei mal. wurde nicht auf neue posts hingewiesen. sorry).

MosiXXL 25. Jul 2005 15:05

Re: WideString / Unicode in INI schreiben
 
Besten Dank.

Jetzt habe ich die Stelle auch gefunden und was war es. Eine defekte Seite im Cache unseres Proxies. Bei dieser wurde ab "Unicode Fixes for Delphi 5" nichts mehr angezeigt. Und genau das ist es. Keiner weis auf der anderen Seite, warum jemand nach etwas fragt.

Olli 25. Jul 2005 20:56

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von MosiXXL
Olli

woher weist Du, ob ich meine Hausaufgaben gemacht habe?

Ich nehme an, daß du sie nicht gemacht hast, weil es so aussieht. Punkt! Auf der anderen Seite bist du, der auf einen überhaupt nicht aggressiven Beitrag von Bernhard komplett austickt. Denk mal drüber nach.

Mehr ist dazu nicht zu sagen!

CodeX 18. Okt 2007 15:55

Re: WideString / Unicode in INI schreiben
 
Hat noch jemand diese TntIniFiles.zip bzw. TntIniFiles.pas irgendwo herumliegen?
Ich habe das irgendwie nicht mehr und auf den verlinkten Seiten lässt sich das nicht merh beziehen, da die TNT Componenten einen kommerziellen Weg eingeschlagen haben.

Bernhard Geyer 18. Okt 2007 16:05

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von CodeX
Hat noch jemand diese TntIniFiles.zip bzw. TntIniFiles.pas irgendwo herumliegen?

2 Sekunden googeln nach Bei Google suchentnt unicode, 2ter Treffer.

Zitat:

Zitat von CodeX
..., da die TNT Componenten einen kommerziellen Weg eingeschlagen haben.

Ist eher so das sich keiner bereit erklärt hat Troy bei seinen Komponenten relevant zu helfen. Und damit seine Arbeit nicht vollkommmen einschläft hat er es TMS (gegen Geld) überlassen. Hier muss sich die Entwickler an die Nase fassen die immer alles kostenlos wollen, aber nicht bereit sind Zeit in solche Projekte zu investieren.

Garfield 18. Okt 2007 16:18

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von CodeX
Hat noch jemand diese TntIniFiles.zip bzw. TntIniFiles.pas irgendwo herumliegen?

2 Sekunden googeln nach Bei Google suchentnt unicode, 2ter Treffer.

Da irrst Du Dich. Da ist die TNTIniFiles.pas nicht dabei.

Dort gibt es noch. Allerdings nicht für Gäste:
http://forum.vingrad.ru/forum/s/b375...1036793/0.html

Bernhard Geyer 18. Okt 2007 16:26

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Garfield
Da irrst Du Dich. Da ist die TNTIniFiles.pas nicht dabei.

Stimmt. Schande über mich :oops:
Waren die nicht Standard-Bestandteil der TNT's?

Garfield 18. Okt 2007 16:30

Re: WideString / Unicode in INI schreiben
 
Leider nicht. Aber wenn man kein TIniFile sondern nur TMemIniFile benötigt, kann man die Unit IniFiles nehmen und umschreiben.

Bernhard Geyer 18. Okt 2007 16:33

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Garfield
Leider nicht. Aber wenn man kein TIniFile sondern nur TMemIniFile benötigt, kann man die Unit IniFiles nehmen und umschreiben.

Oder BigIni umschreiben/erweitern.

CodeX 19. Okt 2007 09:24

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von Garfield
Dort gibt es noch. Allerdings nicht für Gäste:
http://forum.vingrad.ru/forum/s/b375...1036793/0.html

Danke sehr. Habe es mir als Gast mit Bugmenot geladen. :P

Gausi 19. Okt 2007 09:28

Re: WideString / Unicode in INI schreiben
 
Eine Alternative mit Delphi-Bordmitteln wären normale Ini-Files, in die man UTF8-kodierte Widestrings (Utf8Decode/Utf8Encode) schreibt. Das einzige, was dann nicht geht, sind "Unicode-Dateinamen" für die Inidatei.

Garfield 19. Okt 2007 16:03

Re: WideString / Unicode in INI schreiben
 
Zitat:

Zitat von CodeX
Danke sehr. Habe es mir als Gast mit Bugmenot geladen. :P

He. Das kannte ich noch gar nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 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