[GastForen Programmierung/Entwicklung AppleScript AppleScript - Probleme auf franz. System

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

AppleScript - Probleme auf franz. System

Anonym
Beiträge gesamt: 22827

21. Apr 2005, 19:07
Beitrag # 1 von 9
Bewertung:
(1951 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter, hallo Hans,

ich bin mittlerweile sehr tief in jeglicher Programmierung versunken und habe nun ein Problem, das ich nicht lösen kann. Es ist eigentlich trivial, aber die Sprache "Francais" bereitet mir große Schwierigkeiten.

Das einfache Script läuft in der deutschen und englischen Sprache einwandfrei - jedoch nicht in französisch.

property xPathToTestfolder : "Testordner:"
property xPathGSInstallationFile : "Ghostscript_8.15.pkg"
----------------------------------------------------------
--------- Pfadangaben werden festgelegt ---------
----------------------------------------------------------
tell application "Finder"
 set xInstallerAppPath to choose file --(path to me)
 set xInstallerAppPathStrg to xInstallerAppPath as string
 
 set oldDelims to AppleScript's text item delimiters
 set AppleScript's text item delimiters to ":"
 set itemCount to (count text items of xInstallerAppPathStrg)
 set lastItem to the last text item of xInstallerAppPathStrg
 if lastItem = "" then
  set itemCount to itemCount - 2 -- bei Pfad zu einem Ordner
 else
  set itemCount to itemCount - 1 -- bei Pfad zu einer Datei
 end if
 set xParentFolderPathStrg to text 1 thru text item itemCount of xInstallerAppPathStrg & ":"
 set AppleScript's text item delimiters to oldDelims
 
 set xFilesFolderPath to (xParentFolderPathStrg & xPathToTestfolder)
 set xGhostScriptInstallerPath to (xParentFolderPathStrg & xPathToTestfolder & xPathGSInstallationFile)
 --...weitere Pfadangaben 
 if not (folder xFilesFolderPath exists) then
  return 3
 else
  choose folder
 end if
 if not (file xGhostScriptInstallerPath exists) then
  return 4
 else
  choose file
 end if
end tell

Die Prüfung der Bedingung, ob der Ordner oder das File existiert ist immer "false" - aber nur im französchischen. Da der else Zweig folgt, wähle ich die Datei aus und sehe somit den Originalpfad der 100% mit dem zusammengesetzten Pfad übereinstimmt. Das kann ich mir nicht erklären. Was läuft da falsch?

Ich habe schon den kurzen Befehl
  ------------------deaktiviert-----------------ProblemeInFranzoesisch
  --set xParentFolderPath to (container of item xInstallerAppPathStrg)
  --set xParentFolderPathStrg to (xParentFolderPath as string)
  ------------------Ersatz-----------------
ausgetauscht, da dieser auch nicht funktioniert - Warum, kann ich nicht sagen.

Vielen Dank für jeden Tipp.

Armin

X.3.9 Spracheinstellung deutsch - X.3.9 Spracheinstellung französisch, ScriptEditor 2, Xcode 1.5
X

AppleScript - Probleme auf franz. System

Hans Haesler
  
Beiträge gesamt: 5826

21. Apr 2005, 23:03
Beitrag # 2 von 9
Beitrag ID: #419565
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

welcome back! :-)

Ich habe versucht, die Bedingungen nachzustellen. Französische Spracheinstellung. Ordner "Testordner"
erstellen und eine Datei hineinlegen, welche "Ghostscript_8.15.pkg" benannt ist. Dann per erstem
'choose file' eine Datei auswählen, die sich im selben Ordner wie der "Testordner" befindet.

Resultat: Am Schluss kommt die Aufforderung, zuerst einen Ordner zu wählen und danach eine Datei.
In beiden Fällen werden also die Objekte erkannt. Nur wenn ich den Namen des Ordners ändere, kommt die
'3' zurück. Ich kann das Problem also nicht bestätigen. Und weil Du es bist ;-) habe ich darauf noch die
Sprache auf Deutsch umgestellt. Aber mit dem gleichen Resultat.

Übrigens: Den "Finder" braucht man nur, um den 'parent folder' der ersten Datei zu bestimmen. Und dies
ganz ohne 'text item delimiters'-Gymnastik ... Versuch's bitte mal so:
---
property xPathToTestfolder : "Testordner:"
property xPathGSInstallationFile : "Ghostscript_8.15.pkg"
----------------------------------------------------------
--------- Pfadangaben werden festgelegt ---------
----------------------------------------------------------
set xInstallerAppPathStrg to (choose file) as string
tell application "Finder" to set xParentFolderPathStrg to (container of file xInstallerAppPathStrg) as string
set xFilesFolderPath to (xParentFolderPathStrg & xPathToTestfolder)
set xGhostScriptInstallerPath to (xFilesFolderPath & xPathGSInstallationFile)
--...weitere Pfadangaben
try
   alias xFilesFolderPath
   choose folder
