Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

defaults in einer Skriptdatei auslesen / Unicode Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hoschy07
•->
•->


Anmeldedatum: 07.11.2005
Beiträge: 11

BeitragVerfasst am: 21.11.2005 - 01:39    Titel: defaults in einer Skriptdatei auslesen / Unicode Problem Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 21.11.2005 - 12:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 21.11.2005 - 12:25    Titel: Antworten mit Zitat

Manchmal sollte man doch zuvor einen Blick in das Verzeichnis werfen Smile

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
hoschy07
•->
•->


Anmeldedatum: 07.11.2005
Beiträge: 11

BeitragVerfasst am: 22.11.2005 - 01:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2005 - 12:09    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter