Benutzer mit den meisten Antworten
Schriftarten in Ini-Datei nicht abspeicherbar ?

Frage
-
Hallo,
ich schreibe in eine Ini-Datei Namen in andere Sprachen der Welt und die jeweilige Tastaur ist auch installiert.
Statt den Namen in der jeweiligen Sprache, schreibt er "??????", obwohl die Ini-Datei eine UnicodeDatei ist.
Warum ist dies so und was kann ich da machen, damit er in der jeweiligen Weltsprache in die Ini-Datei schreibt und liest ?
mfg
- Bearbeitet ati.sah Donnerstag, 6. Juli 2017 07:44
Antworten
-
Es müsste so aussehen:
[DllImport("KERNEL32.DLL", EntryPoint="WritePrivateProfileStringW", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern int WritePrivateProfileString( string lpAppName, string lpKeyName, string lpString, string lpFilename);
[DllImport("KERNEL32.DLL", EntryPoint = "GetPrivateProfileStringW", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern int GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, string lpReturnString, int nSize, string lpFilename);
- Gruß Florian
- Als Antwort markiert ati.sah Donnerstag, 6. Juli 2017 13:05
Alle Antworten
-
Hi,
ohne zu wissen, was Du da wie mit welchem Code abspeicherst und wo Du die ?????? dann siehst, kann man dir auch nicht sagen, was Du falsch machst.
Ich persönlich würde allerdings keine Ini Datei verwenden, sondern eher Xml oder Json. Dafür gibt es dann auch entsprechende Serialisierungs- und Deserialisierungsmethoden, mit denen man auf sehr einfachem Weg die Daten laden und speichern kann.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Donnerstag, 6. Juli 2017 07:54
-
Hallo ati.sah.
Du musst die Unicode Varianten der API Aufrufe (GetPrivateProfileStringW und WritePrivateProfileStringW) verwenden.
- Gruß Florian
- Bearbeitet Florian Haupt Donnerstag, 6. Juli 2017 10:55 Korrektur
-
Hallo, so ähnlich
[DllImport("kernel32")] private static extern long WritePrivateProfileString(string Section, string Key, string Value, string FilePath);
MyIniDateiCls MyIni = new MyIniDateiCls(test.ini)
MyIni.Write("test", "Country", "WeltsprachenTxt");
ist überhaupt in eine IntDatei möglich ?
mfg
- Bearbeitet ati.sah Donnerstag, 6. Juli 2017 10:40
-
Hallo, so ähnlich
[DllImport("kernel32")] private static extern long WritePrivateProfileString(string Section, string Key, string Value, string FilePath);
MyIniDateiCls MyIni = new MyIniDateiCls(test.ini)
MyIni.Write("test", "Country", "WeltsprachenTxt");
ist überhaupt in eine IntDatei möglich ?
mfg
- Gruß Florian
- Bearbeitet Florian Haupt Donnerstag, 6. Juli 2017 10:56
-
Hallo Florian, vielen dank.
es tritt irgend ein Fehler, wo er dann den Default Wert nimmt WritePrivateProfileStringW();.
bei dem alten WritePrivateProfileString(); klappt ohne Probleme => leider ohne Unicode
mfg
- Bearbeitet ati.sah Donnerstag, 6. Juli 2017 11:22
-
Es müsste so aussehen:
[DllImport("KERNEL32.DLL", EntryPoint="WritePrivateProfileStringW", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern int WritePrivateProfileString( string lpAppName, string lpKeyName, string lpString, string lpFilename);
[DllImport("KERNEL32.DLL", EntryPoint = "GetPrivateProfileStringW", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern int GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, string lpReturnString, int nSize, string lpFilename);
- Gruß Florian
- Als Antwort markiert ati.sah Donnerstag, 6. Juli 2017 13:05
-
Hi,
"es tritt irgend ein Fehler auf" ist nichts, mit dem wir auch nur irgendwas anfangen könnten.
Bei Fehler bitte immer die exakte und vollständige Fehlermeldung, keine verkürzte oder eigeninterpretierte Version davon, posten.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community