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

alte Fragen aufgewühlt :)

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


Anmeldedatum: 04.11.2003
Beiträge: 125
Wohnort: .DS_Store

BeitragVerfasst am: 08.04.2006 - 15:49    Titel: alte Fragen aufgewühlt :) Antworten mit Zitat

hi Forum ich hab mal n paar alte Fragen von mir aufgewühlt, da ich jetz wieder gebrauch davon nehmen könnte .... ich hab hier z.b. das randomizer dings nochmal angeschaut und habe jetz folgendes :

global thetext
set thetext to "Ich mag keinen Fisch !"

set WortAnzahltext to ¬
count words of thetext
-- Gets number of words of thetext

if WortAnzahltext is 0 then
-- Check if there is any text

display dialog "It was nothing entered"
-- if there is no text: display an alert

else
-- if there is text: ¬

repeat with textnummer from 1 to WortAnzahltext
-- change letters

global the_Text
-- global the_Text so all handlers can change it

set the_Text to ¬
word textnummer of thetext
-- Sets the current word of thetext

set the_Text to ¬
lowercase of the_Text
-- Set it all to lowercase letters

set random_number to ¬
random number from 1 to (count items of the_Text)
-- Create a random number

set random_item to ¬
item random_number of the_Text
-- Sets the letter (random number) of the_Text

set uppercase_Letter to ¬
(uppercase of random_item) as string
-- Sets the letter to uppercase

set item random_number of the_Text to uppercase_Letter
-- Sets the randomed number to uppercase ...

set word textnummer of thetext to the_Text
-- ... and returns it

end repeat
thetext
-- Finish Very Happy
end if


wobei ich jetz ab den 2 zeilen häng :

set item random_number of the_Text to uppercase_Letter
-- Sets the randomed number to uppercase ...

set word textnummer of thetext to the_Text
-- ... and returns it


1. Zeile bringt mir den error :
„item 3 of "ich"“ kann nicht als „"H"“ gesetzt werden.

und 2. den :
„word 1 of "Ich mag keinen Fisch !"“ kann nicht als „"ich"“ gesetzt werden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 08.04.2006 - 20:32    Titel: Antworten mit Zitat

Du hast beide Male den gleichen Fehler gemacht. - Den gleichen Denkfehler.

Wenn du nach den 'items' eines Textes fragst, was bekommst du als Ergebnis? - Eine Liste.

Du kannst nun ein 'item' dieser Liste ändern - aber nicht einfach den Originaltext.

Kleines Beispiel:

set thetext to "ich"
set itemList to items of thetext
set item 3 of itemList to "H"
set thetext to itemList as string


Wenn du also nach einem 'item' oder 'word' eines Textes fragst, bildet AppleScript automatisch eine Liste und sucht dir dann das gewünschte Objekt daraus aus. Du darfst nur nicht vergessen, dass du auf die Liste zugreifen musst, statt auf das Original.

Hier noch ein Beipsiel mit 'word':

global thetext
set thetext to "Ich mag keinen Fisch !"

get word 3 of thetext
--
"keinen"
--
du kannst hier nicht auf 'result' zurückgreifen, da
--
sonst nur "keinen" als Ergebnis kommt
--
an die Liste kommst du so nicht ran
--
aber so:

set WordList to words of thetext
set item 3 of WordList to "gerne"
set AppleScript's text item delimiters to space
set thetext to WordList as string
set AppleScript's text item delimiters to ""

get thetext


Ergebnis:

"Ich mag gerne Fisch"

Bei dieser Vorgehensweise gehen allerdings die Satzzeichen verloren, da beim erstellen der Liste ja nur Wörter aufgenommen werden, - beim Zurückwandeln wird lediglich ein Leerzeichen benutzt. - Satzzeichen futsch!
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
scriptingmouse13
•-->
•-->


Anmeldedatum: 04.11.2003
Beiträge: 125
Wohnort: .DS_Store

BeitragVerfasst am: 08.04.2006 - 21:06    Titel: Antworten mit Zitat

Hey supi ... hab ich wohl ma wieder was verpennt, sorry !

aber ... ich hab jetz mal nicht "Ich mag kein Fisch" sondern das gemacht :

tell application "iTunes"
set thetext to artist of current track
end tell


na toll jetz meint er :

„every item of "silbermond"“ kann nicht gelesen werden.

natürlich bei der zeile :
set the_TextList to items of the_Text

?? Question ??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 09.04.2006 - 09:01    Titel: Antworten mit Zitat

Wenn sowas vorkommt, liegt es meistens daran, dass ein Ergebnis Unicode-Text enthält, der dann nicht weiter verarbeitet werden kann, weil AppleScript plain text (string) erwartet. Hier muss man dann etwas nachhelfen:

tell application "iTunes"
    set thetext to (artist of current track) as string
end tell

set the_TextList to items of thetext

_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
scriptingmouse13
•-->
•-->


Anmeldedatum: 04.11.2003
Beiträge: 125
Wohnort: .DS_Store

BeitragVerfasst am: 10.04.2006 - 14:18    Titel: Antworten mit Zitat

Ja das hatte ich natürlich auch schon ausprobiert .. sonst hätt ich das hier nich gepostet, funzt nich Sad bringt immernoch den gleichen error -.-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 10.04.2006 - 15:18    Titel: Antworten mit Zitat

