2015-07-24 4 views
1

Я нахожусь в конце сборки новой функции для своего AppleScript.AppleScript как написать путь к файлу в текстовый файл

Я ищу, чтобы иметь возможность предложить пользователю выбрать файл Excel, а затем обработать этот файл Excel.

Новая функция заключается в том, что я хочу сохранить путь к файлу файла, который был выбран последним, так что при следующем запуске сценария диалоговое окно открывается в одну и ту же папку.

У меня есть диалоговое окно, и у меня также есть работа с файлом.

Моя проблема в том, что я хочу иметь возможность писать путь к файлу в текстовый файл, и я не знаю, как это сделать.

Рассмотрим следующий код:

set theFile to choose file with prompt "Please choose a file:" of type {"XLSX", "APPL"} 
display dialog (theFile as string) 

set outputFile to (("Macintosh HD:Users:lowken:Documents:") & "LaunchAgent_Alert.txt") 

try 
    set fileReference to open for access file outputFile with write permission 
    write theFile to fileReference 
    close access fileReference 
on error 
    try 
     close access file outputFile 
    end try 
end try 

код работает, но я получаю мусор в выходном файле:

>Macintosh HDÀ·q†H+÷œMiamieMasterMind.xlsxó∑èœÇäRXLSXXCELˇˇˇˇI À·©‡œÇ¬í,MiamieMasterMind.xlsxMacintosh HD*Users/lowken/Dropbox/MiamieMasterMind.xlsx/ 
ˇˇ 

Мне кажется, что либо у меня есть вопрос кодирования файла или Мне нужно вывести путь к файлу из файла.

Ваша помощь приветствуется.

ответ

2

Использование свойства, объясняемого Craig, является самым простым решением. Значения свойств будут сброшены, если вы перекомпилируете скрипт.

Однако, если вам действительно нужно сохранить значение пути в текстовый файл для использования другими сценариями, вам просто нужно записать файл, а не псевдоним, а как строка:

write (theFile as string) to fileReference 

Конечно, при чтении текстового файла позже помните, что это строка, а не псевдоним!

+0

В то время как Craig предлагает отличное решение, вы ответили на вопрос, который я задал. спасибо – codingguy3000

2

Попробуйте использовать свойство, и сценарий будет делать всю работу за вас:

property theContainer : null 
property theFile : null 

set theFile to choose file with prompt "Please choose a file:" of type {"XLSX", "APPL"} 
tell application "Finder" to set theContainer to theFile's container 

Из Руководства AppleScript Язык:

Значение свойства сохраняется после того, как сценарий, в котором определено свойство . Таким образом, значение currentCount равно 0 при первом запуске этого сценария, 1 при следующем запуске, и поэтому on. Текущее значение свойства сохраняется с объектом сценария, а не сбрасывается в 0 до тех пор, пока скрипт не будет перекомпилирован, то есть изменен и , затем снова запустите, сохраните или отметьте синтаксис.

1

Вы можете сохранить класс appleScript и прочитать его как (класс типа).

Примеры

  1. write theFile to fileReference - theFile это псевдоним есть AppleScript в

    читать, как это ->set theFile to read file "Macintosh HD:Users:lowken:Documents:LaunchAgent_Alert.txt" as alias

  2. Если сохранить список:

    write myList to fileReference - MyList является Список appleScript

    читать, как это ->set myList to read file "Macintosh HD:Users:lowken:Documents:LaunchAgent_Alert.txt" as list

  3. Если сохранить запись ->{б: "15", гр: "EEA"}:

    write myRecord to fileReference - MyRecord является записать AppleScript в

    читать, как это ->set myRecord to read file "Macintosh HD:Users:lowken:Documents:LaunchAgent_Alert.txt" as record

  4. Если сохранить реальный ->200.123:

    write floatNumber to fileReference - floatNumber является AppleScript в номер

    читать, как это ->set floatNumber to read file "Macintosh HD:Users:lowken:Documents:LaunchAgent_Alert.txt" as real

  5. Если сохранить целое число -> :

    write xNum to fileReference - xNum является integer appleScript

    прочитал это так ->set xNum to read file "Macintosh HD:Users:lowken:Documents:LaunchAgent_Alert.txt" as integer

  6. Если сохранить строку ->"ЕЭЗ: 376rrrr":

    write t to fileReference - т является строка с AppleScript в

    читать как этот ->set t to read file "Macintosh HD:Users:lowken:Documents:LaunchAgent_Alert.txt" as string


Важно: set eof to 0 до письменности ng новое содержимое в существующий файл

set fileReference to open for access file outputFile with write permission 
set eof fileReference to 0 
write something to fileReference 
close access fileReference 
Смежные вопросы