2016-05-12 6 views
1

私はLiveCodeを信じられないほど新しいですし、「words.txt」という.livecodeファイルと同じディレクトリに外部ファイルを持っています。新しい行にこのファイルを変数に読み込み、その変数からランダムな単語を選ぶ予定です。しかし、どのようにファイルパスを見つけて、これを私が必要とする構文に挿入する必要があるのか​​困惑しています。次のように私のコードは次のとおりです。ライブコードでファイルのファイルパスを見つける方法

put url ("binfile:" & filePathGoesHere) into dictionary 
    replace crlf with lf in dictionary 
    replace numToChar(13) with lf in dictionary 
    put any line of dictionary into randomword 

ファイルパスがfilePathGoesHereでコードに挿入されるようになっています。プログラムがコンパイルされると、私はそのファイルとそのリソースを(コンピューターからコンピューターに)少し移動します。そのため、コンパイルされたプログラムと同じフォルダーにあるテキストファイルを越えて、ファイルパスが変更されます。コンパイルされたプログラムとtxtファイルが入っているフォルダを "MyProgram"と呼んだ場合、この作業をするために追加する必要があるのは何ですか?

ヘルプは大変ありがとうございます。さらなる仕様が必要な場合は、それを提供することができます。それを動かすと "resources"というフォルダもあります。

答えて

2

ビルドしているスタックを自分で使用する場合は、外部ファイルをどこにでも置くことができますが、スタックを他のユーザーに配布する場合は、外部ファイルを配置する場所を計画する必要があります、 そしてどうやって。すぐにスタック外に座っているファイルへのパスを決定する簡単な方法は、スタックのファイル名を使用している

put the fileName of this stack into theFilePath 
set the itemDel to "/" 
put "words.txt" into the last item of theFilePath 

今theFilePath変数は、あなたの外部ファイルへの絶対パス参照します。ファイルはフォルダの「テキストファイル」の内側に配置されている場合、あなたはこれを行うことができます。

put the fileName of this stack into theFilePath 
set the itemDel to "/" 
put "TextFiles/words.txt" into the last item of theFilePath 

あなたが他の人に自分のスタックを提供するつもりなら、あなたは、共通のシステムフォルダに自分の外部ファイル/秒を書く必要がありますインストーラを使用してファイル/フォルダの配置場所を定義する必要があります。 - specialFolderPath(「リソース」) - デスクトップおよびモバイルプラットフォーム上で配信するための便利なことができ

put specialFolderPath("Documents") into the theFolderPath 

LiveCodeに幾分最近の付加は、「リソース」フォルダです:一般的なフォルダパスはspecialFolderPath機能を使用して発見されます。また、セキュリティ上の理由から、これらのフォルダには、既存のファイルに書き込むことができるフォルダはほとんどありません。 「環境設定」と「ドキュメント」は、ファイルの内容を変更できるフォルダの2つの例です。

LC辞書には、各フォルダの詳細が含まれています。

0

bindleの代わりにfile:schemeを使用すると、LiveCodeは行末の文字を自動的にLFに変換するので、ステップが必要ない場合があります。 (MacでネイティブのWindowsエンコーディングで作成されたテキストファイルを読んでいるのであれば、必要かもしれませんが)必ずしも変数に読み込む必要はありません。あなたはこれを行うことができます:

put any line of URL ("file:" & specialFolderPath("resources") & "/words.txt") \ 
    into tRandomWord 
関連する問題