HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0202
noeseランチャー ファイルパス15解決


noese

リンク

2009/2/2(Mon) 10:02:02|NO.23173

ランチャーみたいなものを製作しています。
ダイアログで任意のexeやプログラムを開いて、パスを記憶できるようにしたいと思っています。
refstrやgetpathを使うとファイルパスが「\」一つずつになり、そのままでは起動できないのですが、
「\\」で取得することは出来るでしょうか??



この記事に返信する


f(浮輪中)

リンク

2009/2/2(Mon) 10:10:15|NO.23174

・・・やってみた上で言ってるのなら、単なるそちらのバグだろう。



f(浮寝中)

リンク

2009/2/2(Mon) 10:13:45|NO.23175

一応、書いとくか。

a="abc\\def\\ghi.jkl" mes a



noese

リンク

2009/2/2(Mon) 10:31:36|NO.23176

refstrやgetpathで取得すれば
"abc\def\ghi.jkl"
こうなりますよね??

       
手動で書き換えるのではなくて、そのまま
"abc\\def\\ghi.jkl"
のように取得できればとおもったのですが…



f(浮寝中)

リンク

2009/2/2(Mon) 10:35:15|NO.23177

・・・。
手動で変数に「\\」と代入しようが、getpathで取得しようが、変数の中身は「\」になる

と、言ってるんだが。



f(浮寝中)

リンク

2009/2/2(Mon) 10:58:25|NO.23178

どうしてもと言うなら、ほれ。
長い文章と日本語には対応してないが。


#module #defcfunc yen2yenyen str source src = source max = strlen(src) index = 0 for i,0,max dat = peek( src , i ) poke dest , index , dat index ++ if dat = '\\' { poke dest , index , '\\' index ++ } next return dest #global a="ab\\cde\\fgh.ijk" mes a mes yen2yenyen(a)

つーか、これで変換した文字列でexec命令とかパス指定しても駄目だぞ。



f(浮寝中)

リンク

2009/2/2(Mon) 11:06:55|NO.23179

マニュアル見る限り、そう解り難い事とも思わないのだが、
「ファイルパスの時に「\\」と書く」と、強調してるのが悪いのかね?


「\」は特殊な意味を持つキャラクタとして解釈されます。 「\n」 は、改行して次の行にするという意味になります。 「\t」 は、TABコードを表わします。 「\r」 は、リターンコード(0x0d)を表わします。 「\"」 は、ダブルクォート(")を表わします。 「\\」 は、ただの「\」になります。 ですから、ディレクトリを示すための文字列、たとえば、 "C:\WINDOWS\SYSTEM" などの文字列は、 "C:\\WINDOWS\\SYSTEM" と記述しないと認識されません。



noese

リンク

2009/2/2(Mon) 11:21:38|NO.23182

回答者様のおっしゃっていることは十分理解しているつもりなのですが…
自分の理解不足か、質問の仕方が悪いのだと思いますが
自分の質問の意図とは少し違うような気がしてしまいます

ですがNO.23178のでうまく起動できました。



noese

リンク

2009/2/2(Mon) 12:17:50|NO.23184

何度もすみませんが
>つーか、これで変換した文字列でexec命令とかパス指定しても駄目だぞ。

とはどういう意味なのでしょうか??
何回か試してみたところ問題なさそうなのですが



a

リンク

2009/2/2(Mon) 12:44:26|NO.23185

> refstrやgetpathを使うとファイルパスが「\」一つずつになり、そのままでは起動できないのですが、

dialog "exe", 16 exec refstr
これでも起動できないということでしょうか?



f(浮寝中)

リンク

2009/2/2(Mon) 13:27:40|NO.23186

・・・・状況が不明すぎるが、まあ、それで動いたと言うのなら良いんでね。

一度その周辺のコード見てみたいが。



SYAM

リンク

2009/2/2(Mon) 15:37:46|NO.23187

パス区切り文字は続けてたくさん書いても1つ書いたのと同じ扱いになったりしますから、 動いてしまうんじゃないかな…。



noese

リンク

2009/2/2(Mon) 16:31:39|NO.23188

皆様ありがとうございます。

肝心な事を言い忘れていたかもしれません。
refstrで取得したパスを一旦、mesboxにいれ編集可能にして
それをexecで起動しようとしていました。

夜になってしまいますが、スクリプト載せますので、もし御覧になられましたら
ご教授お願い致します



f(浮寝中)

リンク

2009/2/2(Mon) 16:47:34|NO.23189

mesbox上で\\とかする必要は無いんだがな。



check

リンク

2009/2/2(Mon) 18:41:58|NO.23191

f氏が浮寝中になっているとか、f氏の回答数がほかと比べて異常に多いとかはおいておいて、
noese氏の問題は23178のスクリプトで解決したのではないのか・・・?
また、23182に自分意図とは違うとあるが、どこらへんが違うのか教えて欲しい。
氏の質問はすでに今までの情報で何とかなると思うのだが・・・



noese

リンク

2009/2/2(Mon) 21:32:37|NO.23192

>mesbox上で\\とかする必要は無いんだがな。
本当ですね……。今、再度、確認してみたら\で大丈夫でした。
(mesboxが無編集で変数が0になってしまい、それに気がつかないで\では無理だと思い込んで
しまいました)

mesbox上で\ではexec起動できないというのが前提での質問だったので、疑問は払拭できました。
もともと\\で取得する必要はなかったのですね……。
すみません、お騒がせしました。
皆様ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.