Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
hoschy07 •->

Anmeldedatum: 07.11.2005 Beiträge: 11
|
Verfasst am: 21.11.2005 - 01:39 Titel: defaults in einer Skriptdatei auslesen / Unicode Problem |
|
|
Hallo Forum!
Ich habe mal wieder eine Frage:
Ich würde gerne in einem Skript (kein Studio-X Programm) einen Wert einer plist auslesen.
Bisher habe ich das so gemacht:
Code: | set Foo to (do shell script "defaults read org.bar.App Key") as string |
Hat eigentlich wunderbar geklappt. Allerdings schreibe die Werte vorher mit einem AS-Studio-X Programm so in die plist Datei:
Code: |
tell user defaults
set contents of default entry "Key" to (foo as Unicode text)
end tell |
Ich schreibe die Werte als Unicode, da Umlaute oder Sonderzeichen enthalten sein können.
Wenn ich die Werte dann aber über das Skript auslese, bekomme ich z. B. für ein "ü" den Unicode "\\U00fc" zurück.
Jetzt meine Frage(n):
Ist es möglich, in einer Skript-Datei über folgenden Befehl ebenfalls irgendwie die Werte aus der Datei org.bar.App auszulesen?
Code: |
tell user defaults
set foo to get contents of default entry "Key" as string
end tell |
Oder wie kann ich die Unicode-Nummern wieder in normale Zeichen umwandeln?
Am liebsten wäre mir eine Lösung ohne zusätzliche Addition.
Über Hilfe wäre ich sehr dankbar.
Schöne Grüße, hoschy07 |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 21.11.2005 - 12:13 Titel: |
|
|
Hallo,
zumindest für Textdateien (und warum sollte das nicht allgemein gelten?) läuft es andersherum!
Beispiel (Textdatei "testUnicode_utf16.txt"):
set thePath to (((path to desktop from user domain) as string) & "testUnicode_utf16.txt")
set theFRef to open for access file thePath
set theTextUnicode to (read theFRef as Unicode text)
-- result: "äüßüö©"
close access theFRef
set theFRef to open for access file thePath
set theTextMacRoman to read theFRef
-- result: "[NICHT DARSTELLBAR]"
close access theFRef
set temp to theTextUnicode as string
-- result: "äüßüö©"
get {theTextUnicode, theTextMacRoman, temp}
Interessanter Text dazu unter:
http://www.satimage.fr/software/en/unicode_and_applescript.html _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 21.11.2005 - 12:25 Titel: |
|
|
Manchmal sollte man doch zuvor einen Blick in das Verzeichnis werfen
do shell script string : the command or shell script to execute. Examples are ‘ls’ or ‘/bin/ps -auxwww’
[as type class] : the desired type of result; default is Unicode text (UTF-8)
Also, utf8 ist das default-Format. Evtl. speicherst Du aber als utf16 - ich würde erstmal beide Möglichkeiten (as Unicode text bzw as «class utf8» testen und das Resultat nach der Sinnhaftigkeit prüfen. Erst dann das Ergebnis als z.B. String weiterbehandeln ... _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
hoschy07 •->

Anmeldedatum: 07.11.2005 Beiträge: 11
|
Verfasst am: 22.11.2005 - 01:05 Titel: |
|
|
Hallo Folker!
Vielen Dank für Deine Antworten. Leider konnte ich meinen Fehler so nicht beseitigen. Was ich noch herausgefunden habe ist, dass die Rückgabewerte von "do shell script" als 8-bit Daten vorliegen, also "ü" wird als "/247" zurückgegeben.
Ich habe aber trotzdem noch eine Möglichkeit gefunden:
Code: |
property workingFileName : "~/Desktop/eg.plist"
tell application "System Events"
set foo to value of property list item "Key" of contents of property list file workingFileName
end tell |
Das soll aber nur ab Tiger funktionieren. Kann ich das so verstehen, dass Benutzer, die mein Skript < 10.4 ausführen, dann eine Fehlermeldung erghalten!?
Wann das so wäre, dann muss ich scheinbar doch noch nach einer anderen Lösung suchen.
Gruß, hoschy07. |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 22.11.2005 - 12:09 Titel: |
|
|
Hallo,
ja, so recht kann ich im Moment auch nicht weiterhelfen. Fakt ist auf jeden Fall, dass Deine "trotzdem gefundenen Möglichkeit" tatsächlich ein OS X 10.4.x (AS 1.10.x) Feature ist. Auf einem Rechner mit OS X 10.3.9 (AS 1.9.3) erhalte ich eine Fehlermeldung! _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
|