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

Text abschneiden

 
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 -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
jekyll
•-->
•-->


Anmeldedatum: 27.11.2004
Beiträge: 90
Wohnort: Rammelsbach

BeitragVerfasst am: 12.01.2005 - 19:06    Titel: Text abschneiden Antworten mit Zitat

Hallo Alleseits,
wie kann ich bei eine Liste {page 1, page 2, page 3} die page und die leerzeichen abschneiden?
Vielen Dank
_________________
Gruß Sándor
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 12.01.2005 - 19:46    Titel: Antworten mit Zitat

Hallo Sándor,

wenn es sich wirklich um Text handelt, müssten die Listeneinträge aber mit Anführungszeichen versehen sein - also:

{"page 1", "page 2", "page 3", "page 4"}

Lösung: Man ersetzt "page " durch nichts (also "").
Dazu schnappt man sich den Handler zum Suchen/Ersetzen aus dem Snippets-Forum und passt die Sache kurz an:

set TextListe to {"page 1", "page 2", "page 3", "page 4"}

set mySearch to "page "
set myReplace to ""
--
neue, leere Liste definieren
set NeueListe to {}
repeat with oneText in TextListe
    set the end of NeueListe to (textReplace(oneText, mySearch, myReplace))
end repeat
--
Ergebnis:
NeueListe


