TextEdit Menüs

Diskutiere mit über: TextEdit Menüs im Scripting und Automatisierung Forum

  1. SelKai

    SelKai Thread Starter MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    0
    Registriert seit:
    10.07.2005
    Hallo

    Ich wollte zum Testen mal was mit einer Textdatei machen lassen. In etwa so:
    1. öffne Datei a
    2. suche wort b

    Das öffnen ist ja nun gar kein Problem, nur wie steuere ich die TextEdit-eigenen Menüs an? In der Bibliothek habe ich nichts passendes gefunden.

    Vielen Dank.

    Kai.
     
  2. lengsel

    lengsel MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    Registriert seit:
    25.11.2003
    Nicht ganz Dein Ansatz, aber vielleicht auch brauchbar:

    do shell script "fgrep SUCHSTRING /voller/Posixpfad/zur/gewünschten/Datei"

    Mit Anzeige der Fundstücke:
    set info to (do shell script "fgrep SUCHSTRING /voller/Posixpfad/zur/gewünschten/Datei")
    display dialog (info)

    Nachteil: Die Fundstellen geben immer die komplette Zeile aus in der SUCHSTRING gefunden wird.

    Grüße,
    Flo
     
  3. SelKai

    SelKai Thread Starter MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    0
    Registriert seit:
    10.07.2005
    Vielen Dank für die Antwort. Da ich noch ganz am Anfang von AS stehe, kann ich nur teilweise was mit Deinem Vorschlag anfangen. Ich muss wohl noch ein wenig lesen. Eigentlich bräuchte ich mal eine "anfängersichere" Erklärung zur Steuerung von anderen Programmen. Aus der Bibliothek des ScriptEditors werde ich noch nicht so recht schlau.

    Gruß Kai.
     
  4. lengsel

    lengsel MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    Registriert seit:
    25.11.2003
    Dann poste diese doch einfach mal konkret, so wird sich am ehesten jemand finden der helfen kann. An konkreten Problemen lernt man meist auch besser, zumindest geht das mir so.

    Grüße,
    Flo
     
  5. SelKai

    SelKai Thread Starter MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    0
    Registriert seit:
    10.07.2005
    Eigentlich will ich "nur" sowas wie Suche&Ersetzen machen. Z.B. Suche in Datei Test.txt Wort A, ersetze durch Wort B, speichern als Test2.txt. Dabei muss es natürlich nicht Textedit sein.
    Aus diversen schon gelesenen Vorschlägen zu diesem Problem bin ich leider nicht so schlau geworden. Kann aber auch daran liegen, dass ich mich eben erst seit kurzem mit AS beschäftige :)

    Kai.
     
  6. Snow

    Snow MacUser Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    Registriert seit:
    24.03.2003
    Nur mal eben etwas suchen und durch etwas anderes ersetzen ist einfach, wenn man eine Funktion des Programms benutzt. Will man diese Funktion ersetzen, ist es schon nicht mehr so einfach.

    Du kannst den gesamten Text in einer Variablen ablegen, danach setzt man AppleScript's text item delimiters (ein Zeichen oder eine Zeichenkette, die Textobjekte voneinander trennt - im normalen Text wird das wohl immer ein Leerzeichen sein) auf den Text, der gesucht werden soll.

    Im folgenden Schritt wird der Text in eine Liste umgewandelt, die aus den einzelnen Textobjekten besteht. Der gesuchte Text taucht nun nicht mehr in dieser Liste auf, da er ja nun als "Trennobjekt" dient.

    Nun setzt man die Text item delimiters auf den "Ersatztext" und wandelt die Liste wieder in einen Textwert um. Die, in der Liste gespeicherten Textwerte werden nun durch den Ersatztext getrennt, was dem Einfügen gleichkommt.

    Nun sollte man die Text item delimiters wieder auf ihren ursprünglichen Wert zurück setzen. Das ist ein leerer Textwert "".

    Der geänderte Text befindet sich im Beispiel in der neuen Variablen "neuerText", diesen schreibt man nun in das Dokument zurück, wodurch der bisherige Text überschrieben wird.

    Code:
    set Suche to "diesen Text suchen"
    set Ersatz to "durch diesen Text ersetzen"
    
    tell application "TextEdit"
    	set derText to text of document 1
    end tell
    
    set AppleScript's text item delimiters to Suche
    set TextListe to text items of derText
    set AppleScript's text item delimiters to Ersatz
    set neuerText to TextListe as text
    set AppleScript's text item delimiters to ""
    
    tell application "TextEdit"
    	set text of document 1 to neuerText
    end tell
     
  7. SelKai

    SelKai Thread Starter MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    0
    Registriert seit:
    10.07.2005
    Vielen Dank Snow!

    Ich habe trotzdem noch eine dumme Frage:
    Ich habe also im Code das "document 1" durch den Verweis auf meine Datei ersetzt. Das war sicher so gemeint, oder? Dann kam aber folgender Fehler: "Every Text of "Pfad zu meiner Datei:test.txt" kann nicht als "Pfad zu meiner Datei:test.txt" gesetzt werden.
    Sicher hat sich ein grober Denkfehler bei mir eingeschlichen. Obwohl sich der Code ja nahezu selbst erklärt...

    Kai.
     
  8. lengsel

    lengsel MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    Registriert seit:
    25.11.2003
    Nein, document 1 ist das (zuvor geöffnete) Dokument.

    Grüße,
    Flo
     
  9. SelKai

    SelKai Thread Starter MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    0
    Registriert seit:
    10.07.2005
    Oh, das wars also! Also doch so einfach! Vielen Dank! Ich werde mich sicherlich noch das ein oder andere Mal hier melden.

    Kai.
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Hallo Snow,

    den Ansatz finde ich sehr interessant.
    Um es vorweg zu sagen: ich arbeite kaum mit AS, schau aber öfter mal hier rein und probiere das eine oder andere aus.

    Ich hab da nun noch einige Fragen zu Deinem Skript.
    Angenommen die ersten beiden Zeilen lauten:
    Code:
    set Suche to "Bau"
    set Ersatz to "Ersatz"
    , weil ich das Wort "Bau" durch das Wort "Ersatz" ersetzen möchte.
    Gehe ich Recht in der Annahme, dass dann in dem Text das Wort "Bauen" ersetzt werden würde zu "Ersatzen" oder "Baumaschine" zu "Ersatzmaschine"?
    Nun könnte man das Skript vermulich so ändern, dass man eben schreibt:
    Code:
    set Suche to "Bau "
    ...
    Blöd nur, wenn das Wort dann am Ende eines Satzes vorkommt (Wir arbeiten am Bau.)
    Dann wird´s nämlich wiederum nicht erkannt.

    Ich weiss, das Beispiel ist blöd, aber ich denke man erkennt, worauf ich hinaus möchte.
    Wie wird AS mit sowas fertig?
     
Die Seite wird geladen...
Ähnliche Themen - TextEdit Menüs Forum Datum
TextEdit Schreibschutz aufheben funktuniert nicht. Scripting und Automatisierung 22.08.2014
Textedit-Dokument in mehrere Dokumente aufteilen Scripting und Automatisierung 08.11.2010
TextEdit in dem Ordner speichern in dem ich ihn aufgerufen habe Scripting und Automatisierung 13.03.2010
Viele Textedit-files: Text formatieren Scripting und Automatisierung 27.09.2007

Diese Seite empfehlen

Benutzerdefinierte Suche