> これをhensu = "c:\Program Files"としても動きました!
偶然です。適切な方法ではありません。
> hensu = "C:\Program Files\aa\a"
> といったようにするとエラーが出てしまいます。
当然です。その記述では「C:Program Filesaaa」フォルダを指定したことと同じことです。
さて、前回は言葉足らずだったようで申し訳ありません。
私が提示したサンプルを実行して表示された入力ボックスに
a:\Program Files\abc\ss
と入力してみてください。実在するフォルダであればちゃんと開けると思います。
あのサンプルは入力ボックスをHSPスクリプトの外、hensu変数をHSPスクリプトの中、に見立てたサンプルなんです。
HSPスクリプトの外とは設定を書いたテキストファイルや、レジストリ、実行時の引数やサンプルで示したような実行中の入力欄がそうです。
HSPスクリプトの中とはスクリプトエディタで編集する部分で、実行形式のファイルにすると編集できないものです。
変数に「C:\」という文字列を入れるために、HSPのスクリプトの中で、
hensu = "C:\\"
のように\マークを2つ続けて書くのには理由がありまして、HSPのスクリプト内では\を特殊な記号として使っているので
特殊な記号の\マークなのか、文字列の\マークなのか区別するために\マークを2つ書く仕様になっています。
これはあくまで「HSPのスクリプト内」で書くときのみの仕様で、HSPのスクリプト内だけで通用する特別な書き方です。
HSPスクリプトエディタでスクリプトを書くとき意外は普通どおり\マークは1つで十分です。
他の方が何度も繰り返し言っているように、mes命令、dialog命令、デバッグウィンドウなどで変数の中身を表示してよく確認してみてください。
hensu = "a:Program Files\abcss"
mes "実際の変数の中身:"+hensu
hensu = "a:\Program Files\abc\ss"
mes "実際の変数の中身:"+hensu
hensu = "a:\\Program Files\\abc\\ss"
mes "実際の変数の中身:"+hensu
hensu = hensu + " ←ここを適当に変えてみてください。"
mes "hensu = " : pos 65,55:input hensu,500
pos 0 : objsize 200 : button "変数の中身を表示",*out
stop
*out
mes "実際の変数の中身:"+hensu
stop
このサンプルも、実行すると表示される入力ボックスの中身を思うように弄ってみてください。
スクリプトの方は書き換えたりする前によーく見て実行結果と照らし合わせてみてください。
>> fさん
それ上手い。