• ベストアンサー

"E:TEST.CTL"という記述について

OPEN "C:\TEST.CTL" FOR INPUT AS #9 という記述は、ディスクC上にあるTEST.CTLというファイルをオープンするという事ですが、 OPEN "E:TEST.CTL" FOR INPUT AS #9 という記述の場合は、どうなるのでしょうか? カレントディレクトリが関係している様なのですが。 例えば 1)ディスクEのカレントディレクトリのTEST.CTLをオープンする。 2)ディスクに関係無く、カレントディレクトリのTEST.CTLをオープンする。 などが考えられるのですが、どうなんでしょう? 又、この辺りの記述規則の解説が有れば紹介して下さい。 よろしくお願いします。

  • tng
  • お礼率95% (47/49)

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。   E:TEST.CTLとすると、「EドライブのカレントにあるTEST.CTL」という意味になります。   MS-DOS時代は明示的にCDというコマンドを使って各ドライブのカレントを指定する事が出来ましたが、Windowsの場合はどうなるか分からないです。   最後にエクスプローラーでアクセスしたフォルダ? でも複数のウインドウ開いて同時に1つのドライブにアクセス出来ますしね...カレントが何になるかは分からないです笑   実験あるのみでしょうか。  あまり参考にならなくてごめんなさいです^^;

tng
質問者

お礼

まずは「EドライブのカレントにあるTEST.CTL」って事で良いのですね、ありがとうございます。Windowsでの複数ウィンドウを開いている場合は、私もこれから考えてみます。

その他の回答 (3)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

Σ( ̄ロ ̄lll) コロン・・・見えなかった・・・ (;´Д`) GOOの掲示板 見づらいよー Eのカレントフォルダに存在するTEST.CTLを開くという意味ですね・・・ でーもー、さっき言ったようにカレントドライブ/フォルダを移動してからコールするのがよろしいかと思います。

tng
質問者

お礼

「Eのカレントフォルダに存在するTEST.CTL」ですね、ありがとうございます。でもANo.#2~#4を読んでいると、フルパス指定を基本にする方がVBでは良いみたいですね。で、まれにそれで駄目な場合は、ANo.#3を参考にするという事でしょうね。コロンはすみませんでした、全角で記述すべきでしたね。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

フルパス指定でオープンしてもできない場合があります。 以前にバッチ系のプログラムを起動させようとしたら、マシンによってできなかった経験があります。 回避策として、「chdrive」「chdir」を使用してアプリケーションのカレントドライブパスを、バッチファイルの存在する場所へ移動し、フルパスを記入しないで行うとできました。 原因? ┐(´ー`)┌フッ サァ サッパリさ♪ しかし同じマシン・同じ環境なのにこういうこともあります。 あとで先輩(独身40歳/競馬好き/PCオタク)にきいたら「まれにWin95/98/NTにおこる現象」だと言ってました。

  • Khazad
  • ベストアンサー率30% (17/56)
回答No.2

 やってみればわかると思うのですが…。  DOS窓でも、実行ファイルはフルパスで指定したらカレントドライブに 関係なく実行できますよね?  あと、CD以外のコマンドの引数も、フルパスで指定したらカレントとは関係ない はずですよね…。  VBでも同様に、フルパスで指定した場合は、カレントディレクトリは関係なく E:TEST.CTLを開くはずです。 (実際そういう処理をした実績はあります:VB4~6)  E:TEST.CTLではなく、別のファイルが開いているというのであれば、 別のところに原因はあるとおもうのですが…。

tng
質問者

お礼

E:TEST.CTLに関しては、ANo.#1・4で良いのかと思います。ただ、VBではフルパス指定を基本にする方が良いみたいですね。ありがとうございました。

tng
質問者

補足

フルパス指定ではなく、E:TEST.CTLという指定なので、今回の質問をしました。

