hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Anonym
Beiträge: 22827
6. Dez 2003, 07:09
Beitrag #1 von 4
Bewertung:
(933 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordner erzeugen - Seitenzahl


Hallo Hans,

wie kann man per Script mehrere Ordner anlegen, wobei name und Menge variieren

Beispiel:
w04s001
w04s002003
w04s004005
w04s006007
w04s008009
w04s010011
w04s012

  - zu Beginn sollte der name abgefragt werden "w04"
  - die Seitenmenge "1 - 12"
  - sowie das Zielverzeichnis, in dem die Ordner erstellt werden

Die erste u. letzte Seite sind immer Einzelseiten

Gruss willem Top
 
X
Hans Haesler  M  p
Beiträge: 5483
6. Dez 2003, 10:10
Beitrag #2 von 4
Beitrag ID: #418486
Bewertung:
(932 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordner erzeugen - Seitenzahl


Hallo Willem,

gar nicht so einfach, Deine Aufgabe! Aber ich glaube, dass folgendes Script Deine Erwartungen erfüllt. Es ist ziemlich lang geworden, weil verschiedene Tests zwingend eingefügt werden müssen. Dazu habe ich in meiner bekannt anwenderfreundlichen Art versucht, dass bei Tipp-Fehlern nicht abgebrochen, sondern der Dialog erneut gezeigt wird. Mit der letzten Eingabe, welche dann leicht korrigiert werden kann.

Was nicht getestet wird: ob der Wert der Startseite nicht grösser ist als jener der Endseite (in diesem Fall geschieht … nichts). Und auch ob der Wert der Startseite ungerade und jener der Endseite gerade ist. Im übrigen ist der Code nicht kommentiert, weil er – glaube ich – selbsterklärend ist. Aber wenn Du etwas nicht verstehst, dann nur fragen.
---
set aName to ""
set okay to 0
repeat while okay = 0
  set aName to text returned of (display dialog "Name" default answer aName)
  set okay to 1
  if aName contains ":" then
    display dialog "Der Name darf
keinen Doppelpunkt enthalten." buttons "OK" default button 1 with icon 2
    set okay to 0
  end if
  if (count of aName) > 24 then
    display dialog "Der Name ist zu lang.
Bitte nicht mehr als 24 Zeichen." buttons "OK" default button 1 with icon 2
    set okay to 0
  end if
end repeat

set aRange to ""
set nPages to ""
set okay to 0
repeat while okay = 0
  set nPages to text returned of (display dialog ¬
    "Erste und letzte Seite (Beispiel: 1-12)" default answer nPages)
  set okay to 1
  repeat with i from 1 to count nPages
    if character i of nPages is in "0123456789" then
      set aRange to aRange & character i of nPages
    else
      set aRange to aRange & " "
    end if
  end repeat
  try
    set startPage to (word 1 of aRange) as integer
    set endPage to (word 2 of aRange) as integer
  on error
    display dialog "Bitte die Start- und die Schluss-Seite
eingeben." buttons "OK" default button 1 with icon 2
    set okay to 0
  end try
end repeat

set targetFolder to (choose folder with prompt "Zielordner wählen") as string

repeat with i from startPage to endPage
  if i = startPage or i = endPage then
    set folderName to aName & "s" & text -3 thru -1 of ("00" & i)
    makeFolder(targetFolder, folderName)
  else
    if i mod 2 = 0 then
      set folderName to aName & "s" & text -3 thru -1 of ("00" & i) & text -3 thru -1 of ("00" & (i + 1))
      makeFolder(targetFolder, folderName)
    end if
  end if
end repeat

on makeFolder(targetFolder, folderName)
  set folderExists to false
  try
    alias (targetFolder & folderName & ":")
    set folderExists to true
  end try
  if not folderExists then
    tell application "Finder" to make new folder at folder targetFolder with properties {name}
  else
    display dialog "Der Ordner »" & folderName & "« existiert schon." with icon 2
  end if
end makeFolder
---
Ganz am Schluss wird getestet, ob der Ordner schon existiert. Wenn ja, wird ein Dialog gezeigt. Ein Klick auf "Abbruch" beendet die Ausführung, beim Klick auf "OK" wird zum nächsten Ordner übergegangen.

Hans Haesler <hsa@ringier.ch>
als Antwort auf: [#418485] Top
 
Anonym
Beiträge: 22827
6. Dez 2003, 13:55
Beitrag #3 von 4
Beitrag ID: #418487
Bewertung:
(932 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordner erzeugen - Seitenzahl


Guten Tag Hans,

hab gerade dein Script entdeckt und sofort ausprobiert.
Einfach klasse, läuft wie geschmiert!!!

Danke Hans
willem :D
als Antwort auf: [#418485] Top
 
Hans Haesler  M  p
Beiträge: 5483
6. Dez 2003, 22:24
Beitrag #4 von 4
Beitrag ID: #418488
Bewertung:
(932 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordner erzeugen - Seitenzahl


Hallo Willem,

bitte sehr. :-) Etwas habe ich vergessen zu erwähnen: Die Werte der Start- und der Endseite können durch beliebige Zeichen getrennt sein. Früher pflegte ich die Antwort des Anwenders in 'word 1' und 'word 2' zu zerlegen. Dies ist aber je nach Trennzeichen problematisch, weil zum Beispiel der Trennungsstrich wie in "1-12" dem zweiten Wort zugeordnet wird und somit das Ergebnis verfälschen würde.

Meine neue Methode ist viel flexibler:
---
set aRange to ""
repeat with i from 1 to count nPages
  if character i of nPages is in "0123456789" then
    set aRange to aRange & character i of nPages
  else
    set aRange to aRange & " "
  end if
end repeat
---
Die Wiederholungsschleife geht das Ergebnis Zeichen um Zeichen durch: 'if character i of nPages is in "0123456789" then'... Wenn ein Zeichen eine Ziffer ist, dann wird diese der temporären Textkette 'aString' angehängt. Sonst ein Zwischenraum. Zugleich wird sichergestellt, dass später die "Worte" 1 und 2 problemlos in Ganzzahlen verwandelt werden können, weil deren Elemente schon auf Numeral geprüft worden sind.

Hans Haesler <hsa@ringier.ch>
als Antwort auf: [#418485] Top
 
X