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

Anmeldedatum: 18.03.2005 Beiträge: 1 Wohnort: Lüneburg
|
Verfasst am: 18.03.2005 - 14:49 Titel: vorher definierte Variable in String einfügen? |
|
|
Ich möchte eine mit "set abc to 3" definierte variable in einen Dialog einfügen, weiss jedoch nicht wie! Der dialog sieht dann wie folgt aus: "def entspricht abc" (nur als beispiel) wie kann ich abc und def nicht als text, sondern als die vorher festgelegte zahl (die sich im laufe des scripts verändert) definieren?
Danke im vorraus!
Bink |
|
Nach oben |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 18.03.2005 - 15:23 Titel: |
|
|
Etwa so?
property abcNumber : 1
property abcText : ""
----------------
set abcNumber to 3 as number
set abcText to 3 as text
display dialog "Number ist " & abcNumber & "
Text ist " & abcText
Und was meinen die Experten? _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 18.03.2005 - 16:02 Titel: |
|
|
'display dialog' stellt nur Text dar.
Willy's Beispiel funktioniert zwar, aber die Zahl wird dabei von AppleScript automatisch in einen Textwert umgewandelt.
Beginnt man den Dialog mit der Zahl, kommt es zu einem Fehler.
Beispiel:
property abcNumber : 1
property abcText : ""
----------------
set abcNumber to 3 as number
set abcText to 3 as text
display dialog abcNumber & " lautet die Zahl" & return & return & "Text ist " & abcText
Es kommt zu folgendem Fehler:
3, " lautet die Zahl", "
", "
", "Text ist ", "3"}“ kann nicht in string umgewandelt werden."
Prinzipiell ist es nicht schlecht, eine Zahlenvariable in eine andere Variable zu kopieren, und diese dann per 'display dialog' anzeigen zu lassen.
set abc to 3 -- Zahl
copy abc as text to def
display dialog def & " lautet die Zahl."
Ich verwende in solchen Fällen meist 'copy' - es würde natürlich auch so gehen:
set def to abc as text
Meine Variablen definiere ich fast ausschließlich mit 'set' - so fällt es mir dann gleich auf, wenn ich 'copy' benutze - und weiß, hier wird lediglich eine Variable für die Textanzeige gedoppelt.
Warum eine extra Variable? Damit man den Überblick nicht verliert. Bei so einfachen Beispielen klappt die automatische Datentyp-Umwandlung. Das muss aber nicht immer so sein. Und dann sucht man erst mal lange nach dem Fehler. Man muss das gesamte Skript prüfen und die Variable an jeder Stelle des Skripts kontrollieren, ob sie auch den richtigen Datentyp enthält. Harmloses Beispiel:
set abc to 3 -- Zahl
repeat 3 times
set abc to abc as text
log class of abc
-- string
display dialog abc & " lautet die Zahl."
set abc to abc + 1
log class of abc
-- integer
end repeat
Nun machen wir die Gegenprobe:
set abc to 3 -- Zahl
repeat 3 times
copy abc as text to def
log class of abc
-- integer
display dialog def & " lautet die Zahl."
set abc to abc + 1
log class of abc
-- integer
end repeat
Bei dieser Vorgehensweise, weiß ich, dass die Variable "abc" stets einen Zahlenwert enthält. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
|
|
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
|
|
|