BBEdit Text links von 'selection' löschen

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von G4Dave, 28.11.2005.

  1. G4Dave

    G4Dave Thread Starter MacUser Mitglied

    Beiträge:
    31
    Zustimmungen:
    0
    MacUser seit:
    06.12.2002
    Hallo,

    schlage mich nach Langem mal wieder mit AppleScript rum, hab leider alles wieder vergessen.

    Mein Problem:
    Ich habe einen Text im Clipboard, setze diesen in BBedit in ein neues Fenster ein und lasse ihn nach einem bestimmten Suchmuster durchsuchen.

    Soweit, so gut:



    Code:
    tell application "BBEdit"
    	activate
    	make new text document at text window 1
    	paste
    	find "SUCHTEXT" searching in text 1 of text document 1 options {search mode:literal, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false} with selecting match
    end tell
    Jetzt will ich den kompletten Text links von der Stelle, an der 'SUCHTEXT' gefunden wurde, löschen. Wie mache ich das?

    Für Eure Hilfestellungen vielen Dank im Voraus!
     
  2. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    Ciao,
    hiermit müßte es klappen:
    Code:
    tell window 1 of application "BBEdit"
    	set toFind to find "blablabla" options {starting at top:true}
    	set chars to found object of toFind
    	set c1 to character 1 of chars
    	set os to (offset of c1) - 1
    	select (characters 1 thru os)
    	delete selection
    end tell
    Viel Erfolg
    Farid
     
  3. G4Dave

    G4Dave Thread Starter MacUser Mitglied

    Beiträge:
    31
    Zustimmungen:
    0
    MacUser seit:
    06.12.2002
    Hallo Farid,

    Dein Lösungsansatz sieht gut aus. Lieder funktioniert er noch nicht ganz...

    Skripteditor meldet folgenden Fehler:[QUOTE="AppleScript Fehler]"BBEdit" hat einen Heler erhalten: "character 663 of text document "untitled 3"" kann nicht in text umgewandelt werden.[/QUOTE]Grau unterlegt ist dabei "offset of c1" aus der Zeile
    Code:
    set os to (offset of c1) - 1
    Liegt da ein Problem mit dem falschen Variablentyp vor? Sorry, aber ich behrrsche wirklich nur die allereinfachsten Basics...
     
  4. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    Sonderbar kopfkratz
    Kann es sein, daß Du mehr als ein Fenster in BBedit offen hast?

    Checken wir das Script nochmal Schritt für Schritt durch (als Dummy-Text benutzen wir deinen ersten Beitrag in diesem Topic):
    Code:
    tell application "BBEdit"
    	activate
    close every window
    Jetzt sind wir sicher, daß keine anderen Fenster offen sind
    Code:
    make new text document
    	paste
    Jetzt haben wir ein BBEdit-Dokument mit diesem Text: Hallo,

    schlage mich nach Langem mal wieder mit AppleScript rum, hab leider alles wieder vergessen.

    Mein Problem:
    Ich habe einen Text im Clipboard, setze diesen in BBedit in ein neues Fenster ein und lasse ihn nach einem bestimmten Suchmuster durchsuchen.

    Soweit, so gut:

    Code:
    tell window 1
    		set toFind to find "Problem" options {starting at top:true}
    		set chars to found object of toFind
    Resultat: characters 107 thru 113 of text window 1 of application "BBEdit"
    Code:
    set c1 to character 1 of chars
    Resultat: character 107 of text window 1 of application "BBEdit"
    Jetzt interessiert uns der "Offset" unmittelbar bevor unserem gefundenen Suchbegriff:
    Code:
    set os to (offset of c1) - 1
    Resultat: 106
    Jetzt müssen wir nur noch den Text vom ersten bis zum Charakter "os" (106) selektieren und löschen:
    Code:
    select (characters 1 thru os)
    		delete selection
    	end tell
    end tell
    Fertig ist die Laube :)

    Nochmal das ganze Script auf einen Blick:
    Code:
    tell application "BBEdit"
    	activate
    	close every window
    	make new text document
    	paste
    	tell window 1
    		set toFind to find "Problem" options {starting at top:true}
    		set chars to found object of toFind
    		set c1 to character 1 of chars
    		set os to (offset of c1) - 1
    		select (characters 1 thru os)
    		delete selection
    	end tell
    end tell
    Bei mir funktionierts. Solltest Du weiter Fehlermeldungen bekommen, veröffentliche doch bitte den Text, den Du aus der Ablage kopiert hast, damit wir sehen können wo's hapert.

    Good scripting
    Farid
     
    Zuletzt bearbeitet: 29.11.2005
Die Seite wird geladen...

Diese Seite empfehlen