on error
   return 3
end try
try
   alias xGhostScriptInstallerPath
   choose file
on error
   return 4
end try

---
'choose file' und 'choose folder' sind Befehle der Scripting Addition "Standard Additions" und nicht
des "Finders". Auch beim Feststellen, ob eine Datei oder ein Ordner existiert, kann man auf den (langsamen)
"Finder" verzichten. Ein 'try'-Wickel und 'alias' genügen vollauf. Anfänglich allerdings etwas verwirrlich,
weil der 'on error'-Part ausgeführt wird, wenn das Objekt nicht vorhanden ist.

Gruss, Hans


als Antwort auf: [#419564]

AppleScript - Probleme auf franz. System

Anonym
Beiträge gesamt: 22827

22. Apr 2005, 22:15
Beitrag # 3 von 9
Beitrag ID: #419566
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von Hans Haesler welcome back! :-)

Ja, lang lang ist's her, aber ich verfolge gerne deine Lehrstunden und Tipps hier im Forum. Ist immer wieder was neues für mich dabei.

Danke für die Tipps mit "langsamen" Finder umgehen - werd ich gleich umsetzen. Ich mach das immer wieder, weil ab und zu die Xcode AppleScript Applikation dann besser läuft. Kompiliert ist der Finder dann nicht mehr so langsam. Ich kompiliere bereits kleine Projekte, die z.B. 10.000 Dateien umbenennen oder prüfen - Geschwindigkeitsvorteil ein 100- oder 1000-faches gegenüber dem normalen Skript.

PROBLEM NICHT behoben - leider.
Mein Mac Rechner, mit OSX.3.9 in Hauptsprache französisch hat schon bei dem ersten "Finder" Befehl ein Problem. Das hatte ich bereits und daher habe ich die Text item delimiters verwendet - zum Test (das funktioniert)

folgender Fehler:
" get container of file "arminegginger:Desktop:aegginger.zip"
  "Impossible de désigner «class ctnr» of file \"arminegginger:Desktop:aegginger.zip\" of application \"Finder\" comme string."

folgende Zeile:
tell application "Finder" to set xParentFolderPathStrg to (container of file xInstallerAppPathStrg) as string

Nichts aus deinem AS verändert - Copy&Paste und run

Was kann das sein? Ich habe es mit einem tatsächlichen File probiert und auch mit einer Applikation. (habe gerade entdeckt, das eine Applikation noch Doppelpunkte am Ende hat und somit in AS als Folder-Path übergeben wird - ich weiß, ist ja auch ein Ordner, aber ich dachte, dass AS das auch als FilePfad sieht)

Ratlosigkeit, am Kopf kratz, Schulter zuckend

Armin


