[GastForen Programmierung/Entwicklung AppleScript Dateien umbenennen mit Hilfe einer Excel-Tabelle

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

Dateien umbenennen mit Hilfe einer Excel-Tabelle

tony_danza
Beiträge gesamt: 29

26. Mär 2018, 14:52
Beitrag # 31 von 37
Beitrag ID: #563134
Bewertung:
(4805 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Super,

vielen Dank!

Ich denke so können nun alle Mitleser nachvollziehen über was wir hier die ganze Zeit geredet haben.

Leider fehlt mir gerade die Zeit ein paar Fragen zum Script zu stellen, das werde ich aber machen sobald ich kann.

Manches ist mir nämlich noch nicht so ganz klar.

Trotzdem, bis hierhin ein riesen Dank noch mal Hans!
Dank deiner Hilfe kann ich mich meinem eigentlichen Job wieder widmen und muss nicht mehr so viel Zeit mit Dateien umbenennen verbringen ;)

viele Grüße
tony


als Antwort auf: [#563133]
X

Dateien umbenennen mit Hilfe einer Excel-Tabelle

tony_danza
Beiträge gesamt: 29

26. Mär 2018, 23:13
Beitrag # 32 von 37
Beitrag ID: #563142
Bewertung:
(4785 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

zu aller erst, habe ich eine allgemeine Verständnisfrage.

Du verwendest wiederholt Befehle wie:
Code
repeat with n from 1 to nFiles 
repeat with n from 2 to nItems
repeat with c from 1 to count of indexList
...

wofür stehen denn die Buchstaben?
In meiner Vorstellung steht n für number, i für index, c für ???

Stimmt das irgendwie? Also haben die Buchstaben irgendeine Bedeutung? Und wenn ja, sind die Buchstaben abhängig vom Inhalt der Liste?

In einer Zeile steht repeat with n from 2. Dem kann ich irgendwie nicht folgen. Warum denn nicht from 1?

Dann hast du folgende Zeile platziert:
Code
# die Anzahl Elemente zählen  
set nItems to count items of artNumList


Ist es denn notwendig die Anzahl der Elemente zu zählen? Oder dient das nur dazu, sich die Anzahl anzeigen zu lassen wenn man möchte?

Code
# Variablen initialisieren  
set noMatch to 0
set noCode to 0

Was genau bedeuten denn diese Zeilen?

Das findet ja weiter unten im Script noch Verwendung, allerdings werde ich nicht schlau daraus. Könntest du mir das noch bitte erklären?
Ich verstehe in diesen Zeilen
Code
on error  
set noCode to noCode + 1

eigentlich nur: set noCode to 0 + 1

Wenn ich das mit noCode und noMatch mal verstanden habe, dann werde ich auch schlau aus den nProb Zeilen.

Beim Handler hörts komplett auf. Ich nehme das einfach mal so hin, dass diese Zeilen die Liste sortieren. Das musst du mir auch nicht erklären. Irgendwann werde ich das schon verstehen. Man lernt nie aus ;)

Wäre aber super wenn du mir ein paar Antworten auf meine Fragen geben könntest.

Ich danke dir schon mal und vielen Dank noch mal für deine tolle Version des Scripts! Ich war begeistert zu sehen wie es unter Realbedingung läuft. Schnell und zuverlässig.

viele Grüße
tony


als Antwort auf: [#563133]

Dateien umbenennen mit Hilfe einer Excel-Tabelle

Hans Haesler
  
Beiträge gesamt: 5672

27. Mär 2018, 09:17
Beitrag # 33 von 37
Beitrag ID: #563144
Bewertung:
(4769 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tony,

*****
das n in 'repeat with n from 1 to nFiles' ist die Zählervariable.

Die Bedeutung von n kann ein Kürzel für number sein. Bei i wäre es iteration (= lat. "iterare" = "wiederholen").

Das i sollte im Forum vermieden werden, weil [i] der Code zum Kursivstellen ist. Jetzt scheint es repariert zu sein, aber eine Zeitlang war im geposteten Script das [i] verschwunden und sämtliche folgende Zeichen waren kursiv.

Der Variablen-Name kann aber auch aus mehreren Zeichen bestehen: 'repeat with tony from 1 to nFiles' :-)

Die Ein-Zeichen-Benennung stammt aus der Ur-Zeit, als ein Script nicht mehr als 32'000 Zeichen umfassen durfte. Das lernte einen, sparsam zu sein ... Bei ein paar Scripts musste ich auf sämtliches Kommentieren verzichten.

*****
Zitat In einer Zeile steht repeat with n from 2.

Das Script beginnt mit Reihe zwei, weil in der ersten Reihe Worte wie "Artikelnummer", "Farbcode" usw. stehen.

*****
Zitat Ist es denn notwendig die Anzahl der Elemente zu zählen?

Als ich mit dem Entwickeln von AppleScripts begann, wurde einem empfohlen, die Anzahl Elemente vorher, ausserhalb der Schleife zu zählen. Damit dieser Wert nicht ständig, bei jedem Umgang geholt werden muss. Ich konnte damals keine Bremswirkung feststellen und habe den Rat nicht befolgt.

Aber bei einem JavaScript wird die Ausführung beschleunigt. Deshalb übernahm ich dieses Vorgehen auch für AppleScript. Schon nur, dass die Startzeile der Schleife "sauberer" aussieht.

Beim vorliegenden Droplet wird 'nFiles' bei der erneuten Schleife durch die gedroppten Dateien nochmals verwendet.

*****
Code
# Variablen initialisieren 
set noMatch to 0
set noCode to 0

Diese Zeilen machen genau das, was der Kommentar darüber sagt. Damit der Wert einer Variablen im Script inkrementiert werden kann, muss ihr vorher ein Wert zugewiesen werden.

Deaktiviere mal diese zwei Zeilen (# davorsetzen oder --). Dann kommt bei der Ausführung prompt eine Fehlermeldung.

Zitat set noCode to 0 + 1

So ist es. Aber wenn die Null so eingesetzt wird, ist der Wert am Schluss nicht grösser als eins. Auch wenn z.B. vier Dateien nicht umbenannt wurden.

*****
Zitat Beim Handler hörts komplett auf. Ich nehme das einfach mal so hin, dass diese Zeilen die Liste sortieren.

Im Oktober 2004 hatte Martin Fischer eine Lösung von mir so kommentiert:

Zitat Wow!
Den QuickSort-Handler hast Du aber nicht nur für die PDF-Vereinigung aus dem Ärmel gezogen ...
Da wird mir ganz schwindelig, wenn ich den versuche nachzuvollziehen.
Klasse!

Meine Antwort damals:

Zitat Die QuickSort-Routine ist nicht meine Erfindung. Dies ist übrigens die Turbo-Version. Es gibt eine
langsamere. Die schnelle hat den Vorteil, dass sie wirklich schnell ist. Aber in gewissen Fällen
habe ich damit Probleme gehabt. Das Resultat war leer. Ich muss mal versuchen, dies nachzustellen.

Bei der Turbo-Version ist zu Beginn des Handlers ein Script-Objekt definiert. Dessen Einsatz sorgt für viel mehr Geschwindigkeit.

*****
Zitat Ich danke dir schon mal und vielen Dank noch mal für deine tolle Version des Scripts! Ich war begeistert zu sehen wie es unter Realbedingung läuft. Schnell und zuverlässig.

Bitte sehr. Ich hoffe, dass es sich weiterhin bewähren wird. Doch wie immer gilt: Einsatz auf eigene Gefahr! Am besten immer vorher mindestens ein Backup der Dateien anlegen.

Gruss, Hans


als Antwort auf: [#563142]

Dateien umbenennen mit Hilfe einer Excel-Tabelle

tony_danza
Beiträge gesamt: 29

27. Mär 2018, 11:42
Beitrag # 34 von 37
Beitrag ID: #563148
Bewertung:
(4756 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

dank deiner Erklärungen wird mir nun so einiges klar.

Zitat Die Bedeutung von n kann ein Kürzel für number sein. Bei i wäre es iteration (= lat. "iterare" = "wiederholen").


Mir war nicht bewusst, dass ich irgendeine Zählervariable verwenden kann, ich dachte die Buchstaben hätten eine Bedeutung, abhängig vom Inhalt.

----
Jetzt machts auch klick bei 'repeat with n from 2'. An die Informationen in der ersten Zeile hatte ich nicht gedacht.


Ich hoffe ich kann daraus lernen und meine zukünftigen Scripts einfacher bzw. schlauer gestalten.

Auf jeden Fall ist AppleScript ein Helferlein den man nicht außer acht lassen sollte. AS kann in jedem Bereich zum Einsatz kommen und ich freue mich auf weitere Automatismen um meine Prozesse zu optimieren.

Vielen Dank für deine schnelle und kompetente Unterstützung.

gruß
tony


als Antwort auf: [#563144]

Dateien umbenennen mit Hilfe einer Excel-Tabelle

Hans Haesler
  
Beiträge gesamt: 5672

27. Mär 2018, 13:22
Beitrag # 35 von 37
Beitrag ID: #563153
Bewertung:
(4748 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tony,

bitte sehr.

Nun, für eine "normale" repeat-Schleife braucht es drei Dinge:
– Zählervariable;
– Startwert;
– Stopwert.

Code
repeat with n from 1 to 3 
display dialog n
end repeat

Der Dialog zeigt den Wert von 'n' an.

Eine Schleife kann man auch rückwärts laufen lassen. Das ist notwendig, wenn ein Inhalt verändert wird.

Code
repeat with n from 3 to 1 by -1 
display dialog n
end repeat

Der Zusatz 'by -1' ist zwingend.

Falls Du Dich näher mit AppleScript befassen willst, dann empfiehlt sich ein gezieltes Studium.
Mit einem Buch. Oder einem Kursus.

Für beide findest Du genug Stoff bei Peter Fischer (alias Snow): http://www.fischer-bayern.de/phpBB2/index.php

Rechts oben sind acht Links. Der vierte ist "AppleScript-Bücher".
Rechts Mitte: Ein Link für das ebook "AppleScript für absolute Starter"
Rechts unten findest Du den Workshop (Themen "Dialoge", "Variablen" usw).

Happy learning! :-)

Gruss, Hans


als Antwort auf: [#563148]

Dateien umbenennen mit Hilfe einer Excel-Tabelle

tony_danza
Beiträge gesamt: 29

27. Mär 2018, 15:17
Beitrag # 36 von 37
Beitrag ID: #563157
Bewertung:
(4736 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

dass eine repeat-Schleife rückwärts laufen kann ist mir neu. Aber vielen Dank für den Tipp! Früher oder später werde ich bestimmt mal darauf zurückgreifen müssen.

Auf der Seite die du verlinkt hast war ich auch schon einige male und das hat mir sehr geholfen.

Bücher zu AppleScript habe ich mir noch nicht gekauft, das wäre aber nicht verkehrt. Bisher habe ich versucht aus Forenbeiträgen zu lernen und aus dem eBook.

Da ich aber nicht aufhören möchte AppleScript zu lernen, sind deine Tipps zu den Büchern bestimmt nicht verkehrt.

Danke dir und viele Grüße
tony


als Antwort auf: [#563153]

Dateien umbenennen mit Hilfe einer Excel-Tabelle

Hans Haesler
  
Beiträge gesamt: 5672

27. Mär 2018, 16:18
Beitrag # 37 von 37
Beitrag ID: #563161
Bewertung:
(4727 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tony,

bitte sehr.

Der Zusatz by kann auch in einer vorwärtslaufenden Schleife eingesetzt werden.

Nur ungerade Werte anzeigen:

Code
repeat with n from 1 to 5 by 2 
display dialog n
end repeat

Nur Objekte mit geraden Werten behandeln:

Code
repeat with n from 2 to 6 by 2 
display dialog n
end repeat

Es gibt noch andere Arten von Schleifen (z.B. with x in aList oder eine Konstruktion mit while). Doch diese wirst Du selber finden.

Gruss, Hans


als Antwort auf: [#563157]
X
Hier Klicken

Aktuell

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
24.01.2019

Impressed GmbH, Hamburg
Donnerstag, 24. Jan. 2019, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. halbstündigen Webinar das neue Enfocus Switch PDF Review Modul zur Freigabe von PDF-Druckdaten vor. Wir zeigen Ihnen, wie Sie die Lösung in bestehende Enfocus Switch-Workflows einbinden und somit die Freigabeprozesse mit Ihren Kunden erheblich beschleunigen können.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=250

Enfocus Switch PDF Review Modul
Veranstaltungen
24.01.2019

Hochschule der Medien, Stuttgart
Donnerstag, 24. Jan. 2019, 18.00 Uhr

Vortrag

Wie jedes Jahr im Januar besucht uns Monika Gause mit Neuigkeiten zu Illustrator und aus der restlichen Publishing-Welt. Der Abend ist pickepacke voll: Zunächst zeigt uns Monika alles Neue, was uns Adobe in Illustrator 2019 gepackt hat. Anschließend zeigt sie verschiedenen Möglichkeiten der realistischen Darstellung: Verläufe, Verlaufsgitter, Angleichungen und wie man sie in den Griff bekommt. Dazu gehört auch die Vorstellung des kostenlosen Plugin Mesh Tormentor. Abgeschlossen wird mit dem "Best-of" aus einem Infografik/Dokumentation-Seminar, das Monika letztes Jahr in München gehalten hat. Es ist nicht nötig Tickets zu kaufen oder eine Registrierung durchzuführen. Komme einfach vorbei! Wir freuen uns Katharina Frerichs und Christoph Steffens

Kostenlos, Ticketkauf oder Anmeldung ist nicht nötig.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

Illustrator mit Monika Gause
Hier Klicken