[GastForen Programmierung/Entwicklung AppleScript alle erste Werten von allen Listen in derListe

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

alle erste Werten von allen Listen in derListe

jekyll
Beiträge gesamt: 2039

28. Okt 2015, 16:53
Beitrag # 1 von 16
Bewertung:
(4250 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Allerseits,
ich bin bei dieser Aufgabe wieder stecken geblieben.
Ich würde gerne die jeder erste Wert von eine Liste von einer Liste anzeigen lassen.
Wie müsste dieser Formulierung aussehen?

Code
set liste1 to {"name1", "beruf", {"telefon1", "telefon2"}, {"stasse", "haus", "plz"}} 
set liste2 to {"name2", "beruf", {"telefon1", "telefon2"}, {"stasse", "haus", "plz"}}
set liste3 to {"name3", "beruf", {"telefon1", "telefon2"}, {"stasse", "haus", "plz"}}
set meineListen to {liste1, liste2, liste3}

set meinAuswahl to (choose from list first item of every list of meineListen with prompt "Verarbeitung" with title "Listen") as text


In würde gerne hier die name1, name2, name3 in der liste zum Auswahl haben.

So habe ich es auch probiert:
Code
set liste1 to {names:{"name1"}, beruf:{"beruf"}, tel:{"telefon1", "telefon2"}, adr:{"stasse", "haus", "plz"}} 
set liste2 to {names:{"name2"}, beruf:{"beruf"}, tel:{"telefon1", "telefon2"}, adr:{"stasse", "haus", "plz"}}
set liste3 to {names:{"name3"}, beruf:{"beruf"}, tel:{"telefon1", "telefon2"}, adr:{"stasse", "haus", "plz"}}
set meineListen to {liste1, liste2, liste3}

set meinAuswahl to (choose from list (every list of meineListen whose name is "names") with prompt "Verarbeitung" with title "Listen") as text

Danke schon mal
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;

(Dieser Beitrag wurde von jekyll am 28. Okt 2015, 17:06 geändert)
X

alle erste Werten von allen Listen in derListe

Hans Haesler
  
Beiträge gesamt: 5797

28. Okt 2015, 19:04
Beitrag # 2 von 16
Beitrag ID: #544035
Bewertung:
(4189 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor

versuche es bitte mal damit:

Code
set dialogListe to {} 
set liste1 to {"name1", "beruf", {"telefon1", "telefon2"}, {"strasse", "haus", "plz"}}
set liste2 to {"name2", "beruf", {"telefon1", "telefon2"}, {"strasse", "haus", "plz"}}
set liste3 to {"name3", "beruf", {"telefon1", "telefon2"}, {"strasse", "haus", "plz"}}
set end of dialogListe to item 1 of liste1
set end of dialogListe to item 1 of liste2
set end of dialogListe to item 1 of liste3

set meinAuswahl to (choose from list dialogListe with prompt "Verarbeitung" with title "Listen") as string

Gruss, Hans


als Antwort auf: [#544034]

alle erste Werten von allen Listen in derListe

jekyll
Beiträge gesamt: 2039

28. Okt 2015, 19:15
Beitrag # 3 von 16
Beitrag ID: #544036
Bewertung:
(4185 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
vielen Dank für die Antwort.

Ich habe gehofft die ganzen Liste als text of meineAuswahl zurück zu erhalten. Geht das auch oder braucht es eine repeat schleifen?
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#544035]

alle erste Werten von allen Listen in derListe

Hans Haesler
  
Beiträge gesamt: 5797

28. Okt 2015, 20:40
Beitrag # 4 von 16
Beitrag ID: #544038
Bewertung:
(4136 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

in Deiner Anfrage schreibst Du

Zitat In würde gerne hier die name1, name2, name3 in der liste zum Auswahl haben.

Diese drei Strings werden von meinem Vorschlag angeboten.

Also ... ohne genau zu wissen, was Du vorhast ... vielleicht hilft dies:

Code
set dialogListe to {} 
set liste1 to {"name1", "beruf", "telefon1", "telefon2", "stasse", "haus", "plz"}
set liste2 to {"name2", "beruf", "telefon1", "telefon2", "stasse", "haus", "plz"}
set liste3 to {"name3", "beruf", "telefon1", "telefon2", "stasse", "haus", "plz"}
repeat with i from 1 to count of liste1
set end of dialogListe to item i of liste1
set end of dialogListe to item i of liste2
set end of dialogListe to item i of liste3
end repeat

set meinAuswahl to (choose from list dialogListe with prompt "Verarbeitung" with title "Listen") as string

Oder das:

Code
set dialogListe to {} 
set liste1 to {"name1", "beruf", "telefon1", "telefon2", "stasse", "haus", "plz"}
set liste2 to {"name2", "beruf", "telefon1", "telefon2", "stasse", "haus", "plz"}
set liste3 to {"name3", "beruf", "telefon1", "telefon2", "stasse", "haus", "plz"}

set AppleScript's text item delimiters to {", "}
set end of dialogListe to every item of liste1 as string
set end of dialogListe to every item of liste2 as string
set end of dialogListe to every item of liste3 as string
set AppleScript's text item delimiters to {""}

set meinAuswahl to (choose from list dialogListe with prompt "Verarbeitung" with title "Listen") as string

Aber für beide Lösungen müssen die beiden Listen (Telefonnummern und Adresse) in der Liste aufgelöst werden.

Gruss, Hans


als Antwort auf: [#544036]

alle erste Werten von allen Listen in derListe

kkauer
Beiträge gesamt: 661

28. Okt 2015, 22:25
Beitrag # 5 von 16
Beitrag ID: #544039
Bewertung:
(4084 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hans, Variante 1 ist definitiv kapøtt …


als Antwort auf: [#544038]

alle erste Werten von allen Listen in derListe

jekyll
Beiträge gesamt: 2039

30. Okt 2015, 20:09
Beitrag # 6 von 16
Beitrag ID: #544083
Bewertung:
(3964 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Ich habe eine csv Datei in dem sind Kunden spezifische Daten so:

kunde1;kunde1Adr;kunde1InPfad;kunde1OutPfad monk;mcs, st, d;72,37.5,67.5
kunde2;kunde2Adr;kunde2InPfad;kunde2OutPfad;mcs, d, st;monk;65, 22.5, 52.5
kunde3;kunde3Adr;kunde3InPfad;kunde3OutPfad monk;mcs, st, d;72,37.5,67.5
kunde4;kunde4Adr;kunde4InPfad;kunde4OutPfad;mcs, d, st;monk;65, 22.5, 52.5

Ich hätte gerne mit den Choose from List mein Auswahl getroffen am liebsten so dass nur die Firmennamen angezeigt werden aber die ganzen Spezifikationen in den Variable gelesen werden wie hier:

Code
property firmenFile : "macHD:FirmList.csv" 

set meinListe to read file firmenFile using delimiter return from 1
set meineAuswahl to (choose from list meinListe with prompt "Verarbeitung" with title "Listen ") as text

Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#544038]

alle erste Werten von allen Listen in derListe

Hans Haesler
  
Beiträge gesamt: 5797

30. Okt 2015, 21:31
Beitrag # 7 von 16
Beitrag ID: #544084
Bewertung:
(3934 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

das Folgende sollte schon mal in die richtige Richtung gehen:

Code
property firmenFile : "macHD:FirmList.csv" 

set meinListe to read file firmenFile using delimiter return from 1

set dialogListe to {}

set AppleScript's text item delimiters to {";"}

repeat with n from 1 to count of meinListe
set end of dialogListe to (text item 1 of item n of meinListe)
end repeat

set AppleScript's text item delimiters to {""}

set meineAuswahl to item 1 of (choose from list dialogListe with prompt "Verarbeitung" with title "Listen ") as text

repeat with n from 1 to count of dialogListe
if item n of dialogListe is meineAuswahl then exit repeat
end repeat

set dResult to item n of meinListe

Jetzt muss noch etwas mit dem letzten Ergebnis gemacht werden.

Gruss, Hans


als Antwort auf: [#544083]

alle erste Werten von allen Listen in derListe

kkauer
Beiträge gesamt: 661

31. Okt 2015, 17:34
Beitrag # 8 von 16
Beitrag ID: #544090
Bewertung:
(3850 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Code
set meinListe to read file firmenFile using delimiter return from 1 

Das ist bzgl. Text-Encoding und den Zeilenenden evtl. problematisch. Das Beispiel kam ja direkt von Sándor, aber MacRoman als Encoding und CR als Zeilenende sind heute™ schon eher ungewöhnlich und mit anderen Varianten käme diese "Lösung" nicht klar.

Code
set meineAuswahl to item 1 of (choose from list dialogListe with prompt "Verarbeitung" with title "Listen ") as text 

"item 1 of" wirft einen Fehler wenn der Auswahldialog legitim abgebrochen wird! Ohne diesen "Trick" würde im Falle des gezielten Abbruchs des Auswahldialogs aber die Schleife durchlaufen werden und der letzte Eintrag der Liste käme als falsches Ergebnis zurück.


als Antwort auf: [#544084]
(Dieser Beitrag wurde von kkauer am 31. Okt 2015, 17:35 geändert)

alle erste Werten von allen Listen in derListe

jekyll
Beiträge gesamt: 2039

1. Nov 2015, 21:16
Beitrag # 9 von 16
Beitrag ID: #544111
Bewertung:
(3738 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
Vielen Dank,

ich dachte es gebe auch ne einfacheren Befehl in einer Zeile oder so, deshalb hatte ich thread eröffnet.
Aber so hast´s mir auch geholfen.

Ich habe mein Skript jetzt so umgeschrieben.

Code
property firmenFile : "macHD:FirmList.csv"  
set meinListe to read file firmenFile using delimiter return from 1

set dialogListe to {}

set AppleScript's text item delimiters to {";"}

repeat with n from 1 to count of meinListe
set end of dialogListe to (text item 1 of item n of meinListe)
end repeat

set AppleScript's text item delimiters to {""}
try
set meineAuswahl to item 1 of (choose from list dialogListe with prompt "Verarbeitung" with title "Listen ")
on error
set meineAuswahl to 0
end try

if meineAuswahl is not 0 then
repeat with n from 1 to count of dialogListe
if item n of dialogListe is meineAuswahl then exit repeat
end repeat
set dResult to item n of meinListe
else
activate application "Script Debugger"
end if

Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#544084]

alle erste Werten von allen Listen in derListe

Hans Haesler
  
Beiträge gesamt: 5797

1. Nov 2015, 23:02
Beitrag # 10 von 16
Beitrag ID: #544112
Bewertung:
(3694 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

wenn der Anwender auf den "Abbruch"-Button klickt, ist das Ergebnis false.

Deshalb ist es üblich, das Ergebnis zu testen und bei einem false mit error number -128 die Ausführung abzubrechen.

Code
set dialogErgebnis to (choose from list dialogListe with prompt "Verarbeitung" with title "Listen") 
if dialogErgebnis is not false then
set meineAuswahl to dialogErgebnis as string
else
error number -128
end if

repeat with n from 1 to count of dialogListe
if item n of dialogListe is meineAuswahl then exit repeat
end repeat

set dResult to item n of meinListe


Gruss, Hans


als Antwort auf: [#544111]

alle erste Werten von allen Listen in derListe

kkauer
Beiträge gesamt: 661

2. Nov 2015, 20:43
Beitrag # 11 von 16
Beitrag ID: #544145
Bewertung:
(3588 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Deshalb ist es üblich, das Ergebnis zu testen und bei einem false mit error number -128 die Ausführung abzubrechen.

"false" wird doch "geliefert" und/aber du testest und generierst (d)ein eigenes "false". Warum ist das empfehlenswert?


als Antwort auf: [#544112]
(Dieser Beitrag wurde von kkauer am 2. Nov 2015, 20:44 geändert)

alle erste Werten von allen Listen in derListe

Hans Haesler
  
Beiträge gesamt: 5797

3. Nov 2015, 07:34
Beitrag # 12 von 16
Beitrag ID: #544146
Bewertung:
(3523 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

ich ziehe es vor, die Ausführung abzubrechen. Sonst muss der Rest des Codes mit if / end if umgeben werden.
Und das sind meistens mehr als nur die vier Zeilen im aktuellen Beispiel.

Code
set meineAuswahl to (choose from list dialogListe with prompt "Verarbeitung" with title "Listen") 

if meineAuswahl is not false then
repeat with n from 1 to count of dialogListe
if item n of dialogListe is meineAuswahl as string then exit repeat
end repeat
set dResult to item n of meinListe
end if

Gruss, Hans


als Antwort auf: [#544145]

alle erste Werten von allen Listen in derListe

kkauer
Beiträge gesamt: 661

3. Nov 2015, 20:05
Beitrag # 13 von 16
Beitrag ID: #544183
Bewertung:
(3460 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] ich ziehe es vor, die Ausführung abzubrechen.

Latürnich, aber ein legitimer Abbruch ist doch kein Fehler und false ist false ;)

Antwort auf: Sonst muss der Rest des Codes mit if / end if umgeben werden.
Und das sind meistens mehr als nur die vier Zeilen im aktuellen Beispiel.

Ich übersehe da bestimmt etwas, aber wäre ein Einzeiler wie
Code
if meineAuswahl is false then return 

nicht ausreichend?

Deine Präferenz resultiert evtl. aus "komplexeren" Projekten, dennoch ist ein Abbruch für mich kein Fehler …


als Antwort auf: [#544146]
(Dieser Beitrag wurde von kkauer am 3. Nov 2015, 20:05 geändert)

alle erste Werten von allen Listen in derListe

Hans Haesler
  
Beiträge gesamt: 5797

3. Nov 2015, 20:54
Beitrag # 14 von 16
Beitrag ID: #544184
Bewertung:
(3440 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mein lieber Karsten ...,

stimmt, 'return' wäre hier ausreichend.
Aber ich verwende nun mal lieber den expliziten Abbruch-Befehl.
Ein 'return' setze ich ein, wenn der Aufruf ein Ergebnis erwartet.

Gruss, Hans


als Antwort auf: [#544183]

alle erste Werten von allen Listen in derListe

kkauer
Beiträge gesamt: 661

3. Nov 2015, 21:33
Beitrag # 15 von 16
Beitrag ID: #544185
Bewertung:
(3410 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Mein lieber Karsten ...,

stimmt, 'return' wäre hier ausreichend.
Aber ich verwende nun mal lieber den expliziten Abbruch-Befehl.
Ein 'return' setze ich ein, wenn der Aufruf ein Ergebnis erwartet.

Gruss, Hans


???

Wir können/sollten das ggf. separat erörten, denn ich verstehe deine Ansätze und Argumentationen leider nicht …

Und noch einmal: Ein Abbruch ist doch kein Fehler!


als Antwort auf: [#544184]
(Dieser Beitrag wurde von kkauer am 3. Nov 2015, 21:43 geändert)
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
01.03.2021 - 05.03.2021

Persönlichkeitsentwicklung

Online
Montag, 01. März 2021, 00.17 Uhr - Freitag, 05. März 2021, 00.18 Uhr

Webinar

Personal Power Coaching - Um was geht es? ​ Potenzialentfaltung: Potenzial entdecken und entfalten Talente entdecken: Deine Talente und Fähigkeiten erkennen und loslegen Gewohnheiten: schlechte Gewohnheiten durch Positive ersetzen Selbstbewusstsein stärken: Dein Bewusstsein stärken Eigendynamik entwickeln: Mehr Erfolg durch Eigenverantwortung & Disziplin Ängste kontrollieren: Ängste als Antrieb nutzen Entscheidungen treffen: Mit mehr Mut an die Sache ran! Lebensenergie steigern: Deine Lebensenergie steigern und aufrechterhalten Ziele erreichen: Ziele setzen und übertreffen! Motivationssteigerung: Mehr Erfolg durch Selbstmotivation Selbstvertrauen: Selbstvertrauen auf- und ausbauen

Details:
https://www.snfa.ch/swiss-personal-power-birolisik

Ja

Organisator: Birol Isik

Kontaktinformation: Birol Isik, E-Mailinfo AT snfa DOT ch

https://www.snfa.ch/swiss-personal-power-birolisik

Neuste Foreneinträge


Update Problem

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Illustrator Datei aktualisieren

Schwarz überdruckt nicht

Schwarz überdruckt nicht

CC 2020: Problem mit Textumfluss mit verankerten Objekten

Bilder verschieben sich nach dem Speichern und Kopiern der Datei

Optionsfelder abhängig machen von Kontrollkästchen

InDesign CC21 sperrt Taskleiste und Programme

Verknüpfung mit Format aufheben
medienjobs