on textReplace(theText, srchStrng, replStrng)
    tell (a reference to AppleScript's text item delimiters)
        set {od, contents} to {contents, {srchStrng}}
        
try
            set {textList, contents} to {(text items of theText), {replStrng}}
            
set {newText, contents} to {(textList as text), od}
            
return item 1 of result
        on error errMsg number errNbr
            set contents to od
            
error errMsg number errNbr
        end try
    end tell
end textReplace


Ergebnis:
{"1", "2", "3", "4"}
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
jekyll
•-->
•-->


Anmeldedatum: 27.11.2004
Beiträge: 90
Wohnort: Rammelsbach

BeitragVerfasst am: 12.01.2005 - 20:20    Titel: Antworten mit Zitat

Hallo Peter,
vielen Dank für die schnelle Antwort.
Leider habe ich was verkehrt gedacht. Ich habe bei eine variable im verlauf protokoll folgenden ergebnis {page 1 of document "hightension.pdf", page 2 of document "hightension.pdf", page 3 of document "hightension.pdf"} ich habe es als log seitenzahl (*page 1, page 2, page 3*) bekommen da hoffte ich weiter machen zu können.
Die Frage ist jetzt wie bekomme ich statt {page 1 of document "hightension.pdf", page 2 of document "hightension.pdf", page 3 of document "hightension.pdf"} nur {1, 2, 3}.
Natürlich wäre schön wenn egal welche Dateiname zwischen die Anfürungszeichen stehen dürften.
Vielen Dank für Deine Mühe
_________________
Gruß Sándor
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 12.01.2005 - 20:49    Titel: Antworten mit Zitat

Hallo Sándor,

ich habe schon befürchtet, dass es nicht wirklich um Textwerte geht.
Du hast Referenzen auf einzelne Seiten eines PDF-Dokuments.

In welchem Programm arbeitest du da? Acrobat?
Wie ist diese Referenz-Liste entstanden?

Ich bräuchte da jetzt etwas mehr Code.

Im Moment komme ich nicht an Acrobat ran, da mein anderer Rechner belegt ist.

Aber ich denke, wenn du die Liste etwa so erstellt hast:

set Seiten to every page of document .....

dann sollte es auch möglich sein, nach der Seitenzahl zu fragen

set Seitenzahlen to number of pages of document ...

Notfalls könnte man die Referenzliste auch in eine Liste mit Textwerten umwandeln und dann aus jedem einzelnen Textwert das Wort 2 extrahieren, was ja der Seitenzahl entspricht.

Im folgenden Beispiel konnte ich es nicht mit einer Referenzliste testen, da ich im Moment nicht die Möglichkeit habe, eine solche zu erstellen.

Aber theoretisch könnte es durchaus funktionieren, wenn du deine Referenzliste im Beispiel verwendest:

set Seitentext to {"page 1 of document \"hightension.pdf\"", "page 2 of document \"hightension.pdf\"", "page 3 of document \"hightension.pdf\""}
set NeueListe to {}

repeat with oneItem in Seitentext
    set oneItem to oneItem as text
    
set the end of NeueListe to word 2 of oneItem
    
log NeueListe
end repeat

NeueListe

_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
jekyll
•-->
•-->


Anmeldedatum: 27.11.2004
Beiträge: 90
Wohnort: Rammelsbach

BeitragVerfasst am: 12.01.2005 - 21:19    Titel: Antworten mit Zitat

Hallo Peter,
ich habe alles was ich gekannt habe versucht aber entwerder habe ich {{},{},{}} bekommen oder das von oben, nuber of page Liefert {3}.
Leider ist auch keine verzeichniss für Acrobat vorhanden wie bei Photoshop oder Illustrator.
Dieses Skript soll in acrobat die seiten anzahl ermitteln dann wird der gleiche pdf, seiten weise in Illu geöffnet. Die pfaden werden von eine Javascript markiert und Kopiert, dann wird der gleiche seite in PS geöffnet und die pfaden als pfaden dort eingefügt.
Ich habe dein script eingebaut aber es kann nicht in string umgewandelt werden.

set scriptFile_ai to choose file with prompt ¬
   "Wähle den pfad.js !"
set scriptFile_ps to choose file with prompt ¬
   "Wähleden pfad_einfügen.js !"
tell application "Acrobat 6.0.1 Professional"
   close every document
   set Datei to choose file with prompt ¬
      "Wählen Sie eine pdf Datei!"
   open Datei
   set Seitenzahl to every page
   set NeueListe to {}
   repeat with oneItem in Seitenzahl
      set oneItem to oneItem as text
      set the end of NeueListe to word 2 of oneItem
      log NeueListe
   end repeat
   NeueListe
   close every document
end tell
global Datei, Seitenzahl, scriptFile_ai, scriptFile_ps
repeat with i from 1 to the count of Seitenzahl
   activate application "Illustrator CS"
   tell application "Illustrator CS"
      close documents saving no
      open Datei without dialogs
      do javascript scriptFile_ai
      copy
   end tell
   activate application "Adobe Photoshop CS"
   tell application "Adobe Photoshop CS"
      set Meine_optionen_ps to {page:item i of Seitenzahl, constrain proportions:true, mode:CMYK, resolution:300}
      open Datei as PDF with options Meine_optionen_ps
      do javascript scriptFile_ps
   end tell
end repeat

Tausend Dank für Deine hilfe
_________________
Gruß Sándor
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 12.01.2005 - 21:58    Titel: Antworten mit Zitat

Hi Sándor,

wenn 'number of pages' die Seitenanzahl liefert, dann hast du doch bereits was du brauchst.

set Seitenzahl to number of pages
--> {3}
set Seitenzahl to item 1 of Seitenzahl
-->3


Später im Script kannst du dann die Repeat-Schleife so schreiben:

repeat with i from 1 to Seitenzahl
-- usw.
end repeat


Wenn du wirklich eine SeitenzahlListe brauchst, kannst du diese auch erstellen, da du ja die Gesamtanzahl kennst:

set Seitenzahl to {3}
--> {3}
set Seitenzahl to item 1 of Seitenzahl
-- 3

set SeitenzahlListe to {}
set i to 0
repeat until i = Seitenzahl
set i to i + 1
set the end of SeitenzahlListe to i
end repeat

SeitenzahlListe
--> {1, 2, 3}


Ich kann dein Scriptbeispiel leider nicht testen, da ich hier nur Acrobat 5.0 habe - und das streikt schon bei 'number of pages'

Allerdings habe ich hier einen Workaround gefunden, um die Gesamtanzahl der Seiten zu ermitteln:

tell application "Acrobat 5.0"
goto page -1
get number
end tell


Ich gehe zur letzten Seite (-1) und ermittle dort die Seitennummer.
Hoffentlich hilft dir das etwas weiter. Ich habe Acrobat noch nie gescriptet - dafür arbeite ich zu wenig damit. Vielleicht taucht noch jemand auf, der sich damit besser auskennt.

Edit:
Mein eigner kleiner Workaround ist noch zu umständlich. Geht auch so:

tell application "Acrobat 5.0"
get number of last page
end tell

_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
jekyll
•-->
•-->


Anmeldedatum: 27.11.2004
Beiträge: 90
Wohnort: Rammelsbach

BeitragVerfasst am: 12.01.2005 - 22:28    Titel: Antworten mit Zitat

Hallo Peter,
so sieht die event und ergebnis protokoll aus
tell application "Acrobat 6.0.1 Professional"
close every document
{current application}
choose file with prompt "Wählen Sie eine pdf Datei!"
alias "Macintosh_hd:Users:sndormil:Desktop:043612_RobeKatalog_2005.in.pdf"
open alias "Macintosh_hd:Users:sndormil:Desktop:043612_RobeKatalog_2005.in.pdf"
count every page of current application
3
"„item 1 of 3“ kann nicht gelesen werden."
bei diesen Script:

tell application "Acrobat 6.0.1 Professional"
   close every document
   set Datei to choose file with prompt ¬
      "Wählen Sie eine pdf Datei!"
   open Datei
   set Seitenzahl to number of pages
   set Seitenzahl to item 1 of Seitenzahl
   set SeitenzahlListe to {}
   set i to 0
   repeat until i = Seitenzahl
      set i to i + 1
      set the end of SeitenzahlListe to i
   end repeat
   close every document
end tell

was habe ich noch verkehrt?
ich brauche hier für die Zahlen
set Meine_optionen_ps to {page:item i of SeitenzahlListe, constrain proportions:true, mode:CMYK, resolution:300}
_________________
Gruß Sándor
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 12.01.2005 - 22:32    Titel: Antworten mit Zitat

Ich dachte, 'number of pages' würde eine Liste {3} liefern. Also eine Liste mit nur einem Eintrag. Wenn das Ergebnis aber wirklich nur die Zahl 3 ist, dann kannst du die Zeile

set Seitenzahl to item 1 of Seitenzahl

wieder entfernen. Diese Zeile hätte ja nur dazu gedient, die einzelne Zahl aus der Liste heraus zu holen.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 12.01.2005 - 22:42    Titel: Antworten mit Zitat

jekyll hat Folgendes geschrieben:

ich brauche hier für die Zahlen
set Meine_optionen_ps to {page:item i of SeitenzahlListe, constrain proportions:true, mode:CMYK, resolution:300}


Dort brauchst du die SeitenzahlListe auch nicht. Du befindest dich doch bereits in einer Schleife die eine Zählvariable i beinhalten.

Bei 'repeat with i from 1 to Seitenzahl' wird die Variable i bei jedem Durchlauf der Schleife um 1 erhöht.

An der Stelle:

set Meine_optionen_ps to {page:item i of Seitenzahl, constrain proportions:true, mode:CMYK, resolution:300}

hast du mit page:i schon alles was du brauchst, da i ja den Wert 1, 2 oder 3 annimmt. Hier nochmal nach 'item i of Seitenzahl' zu fragen, wäre doppelt gemoppelt.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
jekyll
•-->
•-->


Anmeldedatum: 27.11.2004
Beiträge: 90
Wohnort: Rammelsbach

BeitragVerfasst am: 12.01.2005 - 22:50    Titel: Antworten mit Zitat

Hallo Peter,
viiiielen viiielen Dank. Es Funktioniert.
Ich würde gerne für den Forum spenden Leider habe ich keine PayPal geht es auch anders?
viele Grüße aus Rammelsbach
_________________
Gruß Sándor
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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 -> AppleScript-Forum 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