ファイル処理について

解決


s  2005-06-02 01:40:56  No: 90195

環境はVB6です。

ファイル処理に Open 〜 Close を使っているのですが、

Open FilePath For Input As #FileNo
Line Input #FileNo, Data
Close #FileNo

という書き方が一般的にあります。

FileNoという変数の前に#をつけているコードとつけていないコードをよく
サンプルなどで見かけるのですが、この#の意味がわかりません。
#をつけたほうがいいのですか?教えてください。


じゃんぬねっと  URL  2005-06-02 02:08:24  No: 90196

同じ話題が過去にもあったような気がしますね。


クラゲ  URL  2005-06-02 04:54:07  No: 90197

たとえば、

Dim iFileNo as Integer

iFileNo = FreeFile

Open FilePath For Input As iFileNo 
Line Input #iFileNo , Data
Close iFileNo 

となります。
Open/Closeのときは、#はいらないみたいですね。
あと、できるだけファイルI/Oを利用する場合、
FreeFile関数で、ファイル番号を取得しましょう


ひろ  2005-06-02 18:01:54  No: 90198

昔のBASICでは INPUTやPRINTは #ファイル番号 が付いていれば指定ファイルの
読み書きで、無い場合は端末(画面とキーボード)の入出力だったのです。

つまり、

PRINT 1,"ABC"
→ 画面に 1 と "ABC" を出力(今のVBにこの機能はありません。Label等のコントロールを介して画面に表示するのが一般的)

PRINT #1,"ABC"
→ ファイル #1 に "ABC" を出力(これは今のVBでも同じ)

ということです。また、OPENやCLOSEはファイル処理専用命令で# を省略しても意味が違うことにはならないので省略可能となっていることが多かったようです。

推測ですが、現在のVBで PRINT で # が必要なのは、昔の #無しのPRINT命令を含むのソースコードをそのまま使った場合にコンパイルエラーが出る事を意図した仕様なのだと思います。


Dental  2005-06-02 18:28:09  No: 90199

> PRINT 1,"ABC"
> → 画面に 1 と "ABC" を出力(今のVBにこの機能はありません。Label等のコントロールを介して画面に表示するのが一般的)

VB6でも、Printメソッドは使えますよね。

Option Explicit
Private Sub Command1_Click()
    Print 1, "ABC"
End Sub


s  2005-06-02 19:49:35  No: 90200

皆さんいろいろとありがとうございます。
勉強になりました。


ひろ  2005-06-02 21:11:06  No: 90201

> VB6でも、Printメソッドは使えますよね

Debug,Formなどのメソッドとして残っていましたね。
すっかり忘れていました。 orz
#もう歳なのかなぁ


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

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






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