VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 ファイル入出力関係のメニュー
1.テキストファイル読み書き色々
2.CSV ファイルの読み書き色々
3.固定長テキストファイルの読込
4.ランダムファイルの簡単なサンプル
5.FileSystemObject の TextStream オブジェクトを使っての読み書き色々
6.ADOを使ってCSVファイルをMSHFlexGridに表示する
7.テキストファイル同士の結合
8.テキストファイルの最後の数行を取得する
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載のファイル入出力に関するサンプル


5.FileSystemObject の TextStream オブジェクトを使っての読み書き色々
1.テキストファイル(CSVファイル含む)の行数(件数)を瞬時に取得
2.FileSystemObject の TextStream オブジェクトを使ってのファイルの読み書き
3.TextStream オブジェクトを使ってのファイルの行毎の読み込み
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:Microsoft Scripting Runtime (scrrun.dll)    参照設定方法参照
使用 API:
なし
その他 :FileSystemObject については、こちらをご覧ください。
    :
このページのトップへ移動します。 1.テキストファイル(CSVファイル含む)の行数(件数)を瞬時に取得

Option Explicit   'SampleNo=159  2002.07.03

Private Sub Command1_Click()
  Dim Fso   As New FileSystemObject
  Dim FsoTS  As TextStream

  'ファイルの末尾から書き込みモードで開きます
  Set FsoTS = Fso.OpenTextFile("test.txt", ForAppending)
  '現在のファイルポインターの位置を行番号で取得します
  Label1.Caption = "ファイルの行数は " & FsoTS.Line & " 行です。"
  FsoTS.Close
  Set FsoTS = Nothing

  '下記でも取得できます。
  Debug.Print CreateObject("Scripting.FileSystemObject"). _
        OpenTextFile("C:\test.csv", ForAppending).Line - 1
End Sub

ファイルをすべて読込む事なくテキストファイルの行数を取得できます。従って、大きなファイルでも瞬時に取得する事ができます。
又、CSVファイルも上記と同様に行数(件数)を取得する事ができます。(CSVファイルの場合マイナス1します)
行数とはWord 等でも同じですが改行の数を取得しております。従って一番最後の文字を書き終わった後で改行して保存すると1行多く取得しているかのように錯覚される方がおられます。必要であればその辺の処理をして下さい。

このページのトップへ移動します。 2.FileSystemObject の TextStream オブジェクトを使ってのファイルの読み書き

Option Explicit   'SampleNo=161  2002.07.03

Private Sub Command1_Click()
  Text1.Text = ""
  Dim Fso  As New FileSystemObject
  Dim FsoTS As TextStream
  Set FsoTS = Fso.OpenTextFile("test.txt")
  'ファイル全体を読み込みテキストボックスに表示
  Text1.Text = FsoTS.ReadAll
  'オープンしていたファイルを閉じる
  FsoTS.Close
  Set FsoTS = Nothing
End Sub

Private Sub Command2_Click()
'ファイルを作成(保存・書込)する
  Dim Fso  As New FileSystemObject
  Dim FsoTS As TextStream

  '指定されたファイル名のファイルを作成し、ファイルを読み込んだり、
  '書き込むときに使用する TextStream オブジェクトを返します。
  'True の場合上書き(ファイル名が存在しなければ新規作成)

  Set FsoTS = Fso.CreateTextFile("Test01.Txt", True)
  'TextBox の内容を Test01.Txt に書き込みます。
  FsoTS.Write Text1.Text
  FsoTS.Close
End Sub

このページのトップへ移動します。 3.TextStream オブジェクトを使ってのファイルの行毎の読み込み

Private Sub Command1_Click()
  Text1.Text = ""
  Dim myText As String
  Dim Fso  As New FileSystemObject
  Dim FsoTS As TextStream
  Set FsoTS = Fso.OpenTextFile("test.txt")
  With FsoTS
    Do Until .AtEndOfStream
      myText = myText & .ReadLine & vbCrLf
    Loop
  End With
  FsoTS.Close
  Set FsoTS = Nothing
  Text1.Text = myText
End Sub

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。