2013-09-07 2 views
1

В AppleScript как вы можете читать/записывать в определенную строку файла .rtf. до сих пор я могу добавить/заменить текст в файлЧтение и запись в определенные строки текстового файла

tell application "TextEdit" 
     set text of document 1 to "test" 
end tell 

Но как я могу выбрать определенную строку. также как я могу сделать что-то вроде набора var в текст строки 4?

ответ

3

Вы можете получить четвертый пункт (пункт разделены переводом строки, возврат каретки или возврат каретки + перевод строки), как это:

tell application "TextEdit" 
    paragraph 4 of document 1 
end tell 

В TextEdit вы можете изменить пункты:

tell application "TextEdit" 
    set paragraph 4 of document 1 to "zz" & linefeed 
end tell 

Обычно пытается изменить результаты абзацев в ошибке, хотя:

set paragraph 1 of "aa" & linefeed & "bb" to "zz" 
-- error "Can’t set paragraph 1 of \"aa 
-- bb\" to \"zz\"." 

Если другие ищут, как добавить текст в текстовый файл, вы можете использовать starting at eof спецификатор с write командой:

set fd to open for access "/tmp/a" with write permission 
write "aa" & linefeed to fd as «class utf8» starting at eof 
close access fd 

Это заменяет четвертую строку с zz:

set input to read "/tmp/a" as «class utf8» 
set text item delimiters to linefeed 
set ti to text items of input 
set item 4 of ti to "zz" 
set fd to open for access "/tmp/a" with write permission 
set eof fd to 0 
write (ti as text) to fd as «class utf8» 
close access fd 
+0

Im получение этой ошибки при попытке вашей второй части кода «ошибка» TextEdit получил ошибку: индекс события слишком велик, чтобы быть действительным. «Number -10007» – Qwertie

+0

@ qwertyk31 Он работает для меня. Имеет ли документ 4 абзаца? – user495470

+0

Да добавление 4 строк исправлено – Qwertie

1

Конечно, вы можете это сделать.

tell application "TextEdit" 
    set abc to text of document 1 
end tell 
set text item delimiters to " 
" 
set abc to item 4 of text items of abc 

Во-первых, мы получаем текст документа 1. (Вы не можете назвать переменную текст. Это зарезервированное слово.)

tell application "TextEdit" 
    set abc to text of document 1 
end tell 

Затем мы устанавливаем текст элемента разделители для возврата строки , (Это работает только при нажатии кнопки возврата в пределах «»)

set text item delimiters to " 
" 

Последнее дело в том, что мы берем 4-й текстовый элемент. (Это четвёртая линия, потому что мы установили для разделителей разрыва строки)

set abc to item 4 of text items of abc 

(Этот скрипт работает только тогда, когда пользователь нажимает кнопку ввода в Text Edit, чтобы начать новую линию)

Смежные вопросы