so geht's:

global thetext
set thetext to "Ich mag keinen Fisch !"
set AppleScript's text item delimiters to " "
set thetext to text items of thetext
set AppleScript's text item delimiters to ""

set WortAnzahltext to count items of thetext
-- Gets number of words of thetext
if WortAnzahltext is 0 then -- Check if there is any text
   display dialog "It was nothing entered" -- if there is no text
else -- if there is text:
   repeat with textnummer from 1 to WortAnzahltext -- change letters
      global the_Text -- global the_Text so all handlers can change it
      set the_Text to item textnummer of thetext -- Sets the current word of thetext
      set the_Text to lowercase of the_Text -- Set it all to lowercase letters
      set the_Text to text items of the_Text
      set random_number to random number from 1 to (count items of the_Text)
      -- Create a random number
      set random_item to item random_number of the_Text
      -- Sets the letter (random number) of the_Text
      set uppercase_Letter to (uppercase of random_item) as string
      -- Sets the letter to uppercase
      set item random_number of the_Text to uppercase_Letter
      -- Sets the randomed number to uppercase ...
      set the_Text to the_Text as string
      set item textnummer of thetext to the_Text
      -- ... and returns it
   end repeat
   thetext
   -- Finish
end if

_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 10.04.2006 - 19:11    Titel: Antworten mit Zitat

scriptingmouse13 hat Folgendes geschrieben:
Ja das hatte ich natürlich auch schon ausprobiert .. sonst hätt ich das hier nich gepostet, funzt nich Sad bringt immernoch den gleichen error -.-


Ich habe hier iTunes 5.0.1 und da funktioniert es mit 'as string' - ohne diesen Zusatz erhalte ich die gleiche Fehlermeldung wie du.

Da es bei mir funktioniert, weiß ich jetzt nicht, wie ich dem Fehler auf die Spur kommen soll.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 10.04.2006 - 20:08    Titel: Antworten mit Zitat

-- bei mir klappt weder das:
set thetext to "Ich mag keinen Fisch !"
set word 2 of thetext to "hab"
-- noch das hier:
set thetext to ("Ich mag keinen Fisch !") as string
set word 2 of thetext to "hab"

_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
scriptingmouse13
•-->
•-->


Anmeldedatum: 04.11.2003
Beiträge: 125
Wohnort: .DS_Store

BeitragVerfasst am: 10.04.2006 - 20:11    Titel: Antworten mit Zitat

Ha !

Das schlüssel wort lautet TEXT

Very Happy

thx @ iScript

set the_TextList to text items of the_Text
set item random_number of the_TextList to uppercase_Letter
set the_Text to the_TextList as string
-- Sets the randomed letter to uppercase ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 10.04.2006 - 20:40    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
-- bei mir klappt weder das:
set thetext to "Ich mag keinen Fisch !"
set word 2 of thetext to "hab"
-- noch das hier:
set thetext to ("Ich mag keinen Fisch !") as string
set word 2 of thetext to "hab"


Das klappt bei mir auch nicht - aber das hatte ich ja bereits geschrieben, dass man so nicht auf Textbestandteile zugreifen kann.

Es ging eigentlich um den Fehler, dass sich aus den Daten, die man aus iTunes hatte, keine Liste mit 'items' bilden ließ.

@ scriptingmouse13
'text items' und 'items' produzieren unterschiedliche Ergebnisse.
Je nach Anwendungsgebiet heißt es da aufpassen!

Mit 'items' wird ein Text in einzelne Zeichen zerlegt, 'text items' zerlegt dagegen in Wörter.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 11.04.2006 - 19:53, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 10.04.2006 - 21:28    Titel: Antworten mit Zitat

upps, da hätte ich besser mal lesen sollen, was der grosse schon geschrieben hat.
hatte mich einfach auf's erste listing gestürzt und geschaut, woran es hakt,
und das waren eben die 2 versuche, ein wort bzw. einen buchstaben eines strings direkt zu manipulieren.
eigentlich ja auch schade, dass das nicht so einfach klappt.
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 10.04.2006 - 21:44    Titel: Antworten mit Zitat

snow hat Folgendes geschrieben:
Mit 'items' wird ein Text in einzelne Zeichen zerlegt, 'text items' zerlegt dagegen in Wörter.

das stimmt so nicht ganz:

set x to "bla blau"
set y to text items of x
-- ergebnis {"b", "l", "a", " ", "b", "l", "a", "u"}
set z to items of x
-- ergebnis {"b", "l", "a", " ", "b", "l", "a", "u"}

da haben die delimiters doch noch ein wörtchen mitzureden. wenn ich wörter in die liste haben will, muss ich doch space zum delimiter erklären.
aber wem erzähl ich das hier überhaupt. Wink
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
scriptingmouse13
•-->
•-->


Anmeldedatum: 04.11.2003
Beiträge: 125
Wohnort: .DS_Store

BeitragVerfasst am: 10.04.2006 - 22:11    Titel: Antworten mit Zitat

Ok danke für die supi erläuterungen, wieder was dazu gelernt Very Happy

Im moment funzt das skript supi Smile wenns doch nochma probleme gibt, meld ich mich Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X 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