1

スクリプトが実行されるたびにカウントに 1 を追加する単純なカウンターを作成しようとしています。プロパティを使用しようとしましたが、スクリプトが編集されるか、コンピューターの電源がオフになるたびにリセットされるため、機能しません。hereから取得したコードを次に示します。

    set theFile to ":Users:hardware:Library:Scripts:Applications:LightSpeed:" & "CurrentProductCode.txt"

open for access theFile
set fileContents to read theFile
close access theFile

set counter to fileContents as integer

on add_leading_zeros(counter, max_leading_zeros)
    set the threshold_number to (10 ^ max_leading_zeros) as integer
    if counter is less than the threshold_number then
        set the leading_zeros to ""
        set the digit_count to the length of ((counter div 1) as string)
        set the character_count to (max_leading_zeros + 1) - digit_count
        repeat character_count times
            set the leading_zeros to (the leading_zeros & "0") as string
        end repeat
        return (leading_zeros & (counter as text)) as string
    else
        return counter as text
    end if
end add_leading_zeros

add_leading_zeros(counter, 6)


open for access newFile with write permission
set eof of newFile to 0
write counter + 1 to newFile
close access newFile

これでエラーが発生します:

":Users:hardware:Library:Scripts:Applications:LightSpeed:CurrentProductCode.txt" をタイプ ファイルにできません。

最初の「open for access theFile」の後に「set theFile to theFile as alias」を追加すると、コードが少し進みますが、別のエラーが発生します。

「1776」を整数型にすることはできません。

そして今、私はアイデアがありません。私はあちこちでグーグルで検索しましたが、自分に合ったものは見つかりませんでした。ありがとう

4

1 に答える 1

2

スクリプト オブジェクトを使用してデータを保存するのが好きです。

set thePath to (path to desktop as text) & "myData.scpt"

script theData
    property Counter : missing value
end script

try
    set theData to load script file thePath
on error
    -- On first run, set the initial value of the variable
    set theData's Counter to 0
end try

--Increment the variable by 1
set theData's Counter to (theData's Counter) + 1

-- save your changes
store script theData in file thePath replacing yes
return theData's Counter
于 2013-07-11T14:59:26.687 に答える