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

choose from list - Nur Nummer des gewählten Eintrages
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 09.06.2007 - 15:26    Titel: choose from list - Nur Nummer des gewählten Eintrages Antworten mit Zitat

Hallo Ihr Lieben,

ich mach ja viel zu wenig mit AS und daher brauchts halt länger bei mir Confused

Ich hab jetzt rauf und runter probiert, aber ich komme immer noch nicht klar mit den Dictionaries und deren Erklärungen.

Ich möchte mit dem Command "choose from list" aus einer Liste von offenen Dateien - hier in Acrobat - mit Auswahl eines Eintrages direkt die ID des Items bekommen und diese gleich in eine Variable, die nicht vom Typ List ist, ablegen.

Geht das überhaupt innerhalb eines Aufrufes und wenn JA wie?

Hier mal mein Script, wie ich es bisweilen sehr umständlich gelöst habe:

tell application "Adobe Acrobat 7.0 Professional"
      local docList, docA, docB, pagesA, pagesB, loopA, loopB
      set docList to name of every document
      set docA to choose from list docList with prompt ¬
         "Which is the main document?"
      set docA to item 1 of docA as string
      set docB to choose from list docList with prompt ¬
         "Which document should be intigrated in the main document?"
      set docB to item 1 of docB as string
      set pagesA to count every page of document docA
      set pagesB to count every page of document docB
      set loopA to 0
      set loopB to 1
      repeat while loopB <= pagesB
         insert pages document docA ¬
            after loopA + loopB ¬
            from document docB ¬
            starting with loopB ¬
            number of pages 1
         set loopA to loopA + 1
         set loopB to loopB + 1
      end repeat
   end tell


Warum wird der Code nicht farblich dargestellt Question

Für Eure Hilfe besten Dank im Voraus.

Viele Grüße

Klemens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 09.06.2007 - 18:58    Titel: Antworten mit Zitat

Hallo Seppel!
Ich wollte mal zeigen wie sinnvoll es für Snows Forum ist, die Skripts einzufärben:
Längst nicht jeder vefügt über Adobe Acrobat 7.0 Professional und könnte damit dein Skript nicht im SkriptEditor einfärben.
Zitat:
tell application "Adobe Acrobat 7.0 Professional"
   
local docList, docA, docB, pagesA, pagesB, loopA, loopB
   
set docList to name of every document
   
set docA to choose from list docList with prompt ¬
      "
Which is the main document?"
   
set docA to item 1 of docA as string
   
set docB to choose from list docList with prompt ¬
      "
Which document should be intigrated in the main document?"
   
set docB to item 1 of docB as string
   
set pagesA to count every page of document docA
   
set pagesB to count every page of document docB
   
set loopA to 0
   
set loopB to 1
   
repeat while loopB <= pagesB
         insert pages document
docA ¬
            after
loopA + loopB ¬
            from document
docB ¬
            starting with
loopB ¬
            number of pages 1
         set
loopA to loopA + 1
         set
loopB to loopB + 1
   
end repeat
end tell

Seppel hat Folgendes geschrieben:
Warum wird der Code nicht farblich dargestellt Question
Wenn o.k, kann ich dir gerne den Link zur detaillierten Anweisung geben, wie du selbst einfärben kannst:
Ich habe versucht in der Pool-Sammlung Anweisungen zu machen, wie man so schnell wie möglich selbst eine Einfärbung fabrizieren könnte

