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

Move von Dateien

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
goetz.hagmann
•->
•->


Anmeldedatum: 05.04.2008
Beiträge: 15

BeitragVerfasst am: 29.09.2015 - 18:03    Titel: Move von Dateien Antworten mit Zitat

Hallo

ich habe ien kleine Programm geschrieben das bestimmte Filenamen aus einer Textdatei "Texedit" auslesen soll und die Files von A nach B zu verschieben, der Fehler leigt in dem move Befehl, ich kann dies nicht endgültig einkreisen.

Informationen in Textedit
CT_13.pdf
CT_14.pdf

Programm

Code:
set vonPfad to "/Users/hagmgoe/desktop/" & "test.rtf"
set somefilepath to POSIX file "/Users/hagmgoe/Desktop/"
set somefolderpath to POSIX file "/Users/hagmgoe/"

tell application "TextEdit"
   activate
   open vonPfad
   set Inhalt to paragraph of text of front document
   
   tell application "Finder"
      repeat with theItem in Inhalt
         display dialog theItem
         move file theItem of folder somefilepath to somefolderpath
      end repeat
   end tell
end tell



Ergebniss i.O.

{"CT_13.pdf
", "CT_14.pdf"}

Wenn jetzt verwende ich "move file theItem of folder somefilepath to somefolderpath" anstatt "display dialog theItem" und ich bekomme die Fehlermeldung:

„Finder“ hat einen Fehler erhalten: „file "CT_13.pdf
" of folder "Desktop" of folder "xxxxxx" of folder "Users" of startup disk“ kann nicht gelesen werden.

wenn ich nur "CT_13.pdf" als input verwende funktioniert das Programm.

Kann mir eventuell jemand weiter helfen an was es liegt.

Danke im Voraus

Götz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
goetz.hagmann
•->
•->


Anmeldedatum: 05.04.2008
Beiträge: 15

BeitragVerfasst am: 30.09.2015 - 18:37    Titel: Antworten mit Zitat

Ich habe das Problem gefunden das CR in TextEdit ist der Verursacher. Hat jemand eine Idee das zu entfernen?

Götz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
goetz.hagmann
•->
•->


Anmeldedatum: 05.04.2008
Beiträge: 15

BeitragVerfasst am: 02.10.2015 - 17:36    Titel: Lösung Antworten mit Zitat

An bei die Lösung Sie besteht aus mehere Code Schnipsel aus dem Internet


Code:
to replace(aString, searchFor, replaceWith)
   set oldTIDs to AppleScript's text item delimiters
   set AppleScript's text item delimiters to searchFor
   set t to text items of aString
   set AppleScript's text item delimiters to replaceWith
   set s to t as string
   set AppleScript's text item delimiters to oldTIDs
   return s
end replace

set vonPfad to "/Users/xxx/desktop/" & "test.rtf"
set somefilepath to POSIX file "/Users/xxx/Desktop/"
set somefolderpath to POSIX file "/Users/xxx/"

tell application "TextEdit"
   activate
   open vonPfad
   set mystring to paragraph of text of front document
end tell

set listSize to count of mystring

repeat with i from 1 to listSize
   set mystring1 to item i of mystring
   --display dialog listSize
   set x to replace(mystring1, ASCII character 10, "")
   tell application "Finder"
      move file x of folder somefilepath to somefolderpath
   end tell
end repeat
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 08.10.2015 - 12:15    Titel: Antworten mit Zitat

Hallo Goetz,

auch wenn Dein Problem ja eher überschaubar klein war und ich es, da Du selbst die Lösung gefunden hast, nicht nachvollzogen habe, ist es ein feiner Zug von Dir, die Lösung zu posten.

Und wenn es wirklich nur daran lag, daß Du das Return am Ende entfernen willst, mußt Du nicht mit dem Such-Tausch-Handler dran gehen, in dem Fall würde ein einfaches

Code:
set datei to text 1 thru -2 of datei


genügen. Also Du schneidest einfach das letzte Zeichen ab, fertig. Und auch eine neue Variable ist bei Such-Tausch-Vorgängen NICHT notwendig:

Code:
set datei to my austauschen(suchstr, ersetzstr, datei)


Ist zwar nur eine Kleinigkeit, aber das Programm wird performanter.


Und dann noch bei der Gelegenheit ein sehr altes Thema zum bekannten Such-Tausch-Handler.

Bitte tut allen einen Gefallen und vergeßt dieses Monstrum:

Code:
to replace(aString, searchFor, replaceWith)
   set oldTIDs to AppleScript's text item delimiters
   set AppleScript's text item delimiters to searchFor
   set t to text items of aString
   set AppleScript's text item delimiters to replaceWith
   set s to t as string
   set AppleScript's text item delimiters to oldTIDs
   return s
end replace



Schrecklich. Mehr fällt mir dazu nicht ein. Das hier ist das gleiche, jedoch aufgeräumt und schneller:

Code:
on austauschen(suchen, ersetzen, theString)
   set my text item delimiters to suchen
   tell me to set theList to every text item of theString
   set my text item delimiters to ersetzen
   return theList as string
end austauschen



Erstmal zum Thema: Ehre, wem Ehre gebührt. Wer hat's erfunden? Ein Schweizer.

http://betabug.ch/austauschen.html – Home aus austauschen.

Klar, da wird es auch so ähnlich, wie im Englischen beschrieben gemacht. Aber wer mal mit Logik nachvollzieht, wie das Ding arbeitet, der merkt, daß da sehr, sehr oft unnötige Schritte gemacht werden. Denn meistens hat man ja nicht einen einzigen Such-Tausch-Vorgang, sondern sehr viele hintereinander. Und jedesmal wird der vorherige Zustand der Delimiters gesichert und wieder hergestellt, nur um das erneut vorzunehmen.

Ressourcenverschwendung ist das, mehr nicht. Man kann sich das mit einem öffentlichen Saal vorstellen, den jeder mieten, also benutzen kann: Dieser Saal ist unser Handler, den man betritt und die Stühle und Tische darin sind die Befehle, die man nutzt. Für den Vermieter gibt es zwei Möglichkeiten: Entweder, er legt eine absolute Grundordnung fest. Dann findet jeder Mieter den Saal beim Betreten immer gleich vor. Er darf alles verändern, hat aber beim Verlassen die Grundordnung wieder herzustellen.
Die zweite Möglichkeit ist, der Vermieter sagt, jeder Mieter hat die Tische selbst so hinzustellen, wie er gerade benötigt und läßt diese dann so.

Dabei fährt er dann wesentlich besser (und seine Möbel halten viel länger), wenn der Saal oft benötigt wird. Denn die Wahrscheinlichkeit, daß von der Grundordnung Sitzgruppen Besucher das in Reihen umstellen, nur um hinterher wieder aufzuräumen und die Nachfolger wieder die Reihen benötigen, ist hoch.


An eines muß man dann denken: Ich brauche die Delimiters sehr oft. Jedesmal, wenn man sie benutzt, muß man auf das Setzen des Benötigten achten – denn man kann sich nicht darauf verlassen, daß das Programm zweimal hintereinander gleich arbeitet, wenn einmal der austauschen-Handler aufgerufen wurde.
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X 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