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

rekursives droplet

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1067

BeitragVerfasst am: 30.05.2007 - 12:35    Titel: rekursives droplet Antworten mit Zitat

Da ich es immer mal wieder brauche, hier ein allgemeines "rekursives" droplet.

"rekursiv" da es nicht wirklich rekursiv arbeitet sondern die Elemente, die noch abzuarbeiten sind, in einer Liste mitführt.

Dies ist natürlich nur ein Muster. Es müsssen an entsprechender Stelle natürlich noch Handler eingebaut werden.

Es fehlt zum Beispiel der Test, ob die entsprechende Datei überhaupt verarbeitet werden kann und die Verarbeitung selbst muß natürlich auch für den jeweiligen Verwendungszweck angepaßt werden.

Ich hoffe, daß es dennoch ab und an mal nützlich ist, das Muster hier zur Verfügung zu haben.

Zitat:
on run
   set something to choose file with multiple selections allowed
   -- oder
   set something to choose folder with multiple selections allowed
   display dialog process_recursively(something, true)
end run

on open something
   display dialog process_recursively(something, true)
end open

to process_recursively(the_thing, signal_error)
   -- eine liste?
   if list is class of the_thing then
      -- mit nur einem Element?
      if (count of the_thing) is 1 and not folder of (info for first item of the_thing) then
         -- Dann nur dieses Element behandeln
         return process_recursively(first item of the_thing, signal_error)
      end if
      
      set zaehler to 0
      -- ansonsten jedes Element behandeln
      repeat while (count of the_thing) > 0
         -- hol das erste
         set element to first item of the_thing
         -- und nimm es aus der Liste
         set the_thing to the rest of the_thing
         -- ist es ein folder?
         if folder of (info for element) then
            tell application "Finder"
               -- dann hole alle files aus dem Folder
               -- und stell sie vorne in die Liste
               copy (every file of element) to the beginning of the_thing
               -- stelle alle folder nach hinten
               copy (every folder of element) to the end of the_thing
            end tell
         else
            -- kein folder, dann behandeln
            set zaehler to zaehler + process_recursively(element, false)
         end if
      end repeat
      return zaehler
   end if
   
   -- hier die Behandlung der einzelnen Elemente
   -- wenn gewünscht einen passenden Test eintragen
   if das_kann_verarbeitet_werden(the_thing) then
      -- und dann die Routine zur Behandlung
      -- einzelner Dateien aufrufen
      -- oder direkt hier einsetzen
      process(the_thing)
      return 1
   end if
   
   -- Sonst ein Fehler
   if signal_error then
      display alert "Keine Ahnung, wie ich damit umgehen soll: " & (displayed name of (info for the_thing)) as informational
      error -128
   end if
   return 0
end process_recursively

_________________
"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
jiuer7845
•---->
•---->


Anmeldedatum: 06.04.2021
Beiträge: 521

BeitragVerfasst am: 09.10.2021 - 09:40    Titel: Antworten mit Zitat

Travis Scott Jordan 1

Yeezy Shoes

Yeezy Supply

Air Jordans

Jordan 11s

Jordan 11

Jordans Shoes

Retro Jordans

Moncler Jackets

Nike Air Jordan

Moncler Outlet

Off-White

Yeezy 450

Yeezy 500

Yeezy

Yeezy 700

Yeezy Supply

Off White Shoes

NFL Jerseys

Jordan Shoes

Jordans Shoes

Yeezy 350 V2

Adidas Yeezy

Yeezy

Yeezy 700

Yeezy

Nike Outlet

Yeezy Shoes

UNC Jordan 1

Jordan 13

Jordan AJ 1

Yeezy Foam Runner

Nike Outlet

Nike Outlet

AJ1

Yeezy Supply

Yeezy Zebra

Jordan 1 Low

Air Jordans

Pandora Charms

Adidas UK

Nike Store

Adidas Yeezy Official Website

Yeezy 350

Jordan 1

Nike Outlet

YEEZY SUPPLY

Pandora Charms

Nike Shoes

Nike Outlet

Pandora Outlet

Jordan Shoes

Air Jordan 4

Pandora Jewelry

Pandora Rings

Pandora Bracelets

Adidas Yeezy

Yeezy

Pandora Charms

Nike Outlet

Adidas Yeezy

Air Max 720

Nike Air Max 270

Air Jordan 11

Air Force 1

Air Jordan 1

Nike Jordans

Jordan 1s

Pandora UK

Nike Jordan 1

Jordan 1

Yeezy Slides

Nike Air VaporMax

Nike Vapormax Flyknit

Air Jordan 1 Mid

Adidas yeezy

Yeezy Shoes

Adidas Yeezy

Yeezy 350

Nike Shoes

Nike Outlet

Yeezy


NFL Shop Official Online Store

Nike UK

Yeezy

Yeezy 350
_________________
https://www.pandoras-jewelry.com/ Pandora Jewelry
https://www.pandoraoutlet.org/ Pandora Outlet
https://www.jordanshoess.com/ Jordan Shoes
https://www.air-jordan4.com/ Air Jordan 4
https://www.charms-pandora.com/ Pandora Charms
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets 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