UTF8 Verzeichnis

Antworten
Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

UTF8 Verzeichnis

Beitrag von Scotty »

Ich speichere Konfigurationsdaten in einer Ini-Datei, die unter GetAppConfigDirUTF8(false) liegt. Das klappt in meinem deutschen XP auch dann, wenn ich Umlaute hart eincodiere (ConfigPath:='c:\äöü'), aber nicht auf einem schwedischen XP mit C:\Documents and Settings\Martina\Lokala inställningar\Application Data\. CreateDirUTF8 klappt, d.h. das Verzeichnis wird erzeugt. Nur bei TIniFile.Create kommt die Exception "Could not create". Was mache ich falsch?

Code: Alles auswählen

function ConfigPath: string;
begin
  if not DirectoryExistsUTF8(GetAppConfigDirUTF8(false)) then
    CreateDirUTF8(GetAppConfigDirUTF8(false));
  Result:=GetAppConfigDirUTF8(false);
end;
 
ConfigFile:=TIniFile.Create(ConfigPath+'Scrabble3D.ini');

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: UTF8 Verzeichnis

Beitrag von theo »

Schon mal so probiert? :

ConfigFile:=TIniFile.Create(UTF8ToSys(ConfigPath)+'Scrabble3D.ini');

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: UTF8 Verzeichnis

Beitrag von Scotty »

Ich bin mir recht sicher, dass ich das schon mit GetAppConfigDir(false) probiert habe (die UTF8 Version hab ich erst kürzlich entdeckt). Ich schicke aber mal eine Testversion weiter. Lokal ausprobieren kann ich das ja nicht...

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: UTF8 Verzeichnis

Beitrag von Scotty »

Mit UTF8ToSys(ConfigPath) funktioniert es, wobei ich den Pfad vorher per GetAppConfigDirUTF8() auslesen muss. Ein übles hin-und-her Konvertieren ist das ;-)

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: UTF8 Verzeichnis

Beitrag von carli »

Dann schreib dir ne Abstraktionsklasse, die dir Dateien aus einem "virtuellen" Dateisystem in das physikalische Dateisystem umrechnet. Vor allem hilfreich, wenn man zusätzlich noch den ExtractFilePath(ParamStr(0)) davorhängen muss.

Antworten