Scriptírás Automatorban (hogyan oldaható meg a karaktercsere)

 
vitruvian
 
Avatar
 
 
vitruvian
Az összes posztok száma:  120
Csatlakozva  01-06-2010
 
 
 
23 November 2014 13:40
 

Egy szövegszerkesztõhöz, a TextWranglerhez rögzítettem egy rövid scriptet, amely bizonyos karaktereket hivatott lecserélni bármelyik megnyitott dokumentumban.

A scripti jól múködik, de csak abban a dokumentumban,a melyiknek a neve esetünkben test.asc. Ha a megnyitott dokumentumnak más a neve, a script hibaüzenettel leáll.

Megpróbáltam a fájlnevet *.asc-ra cserélni, de script akkor nem mûködött.

Hogyan adhatom ki a csere utasítást MINDEN MEGNYITOTT DOKUMENTUMBAN?

Íme, a script:

tell application "TextWrangler"
    
activate
    open find window
    replace 
"; This " using "" searching in text 1 of text document "*test.asc" options {search mode:literalstarting at top:truewrap around:falsebackwards:false, case sensitive:truematch words:falseextend selection:false}
    open find window
    replace 
",\"" using "" searching in text 1 of text document "test.asc" options {search mode:literal, starting at top:true, wrap around:false, backwards:false, case sensitive:true, match words:false, extend selection:false}
    open find window
    replace "
\"" using "" searching in text 1 of text document "test.asc" options {search mode:literalstarting at top:truewrap around:falsebackwards:false, case sensitive:truematch words:falseextend selection:false}
end tell 
 
Bachman
 
Avatar
 
 
Bachman
Az összes posztok száma:  27461
Csatlakozva  08-12-2003
 
 
 
23 November 2014 14:10
 
tell application "TextWrangler"
    
activate
    
try
        
replace "; This " using "" searching in every text document options {search mode:literalstarting at top:truewrap around:truebackwards:true, case sensitive:truematch words:falseextend selection:falseshowing results:false}
    end 
try
    try
        
replace ",\"" using "" searching in every text document options {search mode:literal, starting at top:true, wrap around:true, backwards:true, case sensitive:true, match words:false, extend selection:false, showing results:false}
    end try
    try
        replace "
\\"" using "" searching in every text document options {search mode:literalstarting at top:truewrap around:truebackwards:true, case sensitive:truematch words:falseextend selection:falseshowing results:false}
    end 
try
end tell 
 
vitruvian
 
Avatar
 
 
vitruvian
Az összes posztok száma:  120
Csatlakozva  01-06-2010
 
 
 
23 November 2014 16:29
 

Ez az! Nagyon szépen köszönm.

Van még egy kérdésem: hogyan törölhető az első üre egy vagy két sor úgy, hogy a harmadik, szöveget tartalmazó sor elfoglalja a helyüket. Magyarán: az első két sor törlésével a harmadik (és a teljes szövegtörzs) értelemszerűen két sorral feljebb megy?

 
vitruvian
 
Avatar
 
 
vitruvian
Az összes posztok száma:  120
Csatlakozva  01-06-2010
 
 
 
23 November 2014 16:59
 

Hmmm. Most mégsem működik.

 
Bachman
 
Avatar
 
 
Bachman
Az összes posztok száma:  27461
Csatlakozva  08-12-2003
 
 
 
23 November 2014 18:03
 

Tulajdonképpen mi nem működik? Ezt próbáld:

tell application "TextWrangler"
    
activate
    
    replace 
"; This " using "" searching in every text document options {search mode:literalstarting at top:truewrap around:truebackwards:true, case sensitive:truematch words:falseextend selection:falseshowing results:false}
    
    replace 
",\"" using "" searching in every text document options {search mode:literal, starting at top:true, wrap around:true, backwards:true, case sensitive:true, match words:false, extend selection:false, showing results:false}
    
    replace "
\"" using "" searching in every text document options {search mode:literalstarting at top:truewrap around:truebackwards:true, case sensitive:truematch words:falseextend selection:falseshowing results:false}
    
    set a to 
"\\A\\r"
    
set b to ""
    
    
repeat 5 times
        
        replace a using b options {search mode
:grepwrap around:truereturning results:falseshowing results:false} searching in every text document
        
    end repeat
end tell 

Javított és a dokumentum elején lévő üres sorokat törli de csak akkor, ha az valóban üres sor.

 
vitruvian
 
Avatar
 
 
vitruvian
Az összes posztok száma:  120
Csatlakozva  01-06-2010
 
 
 
23 November 2014 18:27
 

Megírtam privátban.

 
Bachman
 
Avatar
 
 
Bachman
Az összes posztok száma:  27461
Csatlakozva  08-12-2003
 
 
 
23 November 2014 19:48
 

Láttam, de a #4 már azután keletkezett. A script teljes, futtatható, ellenőriztem. Megcsinálja a cseréket és a felesleges első üres sorok törlését is. Még csak Automator sem kell, elég az AppleScript Editor.

 
vitruvian
 
Avatar
 
 
vitruvian
Az összes posztok száma:  120
Csatlakozva  01-06-2010
 
 
 
23 November 2014 19:49
 

Köszönöm, kipróbálom, de már csak később.

 
vitruvian
 
Avatar
 
 
vitruvian
Az összes posztok száma:  120
Csatlakozva  01-06-2010
 
 
 
23 November 2014 22:11
 

Nem törli ki az első két sort, amelyek közül az első nem üres.

Hmmm…

 
hunluki
 
Avatar
 
 
hunluki
Az összes posztok száma:  235
Csatlakozva  25-10-2011
 
 
 
15 December 2014 09:04
 

Sziasztok profi almások :)

Segítségre lenne szükségem. Adott egy 5,5 MBP gép legfrissebb yosemite-vel, felépítését tekintve pedig külön SSD-vel és optibay-ben HDD-vel. A kérdésem az lenne, hogy meg lehetne-e varázsolni azt, hogy a HDD-t valamilyen billkombóra fel/le mountolja, mert ritkán van rá szükségem, így feleslegesen zabálja az akksit, viszont ha kell csak belövöm, leszedem róla amit kell, és már mehet is a fenébe. Sőt, ha olyat is tud hogy amikor töltőn van, akkor magától mountoljon, az maga lenne a tökéletesség.

Előre is köszönöm a segítséget :)

 
 
   
 
 
 

Apróhirdetések

Hírek

88%-on áll az iOS 12

2019. 08.12. @ 12:18
0