PS zu deiner Frage "choose from list - Nur Nummer des gewählten Eintrages" : ich hab es geschafft, @Skeeve etwas zu "schupsen", in die Snippet-Sammlung OSX ein Listen-Skript vom allerfeinsten zu posten. Solltest du dabei (wie ich auch) den angekündigten "Beispielsaufruf" dort missen, könntest du es ihm ev. mitteilen, mir hat er`s nicht geglaubt.
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 19.06.2007 - 21:40, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Folker
•---->
•---->


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

BeitragVerfasst am: 09.06.2007 - 20:12    Titel: Antworten mit Zitat

Ok, eine zugegebenermaßen ungewöhnliche Lösung, welche zudem nur mit den für AppleScript gültigen Zeichen umgehen kann (d.h., in den Listeneinträgen dürfen keine ö,ü,ß,&,%,<,>,+,* usw vorkommen!), zur Bestimmung der Nummer des Listeneintrages (also zeile 1, 2 oder 3 - geht natürlich auch mit mehr Einträgen ...)

Aufgrund obiger Einschränkung sicherlich nur bedingt zu empfeheln, allerdings kann man da natürlich auch noch mit einem ASCII-Konverter nachhelfen Wink

set theL to {"Eins", "Zwei", "Drei"}
set theRecords to {}
repeat with i from 1 to (count theL)
   set theRecords to theRecords & Set_Obj(item i of theL, i)
end repeat

set theChoosenNumber to Get_Obj(theRecords, choose from list theL)
-- 1 oder 2 oder 3 !!!!!!


on Set_Obj(theProp, theValue)
   tell (run script "me
on r(theProp, theValue)
return {" & theProp & ":" & theValue & "}
end r") to return r(theProp, theValue)
end Set_Obj

on Get_Obj(theObj, theProp)
   tell (run script "me
on f(theObj)
return theObj's " & theProp & "
end f") to return f(theObj)
end Get_Obj



ok, der Zeichentausch hätte sicherlich auch in die Rubrik Snippets gepasst, aber hier der Vollständigkeit halber - obwohl ich mir fast sicher bin, dass der Skeeve mit Perl in der Hälfte der Kürze oder so Wink (er hat ja auch nicht so ganz unrecht ...)

-- =============================Beginn Gruppe Zeichentausch==============================
-- Zeichen in theText tauschen
on get_changeChar(theText, thePairs) --(thePairs. {{"ä", "ae"}, {"ö", "oe"}, usw.}
   set {oldDelims, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {""}}
   set {theF, theL} to {(ASCII character 0), {}}
   considering case, white space, diacriticals, hyphens, expansion and punctuation
      repeat with i in thePairs
         set {x, y} to i
         if (x is in theText) then
            set z to (theF & x)
            set theText to do_changeChar(theText, {x, z})
            set end of theL to {z, y}
         end if
      end repeat
      repeat with i in theL
         set {z, y} to i
         set theText to do_changeChar(theText, {z, y})
      end repeat
   end considering
   set AppleScript's text item delimiters to oldDelims
   return theText
end get_changeChar

-- Doppelte, führende und nachgestellte Leerzeichen (spaces) werden gelöscht!
on get_trimmedText(theText)
   set {oldDelims, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {""}}
   repeat while " " is in theText
      set theText to do_changeChar(theText, {" ", " "})
   end repeat
   set AppleScript's text item delimiters to {""}
   if text item 1 of theText = " " then set theText to text 2 thru -1 of theText
   if text item -1 of theText = " " then set theText to text 1 thru -2 of theText
   set AppleScript's text item delimiters to oldDelims
   return theText
end get_trimmedText

-- Hilfs-Handler für get_changeChar, get_trimmedText
on do_changeChar(theText, {thed1, thed2})
   set AppleScript's text item delimiters to {thed1}
   set theText to (text items of theText)
   set AppleScript's text item delimiters to {thed2}
   return (theText as string)
end do_changeChar
-- =============================Ende Gruppe Zeichentausch=============================

_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 09.06.2007 - 20:58    Titel: Antworten mit Zitat

Herrlich!
da ich weiss, dass Folker nicht gleich in die Hosen macht..
Folker hat Folgendes geschrieben:
Aufgrund obiger Einschränkung

Was machst du aus dieser "Einschränkung":
set theL to {"Zwei", "Zwei", "Zwei"}
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 09.06.2007 - 21:27    Titel: Antworten mit Zitat

spirigwi hat Folgendes geschrieben:
Solltest du dabei (wie ich auch) den angekündigten "Beispielsaufruf" dort missen, könntest du es ihm ev. mitteilen, mir hat er`s nicht geglaubt.

