SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

VB 基礎編 (その四) 標準ファイル I/O open、eof、print、curdir、name、kill

VB の標準ファイル I/O について説明します。

■open (ファイルオープン)

  open パスファイル名 for モード as #ファイル len=バッファ
       |                  |         |           |_ シーケンシャルアク
       |                  |         |              セスのとき、32000
       |                  |         |              を指定すると高速ア
       |                  |         |              クセスできる。
       |                  |         |              但し、関数内で合計
       |                  |         |              65000 程度のバッフ
       |                  |         |              ァしか確保できない。
       |                  |         |              ランダムファイルで
       |                  |         |              は、レコード長を指
       |                  |         |              定する。
       |                  |         |_ ファイルとファイルb結びつける。
       |                  |            入出力命令は、このbノ対して行う。
       |                  |_ input  シーケンシャル入力
       |                     output シーケンシャル出力
       |                     append シーケンシャル追加出力
       |                     random ランダム入出力
       |                     binary バイナリアクセス
       |_ 対象パス、ファイル名

■close (ファイルクローズ)

  close [#ファイル]
         |_ 省略するとオープン中のファイルが全てクローズされる。
            尚、close 命令が実行されるまでにプログラムがクラッシュした
            場合は、そのファイルが HDD 破壊クラスタとなる。

■freefile (空きファイル番号取得)

  標準ファイル I/O で使用するファイルハンドルの空いているハンドル番号を
  返します。

  dim fno as integer

  fno = freefile

■input (シーケンシャルレコード読み込み)

    [line] input #ファイル番号, 変数 [, 変数]
  line input は、改行コードまでを 1 レコードして読み込む。
  input は、tab、カンマ、改行をデータ区切りとして読み込む。

■eof (シーケンシャルレコード AT END)

    eof(ファイル番号) が真になると、それ以上のレコードはない。

■lof (ファイルサイズ)

    lof(ファイル番号) は、主にバイナリ I/O で使用する。

■print (シーケンシャルレコード書き込み)

    print #ファイル番号, 変数 [, 変数] [;]
  カンマで区切ると、実ファイルに適当な空白が挿入される。
  現実には、ファイル効率から自分で「,」なり必要な区切りを入れる。
  最後に「;」を記述すると、改行コードが挿入されない。

  【例】dim rec as string

        open "g:\tmp\test1.sf" for input as #1 len = 32000
        open "g:\tmp\test2.sf" for output as #2 len = 32000
        do until eof(1)
          line input #1, rec
          print #2, rec
        loop
        close #2
        close #1

  【ヒント】ファイルbノ定数宣言などを使用するとわかり易いです。
        const TEST1_SF = 1
        dim rec as string

        open "g:\tmp\test1.sf" for input as TEST1_SF len = 32000
        do until eof(TEST1_SF)
          line input #TEST1_SF, rec
        loop
        close TEST1_SF

■get、put、seek (バイナリ入出力)

  ランダム、バイナリアクセスは通常使用しないので、パスする。

  VB5 以上では、バイナリアクセスの場合に byte 変数を使用しないと、
  バイト切り出しがうまく出来ません。

■CurDir (カレントディレクトリ取得)

  カレントディレクトリ(カレントフォルダ) を取得するには、次のようにする。

  dim s as string

  s = curdir

■ChDrive (ドライブ変更)

  ドライブを変更するには、次のようにする。

  chdrive d:

■ChDir (ディレクトリ変更)

  ディレクトリを変更するには、次のようにする。

  chdir "\tmp"

■MkDir (ディレクトリ作成)

  ディレクトリを作成するには、次のようにする。

  mkdir "\tmp"

■RmDir (ディレクトリ削除)

  ディレクトリを削除するには、次のようにする。

  rmdir "\tmp"

■Name (ディレクトリ名、ファイル名変更)

  ディレクトリ名やファイル名を変更するには、次のようにする。

  name "旧名" as "新名"

■Kill (ファイル削除)

  ファイルを削除するには、次のようにする。

  kill "g:\tmp\test.txt"

■GetAttr (ファイル属性取得、フォルダ属性取得、ディレクトリ属性取得)

  ファイル属性を取得するには、次のようにする。

  rcd = getattr(filename)
  |             |_ パス、または、パス付きファイル名
  |_ 0  vbNormal    通常ファイル
     1  vbReadOnly  読み取り専用ファイル
     2  vbHidden    隠しファイル
     4  vbSystem    システムファイル
     16 vbDirectory フォルダ
     32 vbArchive   アーカイブ

■SetAttr (ファイル属性設定、フォルダ属性設定、ディレクトリ属性設定)

  ファイル属性を設定するには、次のようにする。

  setattr filename, atr
          |         |_ 0  vbNormal    通常ファイル
          |            1  vbReadOnly  読み取り専用ファイル
          |            2  vbHidden    隠しファイル
          |            4  vbSystem    システムファイル
          |            32 vbArchive   アーカイブ
          |_ パス、または、パス付きファイル名

  SetAttr filename, GetAttr(filename) and &HDF&) とすれば、
  アーカイブ属性(vbArchive 32) がマスクされて、解除できます。

■FileCopy (ファイルコピー)

  filecopy "g:\tmp\a.xls", "g:\tmp\b.xls"

■FileLen (ファイルサイズ)

  sz = filelen("g:\tmp\test.txt")

■FileDateTime (ファイル日付)

  dt = FileDateTime("g:\tmp\test.txt")

■VB 基礎編資料
■VB 入門編資料
■VB ビジュアル編資料
■VB テクニック編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK