Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 23.09.2002 - 12:47 Titel: Daten mit Droplet verschieben! |
|
|
Hallo Forum,
ich hab da ein kleines Droplet, das Dateien, die auf das Droplet gezogen werden in einen anderen Ordner verschiebt. Jetzt möchte ich aber nur Dateien verschieben lassen, die einen bestimmten Namen haben.
Wenn ich das mit IF mache, dann dauert das ja ewig, weil es ja mehrere verschiedene Dateinamen sind. Also:
if fileName = "name1.jpg" then...
if fileName = "name2.jpg" then...
-> bei sagen wir mal 40 verschiedenen Dateinamen ist das ganz schön viel...
Wie bekomm ich das besser hin? Vielen Danke im Voraus!
CU, sideshow _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 23.09.2002 - 13:27 Titel: Daten mit Droplet verschieben! |
|
|
HI
Um dir beantworten zu können, ob es eine bessere Möglichkeit gibt, müsste ich erst wissen, ob du bestimmte Namenskonventionen einhälst.
Also im Klartext: Sind deine Dateien namentlich irgendwie formatiert?
Dann könntest du nämlich mit contains arbeiten (z.B.)
if theName contains "2" then
Dann werden alle Dateien, die eine 2 enthalten verschoben etc.
Beschreib mal deine Dateien bisschen genauer.
Gruß Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 24.09.2002 - 08:19 Titel: Daten mit Droplet verschieben! |
|
|
Hi Pesse,
also die Dateien sehen so aus:
sind glaub ich insgesamt 27 und splitten sich immer in 3 auf (sieht dann so aus:)
"aubing1.jpg" / "aubing2.jpg" / "aubing3.jpg"
"laim1.jpg" / "laim2.jpg" / "laim3.jpg"
und so geht das dann weiter. _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 24.09.2002 - 09:23 Titel: Daten mit Droplet verschieben! |
|
|
Hm, in welche Ordnerstruktur müssen sie denn übernommen werden? Vielleicht kann man da was machen. Hab da schon so eine Idee, weiß aber nicht, ob das mit deiner Ordnerstruktur passt.
Erklär einfach mal noch bisschen genauer ;o)
Gruß Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 24.09.2002 - 10:07 Titel: Daten mit Droplet verschieben! |
|
|
So, jetz ganz genau!
Also es ist so:
Die Redakteure bei uns sollen jetz auch die Redaktion fürs Internet machen und die Bilder die halt in der HP sind, werden von einem Programm automatisch hochgeladen und dann mit PHP dann irgendwie automatisch nachgeladen usw. (ich hab da nich so den genauen peil, des macht unser Webmaster).
Auf alle Fälle geht es darum, das der Redakteur dem Bild das er braucht den richtigen Namen gibt und es dann auf das Droplet schiebt und das wiederum schiebt das Bild in den Ordner, aus dem nacher die Bilder automatisch auf den Server geladen werden. Bei einem falschen Dateinamen soll dann eben die Meldung kommen, das sie doch den Bildnamen richtig eingeben!
Noch mehr Klartext:
Bild "aubing1.jpg" -> Droplet -> Ordner "online_pics"
Bild "kasdfkfd.jpg" -> Droplet -> "FEHLERMELDUNG" - Redakteur soll Bild richtig benennen!
Die Bilder werden alle in den selben Ordner geworfen.
Hier nochmal meine jetzige Lösung:
--> nicht verwirren lassen. Bei der jetzigen Version wird das Bild noch in einen anderen Ordner verschoben <--
on run
set theFileList to {}
display dialog "Ziehen Sie eine oder mehrere Internet-Bilddaten auf das Icon!" with icon note buttons {"OK"} default button 1 giving up after 10
--set end of theFileList to choose file with prompt "Datei wählen: "
tell me to open theFileList
end run
--********************************
on open theFileList
tell application "Finder"
activate
set Warnhinweis to "Die Datei hat einen falschen Dateinamen!"
--*****************************
tell application "Finder"
activate
--die repeat-Schleife
repeat with theFile in theFileList
--Namen auslesen
set daFileName to name of theFile
if daFileName != "aubing1.jpg" then
display dialog Warnhinweis with icon stop buttons {"OK"} default button 1 giving up after 5
else
move theFile to folder "hochformat" of folder "internet_pics" of folder "Flo" of folder "Anwender" of disk "MacDaten"
end if
if daFileName != "aubing1.jpg" then
display dialog Warnhinweis with icon stop buttons {"OK"} default button 1 giving up after 5
else
move theFile to folder "hochformat" of folder "internet_pics" of folder "Flo" of folder "Anwender" of disk "MacDaten"
end if
end repeat
end tell
--****************************
end tell
end open
Danke!
sideshow _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 24.09.2002 - 10:22 Titel: Daten mit Droplet verschieben! |
|
|
Du könntest versuchen, eine Routine für die Dateinamenüberprüfung zu schreiben. Ich stell mir das ungefähr so vor:
if thePic ends with 1.jpg or thePic ends with 2.jpg or thePic ends with 3.jpg then [...]
else
Fehlermeldung
end if
Irgendwie was in die Richtung. Du wirst selbst am Besten wissen, wie die Bilder formatiert sein müssen, und auf was man achten muss bzw. kann.
Die andere Möglichkeit wäre, die Namen in einer Liste zu hinterlegen.
property theNames : {"aubing", "blabla", "etc"}
set theType to false
repeat with i in theNames
if thePic starts with i then
set theType to true
exit repeat
end if
end repeat
if theType = true then
[... weitere Dateiüberprüfung, siehe Vorschlag oben ...]
else
Fehlermeldung
end if
Ich hoffe, ich konnte dir ein bisschen helfen, ansonsten - immer ruhig weiterposten!
Gruß Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 24.09.2002 - 10:40 Titel: Daten mit Droplet verschieben! |
|
|
YESSSSS!
Ja, mit der Liste funktionierts. Ich hatte die Idee auch schon, aber ich wusste nicht wie ichs umsetzen soll! Vielen Dank für Deine Hilfe!
Hier, falls du es dir mal anschauen willst wie es jetzt ist:
property theNames : {"aubing1.jpg", "aubing2.jpg", "aubing3.jpg"}
on run
set theFileList to {}
display dialog "Ziehen Sie eine oder mehrere Internet-Bilddaten auf das Icon!" with icon note buttons {"OK"} default button 1 giving up after 10
--set end of theFileList to choose file with prompt "Datei wählen: "
tell me to open theFileList
end run
--****************
on open theFileList
tell application "Finder"
activate
--**************
tell application "Finder"
activate
--die repeat-Schleife
repeat with theFile in theFileList
set daFileName to name of theFile
set theType to false
repeat with i in theNames
if daFileName starts with i then
set theType to true
exit repeat
end if
end repeat
if theType = true then
display dialog "Pic in Ordnung!!! " & daFileName
else
display dialog "Pic NICHT in Ordnung!!! " & daFileName
end if
--move theFile to folder "querformat" of folder "internet_pics" of folder "Flo" of folder "Anwender" of disk "MacDaten"
end repeat
end tell
--***************
end tell
end open _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 24.09.2002 - 10:44 Titel: Daten mit Droplet verschieben! |
|
|
Noch ein Tip:
Wenn du sowieso den gesamten Dateinamen in die Liste einträgst, dann kannst du bei deiner Schleifen-If folgendes setzen:
if daFileName = i then
Damit verhinderst du, dass deine Leutz z.B. "aubing1.jpgsss" oder sowas eingeben!
Schön, wenn ich dir helfen konnte!
Bei Fragen - Posten! ;o)
Gruß Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 24.09.2002 - 11:01 Titel: Daten mit Droplet verschieben! |
|
|
Oh, sehr gut!
Des hätt ich jetz überhaupts gar nich gesehen! Gut aufgepasst!
Danke nochmal! _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 24.09.2002 - 11:10 Titel: Daten mit Droplet verschieben! |
|
|
Nochmal ein Vorschlag:
Dann brauchst du nämlich (falls in Zukunft noch weitere Dateien dazukommen) nicht immer aubing1.jpg, aubing2.jpg etc. eingeben, sondern nur den Namen "aubing":
property theNames : {"aubing", "bubing", "cubing"}
on run
set theFileList to {}
display dialog "Ziehen Sie eine oder mehrere Internet-Bilddaten auf das Icon!" with icon note buttons {"OK"} default button 1 giving up after 10
--set end of theFileList to choose file with prompt "Datei wählen: "
tell me to open theFileList
end run
--****************
on open theFileList
tell application "Finder"
activate
--**************
tell application "Finder"
activate
--die repeat-Schleife
repeat with theFile in theFileList
set daFileName to name of theFile
set theType to false
repeat with i in theNames
if daFileName starts with i then
if daFileName = ((i as string) & "1.jpg") or daFileName = ((i as string) & "2.jpg") or daFileName = ((i as string) & "3.jpg") then
set theType to true
exit repeat
end if
end if
end repeat
if theType = true then
display dialog "Pic in Ordnung!!! " & daFileName
else
display dialog "Pic NICHT in Ordnung!!! " & daFileName
end if
--move theFile to folder "querformat" of folder "internet_pics" of folder "Flo" of folder "Anwender" of disk "MacDaten"
end repeat
end tell
--***************
end tell
end open _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 24.09.2002 - 11:46 Titel: Daten mit Droplet verschieben! |
|
|
Das is keine schlechte Idee, fraglich nur ob es was nützt. Muss mich mal mit unserem Webmaster kurzschließen!
Danke für die Idee!!! _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 24.09.2002 - 11:48 Titel: Daten mit Droplet verschieben! |
|
|
Kein Problem - weißt ja : Jeder hilft jedem ;o)
Viel Erfolg!
Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 24.09.2002 - 14:35 Titel: Daten mit Droplet verschieben! |
|
|
Hallo ihr zwei,
ich mische mich jetzt auch mal ein. Da ich eine Begabung habe, die blödesten Fehler zu machen, hätte ich z.B. sofort einem Bild den Namen "aubingBild1.jpg" gegeben.
Der Name beginnt also mit "aubing" und endet mit "1.jpg" das würde also zu einem richtigen Ergebnis führen, was es aber definitiv nicht ist.
Ich halte in diesem Fall den Einsatz einer OSAX für sinnvoll, die 'regular expressions' ermöglicht.
Da gäbe es für OS 9 "Regex Commands". Wie die Sache damit funktioniert könnt ihr im MacScripers Magazine 4 erfahren (auf meiner Magazin-Seite zu haben).
Für OS X und OS 9 gibt's aus Japan die OSAX "mgrep.osax". Den Link dazu findet ihr an der Pinnwand.
Hier nun ein Beispiel zum Einsatz mit mgrep.osax:
display dialog ¨
"Geben Sie den Text ein, der geprüft werden soll." default answer ¨
"" buttons { "OK" } default button 1
set PruefText to text returned of the result
set Suchmuster to "aubing\\d+\\.jpg"
set Ergebnis to mgrep PruefText regex Suchmuster --with ignoreCase
if matchLen of Ergebnis = -1 then
display dialog "Warnung! Falscher Name!"
else
display dialog "Der Name ist in Ordnung."
end if
Kurze Erklärung:
Das wichtigste ist wohl das Suchmuster. Hier wird nach "aubing" gesucht. Dann folgt eine Zahl (\\d). Damit der Zahlenwert auch über 9 hinausgehen kann wird ein + dahinter gesetzt. Das bedeutet, dass der Wert davor 1 oder mehrere Male auftritt. Der letzte Teil des Suchmusters ist nun die Dateiendung. Der Punkt muss dazu durch einen Backslash maskiert werden, damit er als Punkt interpretiert wird. Ansonsten hätte er eine eigene Bedeutung in der regular expression. Der Backslash muss ebenfalls durch einen Backslash maskiert werden, da er in Applescript eine spezielle Bedeutung hat.
Die Suche ist case-sensitiv. Wird das nicht erwünscht, dann einfach die Kommentierung vor "with ignoreCase" entfernen.
Das Ergebnis wird am besten nach "matchLen" getestet. Dieser Wert gibt die länge des passenden Textes an. Falls der Text nicht passt, wird der Wert -1 ausgegeben.
Beispiel:
aubingBild123.jpg -- matchLen: -1
aubing123.jpg -- matchLen: 13
HTH _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 31.10.2004 - 13:17, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 24.09.2002 - 15:22 Titel: Daten mit Droplet verschieben! |
|
|
Mh...
aber ich hab doch schon in der repeat-schleife das
if thePic starts with i then...
if thePic = i then...
geändert. Das funktioniert doch eigentlich nur mit dem korrekten Dateinamen weil ich oben in den propertys in der Liste den korrekten Dateinamen angegeben habe! Also selbst wenn ein redakteur wirklich so blöd sein sollte (und davon gehe ich nicht aus) und wirklich "aubingBild1.jpg" eingeben würde; dann gibt er doch auch die Fehlermeldung aus! Oder nicht? _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 24.09.2002 - 15:40 Titel: Daten mit Droplet verschieben! |
|
|
Doch, stimmt schon, er gibt eine Fehlermeldung aus! Ich hatte das vorher bei meinem Vorschlag ja auch übersehen, habe es aber dann gleich danach mit thePic = ((item i as string) & "1.jpg") etc. ausgebessert.
Das verhindert selbst einen so doofen Fehler ;o)
Deine Idee, Snow, hat auch was, aber ich finde halt, wenn's einfach geht (also ohne osax), dann kann man's auch einfach umsetzen. Aber das läuft im Endeffekt auf ProgrammierDesign raus und nicht auf Funktionalität oder so. Ich denke du weißt, was ich meine....
Gruß Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
|