Nachgereicht.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Folker
•---->
•---->


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

BeitragVerfasst am: 09.06.2007 - 21:31    Titel: Antworten mit Zitat

Na, das ist doch völlig wurscht - im obigen Beispiel wird die AppleScript Klasse record genutzt. Dazu nutzen wir den Befehl run script String. Beispiel:

set thePrompt to "\"dies ist ein Test\""
run script "display dialog " & thePrompt & " buttons {\"a\", \"b\"}"


Die Besonderheit ist das Erstellen eines (Record-) Properties aus der Klasse string. Beispiel:

set theProp to "theLabel"
set theRecord to (run script "return {" & theProp & ":" & 1 & "}")
get theLabel of theRecord


Nun lässt sich der Wert des (Record-) Properties auslesen. Im obigen Beispiel ist der Wert die jeweilige Zählvariable (i) des repeat-Loops, d.h. jedem String-Eintrag der Liste wurde seine laufende Nummer zugeordnet.

Nun wollen wir aber die Nummer aber mit Hilfe eines Strings auslesen -
set theString to "theLabel"
set temp to (run script "return " & theString & " of {theLabel:1}")


Auf Dein Beispiel bezogen, würde je nach Wahl der Zwei 1, 2 oder 3 zurückgeliefert. Eine Zuordnung von Farben ist eine andere Aufgabe aber sicherlich mit Zeit und Lust an ungewöhnlichen Lösungen auch zu lösen
Laughing
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 10.06.2007 - 00:48    Titel: Antworten mit Zitat

Folker hat Folgendes geschrieben:
Na, das ist doch völlig wurscht

Genau... Vollkommen wurscht... Wenn 2 Elemente vom String her identisch sind, ist das Ergebnis bei Deiner Lösung immer das erste der beiden. Nicht ganz das (von Willy) gewünschte Ergebnis.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 10.06.2007 - 07:49    Titel: Antworten mit Zitat

Folker hat Folgendes geschrieben:
Nun lässt sich der Wert des (Record-) Properties auslesen
Solange die Listeneinträge unterschiedlich sind, ok
hat Folgendes geschrieben:
set theL to {"Eins", "Zwei", "Drei"}
--set
theL to {"Zwei", "Zwei", "Zwei"}

set theRecords to {}
repeat with i from 1 to (count theL)
   
set theRecords to theRecords & Set_Obj(item i of theL, i)
end repeat

--theRecords -->>{Eins:1, Zwei:2, Drei:3}<<Ergebnis
--
(Hier muss Folkers Rest-Skript folgen, sonst kann mans nicht testen!)
Ich glaube aber, hier liegt das Problem bei identischen Listenwerten:
hat Folgendes geschrieben:
set theL to {"Zwei", "Zwei", "Zwei"}
set theRecords to {}
repeat with i from 1 to (count theL)
   
set theRecords to theRecords & Set_Obj(item i of theL, i)
end repeat

