0

私のオフィスがスケジュールに使用するスプレッドシートがあります。各タブは月を表します。各タブをmonth1.csv、month2.csv...などの名前のファイルにエクスポートできます。各月のファイルを開いてループするための次のコードがあります。

    repeat with b from 1 to 12
            tell application "Finder"
            set curFileName to (sourceFolder & "month" & b & ".csv") as string
            --display dialog curFileName
            set workingFile to read file (curFileName)
            --display dialog "File has been read"
            set AppleScript's text item delimiters to {ASCII character 13}
            set theContents to text items of workingFile as list
        end tell

do stuff with the csv...

end repeat

スクリプトは最初の月を繰り返し、b=2のときに次のエラーが発生します。

Finder got an error: File file Macintosh HD:Users:lorenjz:Documents:Manpower:,month,2,.csv wasn’t found.

このエラーを解消するにはどうすればよいですか?

4

1 に答える 1

0

あなたの代わりに次の行を使用してください。基本的に、ファイルパスを作成するためにテキストを一緒に追加しようとしています。ただし、sourceFolderはテキストではないため、テキストを追加する前に、まずそれをテキストにする必要があります。「b」もテキストではないため、テキストにも強制変換する必要があります。

一般的に、applescriptはあなたのために物事を強制するのに適しています。基本的に、すべてを行の最初のオブジェクトのクラスに強制しようとします。したがって、sourceFolderをテキストにすると(強制しない限りファイル指定子になります)、applescriptはその後すべてをテキストに強制しようとします...つまり、applescriptは「b」をテキストに強制する必要はありません。それはあなたのためです...もちろん、souceFolderがテキストである限り。私は通常、自分で強制を行いますが、それが正しいことを確認するために、通常は自分自身も「b」を強制します。

重要なのは、テキストを一緒に追加するときは、すべてがテキストでなければならないということです。行の最後に「テキストとして」を置くことはできません。個々のアイテムをすべてテキストに強制変換する必要があります。幸運を。

set curFileName to (sourceFolder as text) & "month" & (b as text) & ".csv"
于 2012-07-23T08:46:09.657 に答える