[GastForen Programmierung/Entwicklung AppleScript AppleScript - Variable nach jeder Ausführung überschreiben

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

AppleScript - Variable nach jeder Ausführung überschreiben

1Frage_abc
Beiträge gesamt: 1

15. Okt 2019, 15:05
Beitrag # 1 von 3
Bewertung:
(404 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammen,
Ich bin recht neu bei AppleScript und baue nun einen ersten kleinen Script. Die Besonderheit ist, dass am Anfang des scripts ein Link als Variable festgelegt wird. Während des scripts wird ein neuer Link in die Zwischenablage kopiert, woraufhin dieser mit dem ursprünglichen Link abgeglichen wird. Falls er diesem nicht entspricht, folgen einige Handlungen auf der Website und der Script ist zu Ende. Das Problem ist, dass der zweite Link beim nächsten Ausführen des Scripts als "erster" Link dienen soll, d.h. als Grundlage zum vergleich mit einem weiteren Script.

Bisher habe Ich das Problem mit UI Programmierung gelöst, was meiner Meinung nach aber keine ideale Lösung ist. Dabei "drückt" das Script am Ende über dem Quellcode cmd+f und sucht nach den ersten Buchstaben des ersten Links, wählt diesen aus, löscht die Ziffern im Quellcode und drückt setzt an diese Stelle schließlich den neuen Link ein.

Denkt Ihr es gibt da evtl. eine bessere Lösung ohne UI Programmierung? Ich hätte da z.B. an Variablen gedacht, welche Werte aus einem Datensatz nehmen, welchem diese Werte wiederum zuvor zugewiesen wurden (so eine Art größerer Zwischenspeicher)

Mich würde echt interessieren wie man so ein Problem lösen kann, im Internet findet man zu so speziellen Anliegen ja leider kaum hilfreiche Infos. Deshalb wäre Ich sehr dankbar, wenn Ihr mir da ein paar Tipps gebt oder einfach mal eure Meinung bzw. euer Wissen in die Kommentare schreibt.

Vielen Dank im Voraus!
Hier Klicken X

AppleScript - Variable nach jeder Ausführung überschreiben

Hans Haesler
  
Beiträge gesamt: 5758

15. Okt 2019, 17:47
Beitrag # 2 von 3
Beitrag ID: #572307
Bewertung:
(376 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo 1Frage_abc,

herzlich willkommen im AppleScript-Forum auf HilfDirSelbst! :-)

Zur Lösung Deines Problems habe ich zwei Ideen. Aber ich muss zuerst prüfen, ob eine davon brauchbar ist. Doch vermutlich werde ich es erst morgen Vormittag anpacken können.

Gruss, Hans


als Antwort auf: [#572300]

AppleScript - Variable nach jeder Ausführung überschreiben

Hans Haesler
  
Beiträge gesamt: 5758

16. Okt 2019, 06:37
Beitrag # 3 von 3
Beitrag ID: #572312
Bewertung:
(340 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen 1Frage_abc,

nachstehend eine mögliche Lösung. Sie setzt voraus, dass sich die Textdatei "Aktueller_Link.txt" auf dem Schreibtisch befindet und den aktuellen Link enthält.
Der Name der Datei und der Speicherort kann geändert werden (z.B. "Alter_Link.txt" und ein Pfad zu einem Ordner in "Dokumente").

*****
Das Script prüft, ob die Textdatei vorhanden ist. Falls ja, wird deren Inhalt der Variablen 'oldLink' zugewiesen ...

... und der Variablen 'newLink' der neue Link (dieser ist hier zum Testen fix im Code definiert).

Die beiden Links werden verglichen. Stimmen sie nicht überein, wird der neue in die Textdatei geschrieben.

Mit der folgenden Zeile wird zuvor der Inhalt der Datei gelöscht. Das eof steht für end of file. Das Ende der Datei wird auf Null (= den Anfang) gesetzt.

Code
set eof of file linkFile to 0 


Und hier der Code, mit ein paar Kommentaren versehen:

Code
# der Dateiname ... 
set fileName to "Aktueller_Link.txt"
# ... und der volle Pfad
set linkFile to (path to desktop as Unicode text) & fileName

# prüfen, ob die Textadtei existiert
tell application "Finder"
if not (linkFile exists) then
display dialog "Die Datei \"" & fileName & "\" kann nicht gefunden werden." buttons "OK" default button 1 with icon 0
# die folgende Zeile bricht die Ausführung ab
error number -128
end if
end tell

# den gespeicherten Link einlesen
set oldLink to my readFile(linkFile)

# der neue Link
set newLink to "https://www.youtube.com/watch?v=YfXmUUS4Jqo"

# Übereinstimmung prüfen
if newLink is not oldLink then
my writeFile(newLink, linkFile)
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
else
display dialog "Identische Links" buttons "OK" default button 1 with icon 2 giving up after 2
end if

### die Handler ############################
# dieser Handler liest die Datei ...
on readFile(linkFile)
set curLink to read file linkFile
end readFile

# ... und dieser Handler schreibt den neuen hinein
on writeFile(newLink, linkFile)
try
open for access file linkFile with write permission
set eof of file linkFile to 0
write newLink to file linkFile
close access file linkFile
on error
try
close access file linkFile
end try
end try
end writeFile

Hoffe, dass das schon einigermassen brauchbar sein wird.

Gruss, Hans


als Antwort auf: [#572300]
Hier Klicken

Aktuell

Diverses
Dateipfaden_FileMaker_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
09.12.2019

pre2media, Dammstrasse 8, 8610 Uster
Montag, 09. Dez. 2019, 18.13 - 18.14 Uhr

Referat

Alle reden davon – wir zeigen ihnen kompakt was in den einzelnen Programmen wirklich steckt. Sind die Programme von Affinity – bereits heute – eine Alternative zu den Adobe-Programmen? Was versteht Affinity unter StudioLink und der vollständigen Integration der Affinity-Apps.

10.00 bis 12.00 Affinity Photo Bildbearbeitung CHF 90.00 13.00 bis 15.00 Affinity Designer Grafikdesign CHF 90.00 15.00 bis 17.00 Affinity Publisher Layoutprogramm CHF 90.00 Alle drei Affinity Programme zusammen (6 Lektionen) CHF 220.00

Ja

Organisator: pre2media gmbh, Dammstrasse 8, 8610 Uster, info@pre2media.ch, www.pre2media.ch

Kontaktinformation: Roger Thurnherr, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/kurse/affinity--referate-und-kurse/mo-9-dezember-2019--affinity-referate/252/

Affinity-Referat bei pre2media
Veranstaltungen
12.12.2019

Ortsunabhängig
Donnerstag, 12. Dez. 2019, 10.00 - 10.30 Uhr

Webinar

In diesem ca. halbstündigen kostenlosen Webinar stellen wir Ihnen die Neuerungen in der Version 2019 von Enfocus PitStop Pro vor.

Ja

Organisator: Impressed GmbH

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

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

Enfocus PitStop 2019
Hier Klicken