Command関数の戻り値が”で囲まれるのはなぜ?

解決


ニック  2002-12-28 09:15:52  No: 105768

MDiフォームを使用して、休日表作成アプリを作っているのですが
コンパイル後のドラッグ&ドロップで実行
は問題なく起動するのですが、拡張子を関連付けしたファイルを
ダブルクリックするとファイルがありません「56」のエラーが出てしまいます。
コンパイル時にMsgbox Command
を実行すると”ファイル名”ダブルコーテーションで囲まれます
  保存しているファイルは圧縮ファイルで中はこうなっているので
  ファイルオープン時にこうなっているんだと思います。
  指定ファイル名.yc  
(指定ファイル名.yc1)作業領域
(指定ファイル名.yc2)各種設定


ニック  2002-12-28 09:17:52  No: 105769

"指定ファイル名.yc"
指定ファイル名.yc"1
 errer ファイル名がありません「52」
指定ファイル名.yc"2


nikku  2002-12-28 09:57:39  No: 105770

↑「56」※修正
他に作成したアプリでCommand関数を実行すると
ダブルコーテーションが表示されないんです
なんで出るのか解りません、それとも
これは絶対出るものとして処理しても良いのでしょうか?


YuO  2002-12-28 10:43:34  No: 105771

スペースが入るようなパスを渡すために,通常パスは"で囲みます。
囲まれていない場合も予想して,"の有無で分離する必要があります。

この仕様は,例えば,
C:\Program Files\TEST.EXE
をコマンドラインとして渡す場合に,
foo C:\Program Files\TEST.EXE
と渡すと,
1.) C:\Program
2.) Files\TEST.EXE
の二つの引数を渡していることになります。そこで,
foo "C:\Program Files\TEST.EXE"
としてやることで,ファイル名を確実に渡すことができます。
関連付けでは,通常
"実行ファイル名" "%1"
とするのが普通ですね。


ニック  2002-12-29 08:11:09  No: 105772

YuOさんレス本当にありがとうございますぅ(T_T)  
    困っているんです、実は…
「保存ファイル名.yc」が実在するファイルなのですが
その中に、2種類のファイルが圧縮されて格納されているんです
その中のファイルを取り出す際に保存されたファイル名(パス含む)
が必要になるんですが、僕は単純に保存したファイルに数字を付けただけの
名前で「中のファイルを格納」しています。(↑※1番目)
  
  なので、読み出す際にこのパスの後ろに数字を追加して
保存時と同じ名前にして取り出す必要があるんです。
 i = command & "1"
 i2 = command & "2"
それで単純にこの処理をしているんですが、しかし
実行するとダブルコーテーションが邪魔になるんです(↑※2番目)
  ダブルコーテーションを検索して""と置き換えるにも
どうして良いものか困っています(T_T)


oku  URL  2002-12-29 10:40:58  No: 105773

多分これでいけると思います。

Private Sub Form_Load()
    Dim strArray()      As String
    Dim intIndex        As Integer

    strArray = Split(Command, """")
    For intIndex = 0 To UBound(strArray) - 1
        MsgBox strArray(intIndex)
    Next intIndex
End Sub

ダブルコーテーションで区切って配列に保存すればOKだと思います。
ダブルコーテーションが入っていなくてもこのまま使えるはずです。


nikku  2002-12-30 07:51:35  No: 105774

ありがとうございます(T_T)
  解決しました—っYuOさん
大感謝です
  原因は最初に指摘して頂いた
拡張子関連付けの失敗でしたすいませんですm(__)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加