関連するQ&A

  • VBA カレントディレクトリ取得について

    お世話になってます。 VBAの初心者です。 test.mdbファイルを "C\TEST" という作業ディレクトリ配下において そのmdbのモジュールでCurDirを使用してカレントディレクトリを取得する という処理をVBAで書きたいのですが、 Dim strPath As String strPath = CurDir("C") と記述し実行しても strPathに格納される値は "C\" となってしまいます。 本当は"C\TEST"という値を取得したいのですが、 使用方法が間違っているのか、何が悪いのかよく分かりません。 よろしくお願い致します。

  • C#でフォルダをロックする方法

    C#でフォルダをロックする方法を教えて下さい。 実現したい挙動は、こんな感じです。 1, コマンドプロンプトで、カレントディレクトリを「C:\test」にする 2, その状態で「C:\test」を削除しようとする 3, 「別のプログラムがこのフォルダを開いているので、操作を完了できません。」(Vistaの場合) つまり、フォルダはコマンドプロンプトのカレントディレクトリになっている間は削除することができませんが、これをコマンドプロンプトではなくプログラムから制御したいのです。(1プログラムで複数) ちなみに、ファイルをロックするのは stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None); という記述でできましたが、わかっていたことですが、フォルダではやはり失敗します。 よろしくお願いします。

  • URLにパラメータを記述して結果を得るには?

    URLにパラメータを記述して結果を得るには? フォームに入力する内容を、URLに記述してアクセスしたいのですが、 うまくいきません。どこが悪いのでしょうか。 ■うまくいかないURL(自作) http://www.*********/test.php?AAAA=A1&BBBB=B1&CCCC=C1&DDDD=D1&submit=E1 ■フォームのソース <form action=test.php method=post name=test> <input type=hidden name=AAAA value=A1> <input type=text maxlength=4 name=BBBB value="B1"> <input type=text maxlength=2 name=CCCC value="C1"> <select name="DDDD"> <option value="D1">DDDD1</option> <option value="D2" selected="selected">DDDD2</option> </select> <input type=submit value=E1> <input type=submit NAME="FFFF" value="F1"> </form> ■補足 ソースに対してご意見があるかもしれませんが、ソースは変更できません。 そういった前提でお願い致します。

    • ベストアンサー
    • PHP
  • PHPの記述について

    質問させていただきます。 PHP Simple HTML DOM Parserを用いて 以下のような記述で ブラウザにより結果は表示されます。 この結果を テキストファイル(たとえばtest.txt)にして同じでディレクトリに 保存するにはどのような記述になりますか? よろしくお願いいたします。 <?php require_once('simple_html_dom.php'); $html = file_get_html('http ://hogehoge'); foreach($html->find('li[class=hogehogehoge]') as $element) echo $element->plaintext."<br />" ?>

    • ベストアンサー
    • PHP
  • ファイルを開く

    ファイルを開く時にファイルが開かれている時に エラーメッセージを出したいのですが、 Open "D:\test.txt" For Append As #1と記述しても エラーが出てくれません。 エクセルファイルで Open "D:\test.xlsx" For Append As #1だと エラーメッセージが出ます。 テキストファイルはエラーメッセージが出ないのでしょうか?

  • 「+」で次に来るタグを操作するCSSの記述方法は?

    http://9-bb.com/css%E3%81%A0%E3%81%91%E3%81%A7%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%8C%E9%96%8B%E3%81%84%E3%81%9F%E3%82%8A%E9%96%89%E3%81%98%E3%81%9F%E3%82%8A%E3%81%99%E3%82%8B%E3%82%A2%E3%82%B3%E3%83%BC/ 上記のアドレスで、下記の説明がされています。 「今回は、ulの表示・非表示でアコーディオンの役目をさせていますが、divなど他のタグに変えても出来ます、+を利用して次に来るタグが対象になっています」 input[type="checkbox"].on-off:checked + ul{height: 200px;} この様に記述すれば、「inputタグ」の次に来るタグ、すなわち「ulタグ」を、「+」によって操作できると言う説明です。 それでは、「次に来るタグ以外のタグ」は操作する方法はどうするのですか? input[type="checkbox"].on-off:checked + .test ul{height: 200px;} 上記の様に記述すれば、<div class="test">~</div>を操作できますか?

    • 締切済み
    • CSS
  • ディストリビューションウィザードを使って配布するプログラムが読み込むDataFileの場所について

    例えば住所録のファィルを読み込むときに ソースにOpen "c:\adress\adress.txt" For Input As #DataFileNum と書くと、 ディストリビューションウィザードで配布・セットアップされたプログラムは当然c:\adress\adress.txtを探しに行きますよね。 1.配布されてセットアップされたプログラムが探しに行くc:\adress\この場所に、adress.txtがあるようにする方法はありますか?  手作業なしでセットアップと同時に、その場所にadress.txtがあるようにする方法です。 2.またはadress.exeがインストールされた場所にadress.txtがコピーされてしまった場合には、 Open "c:\adress\adress.txt" For Input As #DataFileNum これのソースをどう書き換えれば゛いいのでしょうか Open "\????\????\adress\adress.txt" For Input As #DataFileNum 以上の2つの方法について教えていただきたいのです。

  • firefoxでfunction(e){}の e を省略するには?

    <html> <body> <input type="text" onkeydown="test()"> <script> function test(){ var e=getEvent()||window.event; o=e.target||e.srcElement; o.style.backgroundColor='#f00'; alert(e.keyCode); } function getEvent(){ var ob, c = arguments.callee; while(c = c.caller) if(ob = c.arguments[0]) return ob; } なんとなく取得できているようなのですが、 バグがありそうで、ご意見を! </script> </body></html>

  • Perlで、ファイルをe:ではひらけません

    Perlでのファイルのオープンですが、 c:では開けるのに、e:ではひらけません。 なぜでしょうか。 $aa="> c:abcde.txt"; open (TXT,$aa) or die "aaaaa$!aaaa"; この c:を e:に置き換えると、 No such file or directory のエラーメッセージが出ます。 Widows2000、  c:とd:とf:は同じハードディスクを 分割したものです。 j:は別のハードディスクですが、 e:を除きc:とf:とj:では問題なくひらけます。 e:には十分な空き容量があり、 他のソフトでは問題なく読み書きできます。 Perl初心者です。原因を探るには、 どんなことをすればよいでしょうか。

  • エクセル2000マクロエラー

    下記のマクロを記述を記載していますが Open path + finame For Input As #1→でファイルがありませんという エラーがでます。c:\aa着色加工計画\testにファイル(T_Sort.csv)はあるみたいなのですが 教えてください。何が原因でしょうか Sub Do_shukei() Dim 処方(1) As String, 品名(1) As String Dim 倉庫(1) As String Dim tuki(15) As String, sort(1) As String, st As Integer Dim sihan(8) As Long, zaiko As Long, suryo(15) As Long Dim ryo(6) As Long, a As Integer, i As Integer Dim path As String, finame As String, foname As String st = 1 a = 1 For i = 1 To 15 suryo(i) = 0 Next i path = "c:\aa着色加工計画\test" finame = "T_Sort.csv" foname = "T_shukei.csv" Open path + foname For Output As #2 Open path + finame For Input As #1 Do Until EOF(1) = True If a = 1 Then Input #1, sort(0), 倉庫(0), 処方(0), 品名(0), tuki(1), tuki(2), tuki(3), tuki(4), tuki(5), tuki(6), tuki(7), tuki(8), tuki(9), tuki(10), tuki(11), tuki(12), tuki(13), tuki(14), tuki(15) Write #2, sort(0), 倉庫(0), 処方(0), 品名(0), tuki(1), tuki(2), tuki(3), tuki(4), tuki(5), tuki(6), tuki(7), tuki(8), tuki(9), tuki(10), tuki(11), tuki(12), tuki(13), tuki(14), tuki(15) a = 0 GoTo l 下記省略

専門家に質問してみよう