als Antwort auf: [#419564]

AppleScript - Probleme auf franz. System

Hans Haesler
  
Beiträge gesamt: 5826

23. Apr 2005, 00:58
Beitrag # 4 von 9
Beitrag ID: #419567
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

ja, das ist wirklich rätselhaft. Ich kann Deine Fehlermeldung nicht nachvollziehen. Gut, ich habe
noch nicht 10.3.9 installiert. Aber ich glaube nicht, dass seit 10.3.8 der Pfad zu einer Datei so
markant verändert worden ist. Wo ist denn der Name der Harddisk geblieben? Und wo ist "Users"?

Wähle bitte mal manuell die Datei "aegginger.zip" aus und starte dieses Script:
Code
[b]tell application "Finder" [b]to set xInstallerAppPathStrg [b]to selection [b]as string 

Wie sieht das Resultat aus?

Ich vermeide es, Objekte auf den Desktop zu legen und sie per Script anzusprechen. Bei meinen Tests
befanden sich die Dinger im Order "Documents". Doch jetzt schob ich den Ordner mitsamt .pkg-File
auf den Schreibtisch und legte eine Zip-Datei namens "aegginger.zip" daneben. Diese Datei wählte
ich aus und der weitere Ablauf war wie vorgesehen.

Deshalb hier meine Rückfragen, ob ich die Ausgangslage richtig verstanden habe. Nach dem Studium
Deines Codes sagte ich mir, dass die auszuwählende Datei im selben Ordner wie der "Testordner"
liegen muss. Und dieser enthält die (Ordner)-Datei "Ghostscript_8.15.pkg".

Ist das so richtig? Oder soll im ersten Dialog das Package "Ghostscript_8.15.pkg" ausgewählt werden?
Aber dann käme im Pfad der "Testordner" zweimal vor. Und der folgende Test ergäbe 'false'.

Übrigens: Dass ein Pfad zu einer Applikation mit Doppelpunkt endet, ist mit Mac OS X eingeführt
worden. Deshalb mussten bei zwei oder drei von QXP5 übernommenen Scripts die Anzahl 'text items'
zum Programmordner korrigiert werden.

Gruss, Hans


als Antwort auf: [#419564]

AppleScript - Probleme auf franz. System

Hans Haesler
  
Beiträge gesamt: 5826

23. Apr 2005, 08:35
Beitrag # 5 von 9
Beitrag ID: #419568
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

noch etwas: Ich habe erst kürzlich wieder gelesen, dass man seit drei Jahren beim
Umwandeln von Pfaden statt 'as string' besser 'as Unicode text' verwenden sollte.

Vielleicht macht dies bei Deiner Umgebung einen Unterschied.

Gruss, Hans


als Antwort auf: [#419564]

AppleScript - Probleme auf franz. System

Anonym
Beiträge gesamt: 22827

23. Apr 2005, 10:31
Beitrag # 6 von 9
Beitrag ID: #419569
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ich denke, ich kann das Problem isolieren, denn:

Ich habe hier FileVault aktiviert. Ich werde nun einmal einen User anlegen, ohne FileVault und dann auf 10.3.9 testen.

Mein Testlauf wird nun wie folgt aussehen:

10.3.8 auf Deutsch - ohne FileVault
10.3.8 auf Französisch - ohne FileVault
10.3.9 auf Deutsch - ohne FileVault
10.3.9 auf Französisch - ohne FileVault

10.3.9 auf Deutsch - mit FileVault
10.3.9 auf Französisch - mit FileVault

Die Resultate werden folgen. Wenn es wirklich an FileVault liegt, muß ich mir einen Workaround einfallen lassen - aber erst einmal testen.

Viele Grüße

Armin


als Antwort auf: [#419564]

AppleScript - Probleme auf franz. System

Hans Haesler
  
Beiträge gesamt: 5826

23. Apr 2005, 11:32
Beitrag # 7 von 9
Beitrag ID: #419570
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

immer wenn ich "FileVault" sehe, kommt mir dieser Satz in den Sinn: "Due to a bug
in Apple's FileVault implementation Applescript doesn't work as expected."

Rufe mal "Google" auf, tippe "FileVault AppleScript" ins Suchfeld. Nach dem Klick
auf "Google-Suche" sind die ersten zehn Links (von ungefähr 10'200) sichtbar.
Hoffentlich ist darunter auch ein Workaround für Dich.

Gruss, Hans


als Antwort auf: [#419564]

AppleScript - Probleme auf franz. System

Anonym
Beiträge gesamt: 22827

24. Apr 2005, 12:32
Beitrag # 8 von 9
Beitrag ID: #419571
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

nun habe ich alle Tests durch und kann sagen:
"ES WAR DEFINITIV FileVault" - shit

Der einzige Workaround ist: Ein .dmg anlegen und die Dateien von da aus laufen lassen. Somit gibt es keine Probleme, da es ein eigenes Volume ist.

FileVault sieht den Dokumenten-Ordner auch als eigenes Volume, jedoch ist die AppleScript Umsetzung nicht gelungen, denn das Volume "Dokumenten-Ordner" ist ja offiziell gemountet, aber die Pfadangaben-Prüfung läuft nicht richtig, obwohl diese relativ gesetzt werden - hmm komisch, daß es mit einem .dmg Volume funktioniert, nicht jedoch mit dem FileVault Volume.

Ich prüfe jetzt vorher, ob FileVault aktiviert ist (Festplattenname ist in Pfadname Programm, dann kein FileVault sonst Meldung)

Vielen Dank für deine Hilfe und vor allem die Anregung "wo ist deine Festplatte im Pfad geblieben" das hat mich erst auf die Idee gebracht, danach zu suchen.

Viele Grüße

Armin


als Antwort auf: [#419564]

AppleScript - Probleme auf franz. System

Hans Haesler
  
Beiträge gesamt: 5826

24. Apr 2005, 17:28
Beitrag # 9 von 9
Beitrag ID: #419572
Bewertung:
(1950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

bitteschön. Tja ... eigentlich hätte ich den Zusammenhang mit FileVault auch
diagnostizieren sollen, weil ich bestimmt entsprechende Meldungen gelesen hatte.

Und jetzt wünsche ich Dir weiterhin fröhliches Scripten! :-)

Gruss, Hans


als Antwort auf: [#419564]
X