--theRecords -->>{Zwei:1}<<Ergebnis
--
(Hier muss Folkers Rest-Skript folgen, sonst kann mans nicht testen!)
Oder wesentlich umständlicher ausgedrückt ein Lösungsvorschlag, fecit spirigwi Embarassed
So könnte man ev. mit Folkers Skript dennoch die diversen Positionen unterscheiden auch
>>Wenn 2 Elemente vom String her identisch sind<<
PS: danke Skeeve, ich lerne Deutsch, belastet von 4 Landessprachen: F,I,D,Romantsch + Spanisch (<-Frau und Kinder) + Latein(inkl.Kirchenlatein + Mediziner-LDD-Kauderwelsch + Griechisch + noch die einzige Nicht-Fremdsprache: schwyzertütsch und das ganze nebst AppleSkript
hat Folgendes geschrieben:
set theL to {"Eins", "Zwei", "Drei"}
set theL2 to {"Zwei", "Zwei", "Zwei"}

on RecordER(theL)
   
set theRecords to {}
repeat with i from 1 to (count theL)
   
set theRecords to theRecords & Set_Obj(item i of theL, i)
end repeat
end RecordER
--
theRecords -->>{"Zwei", "Zwei", "Zwei"}<<Ergebnis

Der Hund liegt wohl darin begraben, dass nun die records vom handler aufgelöst werden. Mist!
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Folker
•---->
•---->


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

BeitragVerfasst am: 10.06.2007 - 10:01    Titel: Antworten mit Zitat

Skeeve hat natürlich Recht - es wird in Deinem "Zweier" Beispiel immer die 1 zurückgeliefert - ist hat nur fraglich, warum aus 2 identischen Werten 1 ausgewählt werden soll - wie dem auch sei, mein Beispiel ist für die choose list item Geschichte aus d. schon oben von mir genannten Gründen eher nicht so geeignet. Das worum es ging, ist der Denkansatz mittels records und mittels Stringwerten die einem record-property zugeordneten Werte auszulesen - in Listen ein nicht zu unterschätzendes Feature!


property thePTest : {spirigwi:{"Willy", 1417, "Bunter Hund"}, Skeeve:{"Nicht bekannt", 461, "Perl-Ikone"}, Folker:{"Folker", 632, "Gelegenheitsschreiber"}}

set temp to Get_Obj(choose from list {"spirigwi", "Skeeve", "Folker"})
display dialog "Der gewählte User heißt \"" & item 1 of temp & "\" und hat " & item 2 of temp & " Beiträge geschrieben. Man kann ihn am besten als \"" & item 3 of temp & "\" beschreiben ..."

on Get_Obj(theProp)
   tell (run script "me
on f(thePTest)
return thePTest's " & theProp & "
end f") to return f(thePTest)
end Get_Obj

_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 10.06.2007 - 12:53    Titel: Antworten mit Zitat

Hallo Ihr Lieben,

erstmal herzlichen Dank für Eure umfangreiche Hilfe.

Warum der Index eines geklickten Listeneintrages nur mit so komplexen Scripten zu erhalten ist, hab ich nicht wirklich verstanden. Schade finde ich zudem, dass dies nicht Bestandteil des Kommandos "choose from list" ist, wie sich ja nunmehr herausstellt. Aber von FileMaker bin ich ja Trickserei gewohnt Wink

Was spräche gegen nachfolgende Lösung, unter der Voraussetzung, dass nur eindeutige Listeneinträge vorkommen können?

tell application "Adobe Acrobat 7.0 Professional" -- or any other application
   set docList to name of every document
   set openDocs to count docList
   set docA to choose from list docList ¬
      with prompt "Choose one of the items below, please!"
   set docA to item 1 of docA as string
   
   -- Determine the index of selected item and displayed it
   set loop to 0
   set docB to ""
   repeat while docB ? docA
      set loop to loop + 1
      set docB to item loop of docList as string
   end repeat
   display dialog "The index is " & loop
end tell


Dies liese sich auch recht einfach ergänzen, wenn auch mehrere Einträge selectiert werden dürfen.

Für meine Problemlösung scheint der Index aber überflüssig zu sein. Da habe ich mich auf dem Holzweg befunden. Hier mal mein bisheriges Script, welches die Seiten eines PDFs in ein anderes überführt. Es ist noch nicht ganz fertig. Ermöglicht werden soll auch, verschiedene Blöcke von Seiten, z. B. ab der Seite 3 bis 51 und 77 bis 101, die Seiten 4 bis 52 und 78 bis 102, einzufügen.

tell application "Adobe Acrobat 7.0 Professional"
   local docList, openDocs, docA, docB, pagesA, pagesB, loopA, loopB
   set docList to name of every document
   set openDocs to count docList
   
   --Now get the document name in which the other pages to be integrated.
   set docA to choose from list docList ¬
      with prompt "Which is the main document?" with title "Main Document"
   set docA to item 1 of docA as string
   
   -- Determine the second document name
   if openDocs > 2 then
      set docB to choose from list docList ¬
         with prompt ¬
         "Which document should be intigrated into the main document?" with title "Second Document"
      set docB to item 1 of docB as string
   else
      set loop to 0
      set docB to docA
      repeat while docB = docA
         set loop to loop + 1
         set docB to item loop of docList as string
      end repeat
   end if
   
   set pagesB to count every page of document docB
   
   -- Get the start position of inserting in main document
   set loopA to display dialog ¬
      "After which page of document " & docA & " should be inserted the first page of " & docB & "?" default answer 1 with icon note
   set loopA to (text returned of loopA) - 1 as integer
   
   -- Get the first page of second document which should be inserted
   set startB to display dialog ¬
      "Which page is the first to be inserted in main doc?" default answer 1 with icon note
   set startB to text returned of startB as integer
   set loopB to 1
   
   
   repeat while startB <= pagesB
      insert pages document docA ¬
         after loopA + loopB ¬
         from document docB ¬
         starting with startB ¬
         number of pages 1
      set loopA to loopA + 1
      set loopB to loopB + 1
      set startB to startB + 1
   end repeat
end tell


Da ein Problem mit gleichlautenden Namen ausgeschlossen werden kann, ermittle ich so bequem den Namen des zweiten Dokumentes, welches in das erste überfürt wird. Im Falle von mehr als zwei geöffneten Dateien wird nachgefragt. Das Script tut insoweit schonmal, aber wenn Lücken bei geraden und ungeraden Seiten existieren, eben nicht. Aber das wird Smile

Nochmals Danke an alle und viele Grüße aus dem wieder sonnigen Wiesbaden.

Seppel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 10.06.2007 - 14:34    Titel: Antworten mit Zitat

Da Seppel, Skeeve, Folker gestandene, wetterfeste AS-Skripter sind kann ich es nicht verkneifen, mit diesem Folker durch Ausprobieren seiner Skripte die "Gleichheit" von Listeneinträgen etwas unter die Lupe zu nehmen:
property thePTest : ¬
   {spirigwi:{"Willy", "SCHWEIZER", "aber ein echter", ""} ¬
      , Folker:{"Folker", "schweizer", "aber nur ein Höllen-steiner", "dieser gemeine Schuft"} ¬
      , Seppel:{"Seppel", "kein Wiener? ", "da du nun unter die bunten Vögel gelangt bist, erfreut sich mein Hunde-Herz, das mir Folker aus deinem Signet implantiert hat", "dieser gemeine Schuft"} ¬
      }
set temp to ¬
   Get_Obj(choose from list {"spirigwi", "Folker", "Seppel"})
display dialog ¬
   "Der gewählte User heißt " & return & ¬
   item 1 of temp & "\" und ist\"" & item 2 of temp & "\"" & return & ¬
   item 3 of temp & return & ¬
   item 4 of temp

--dieser Apparat da unten ist echt gail!
on Get_Obj(theProp)
   tell (run script "me
on f(thePTest)
return thePTest's " & theProp & "
end f") to return f(thePTest)
end Get_Obj

PS: dasselbe wie für Skeeve: auch mit noch so zusammengepressten Handlern, die zu variierende Wert-EINGABE wird um nichts leichter. Ist das ein AS-Phänomen?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 10.06.2007 - 23:23    Titel: Antworten mit Zitat

Seppel hat Folgendes geschrieben:
Warum der Index eines geklickten Listeneintrages nur mit so komplexen Scripten zu erhalten ist, hab ich nicht wirklich verstanden.

Meins ist nicht komplex, es sieht nur so aus.

Im Prinzip macht das nix anderes als:
1. Vor jedes Listenelement eine Zahl zu setzen
2. choose from list aufzurufen
3. Die Zahl(en) aus dem(den) selektierten Element(en) herauszuholen

Es wirkt so komplex, weil ich versucht habe alle Optionen von "choose from list" zu berücksichtigen.

@Folker: Identische Werte sind nicht identisch, wenn die Position in der Liste bedeutungstragend ist. Von daher muß irgendwie eine Unterscheidung eingebaut werden. Ich habe das durch die fortlaufende Numerierung gelöst. Was auch den Vorteil hat, daß man weder über records noch über eine Schleife den Index ermitteln muß.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Folker
•---->
•---->


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

BeitragVerfasst am: 11.06.2007 - 10:39    Titel: Antworten mit Zitat

Zitat:

@Folker: Identische Werte sind nicht identisch, wenn die Position in der Liste bedeutungstragend ist. Von daher muß irgendwie eine Unterscheidung eingebaut werden. Ich habe das durch die fortlaufende Numerierung gelöst. Was auch den Vorteil hat, daß man weder über records noch über eine Schleife den Index ermitteln muß.


Oh ja - nur fraglich wie der Benutzer die bedeutungstragende Rolle mehrerer identischer Werte erkennen soll - nehm ich nun die erste Zwei oder doch lieber die zweite Zwei Lach lach ? Aber gut - mir ist es eh`wurscht ...
Meinst Du Dein choose from list snippet? Also nach einem flüchtigen Blick darauf meinte ich zwei repeat-loops wahrgenommen zu haben?

Edit @ all:

Und noch ein kleines Beispiel für den möglichen Blödsinn aus einem String einen Klassennamen zu machen:


set theVariable to {"Anything"}
if class of theVariable is not ¬
   (Get_Obj(choose from list {"string", "integer", "list"})) then
   error "Fehlerhafter Variablenwert!"
end if

on Get_Obj(temp)
   tell (run script "me
on f(temp)
return " & temp & "
end f") to return f(temp)
end Get_Obj


Da sollte klar werden, was für ein Potenzial in dieser Möglichkeit steckt - die, wie ich weiter oben schon anmerkte - garantiert nicht eine allgemeine Lösung für sehr benutzerdefinierte und -orientierte Einträge eines choose from list -Dialoges darstellt...
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 11.06.2007 - 11:04    Titel: Antworten mit Zitat

Folker hat Folgendes geschrieben:
Oh ja - nur fraglich wie der Benutzer die bedeutungstragende Rolle mehrerer identischer Werte erkennen soll - nehm ich nun die erste Zwei oder doch lieber die zweite Zwei Lach lach ?

Nun sei doch nicht so kurzsichtig. Das hängt doch von der Frage ab. "Welcher Position in der Liste der momentanen Einträge soll der neue erscheinen?" könnte zum Beispiel eine asäquate Frage sein, bei der der Text der Listenelemente weniger relevant ist, als die Position. Und genau aufgrund dieser Fragestellung ist der Handler auch damals entstanden.

Folker hat Folgendes geschrieben:
Meinst Du Dein choose from list snippet? Also nach einem flüchtigen Blick darauf meinte ich zwei repeat-loops wahrgenommen zu haben?

Habe ich das abgestritten? Lies bitte nochmal und dann schau bitte etwas weniger flüchtig hin. Dem geübten Auge wird nicht entgehen, daß die erste repeat Schleife die Elemente mit der angesprochenen Nummer versieht (mach das mal ohne Schleife, dann bist Du ganz schnell bei Rekursionen). Die Zweite führt die Nachbehandlung durch, d.h. aus den ausgewählten Einträgen wird die Nummer extrahiert. Es wird nicht der passende Eintrag gesucht.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Folker
•---->
•---->


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

BeitragVerfasst am: 11.06.2007 - 11:12    Titel: Antworten mit Zitat

Oh ich glaube, dass hat weniger mit Kurzsichtigkeit denn mit klarer Benutzerführung zu tun. Eine Unterscheidung solte nicht anhand der Fingerzähl-Variable erfolgen. Im Normalfall werde ich (wir?) eben genau dafür bezahlt, dass der Kunde eine klare Abfrage erhält, welche er ohne Hirndiarroe zu beantworten weiß. Nur dann kann auch ein Programm klare und reproduzierbare Ergebnisse liefern.
_________________
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 X Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
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