web-dev-qa-db-ja.com

VB6を使用してテキストファイルからデータを読み取るにはどうすればよいですか?

テキストファイルからデータを読み取り、アプリケーションで同じものを使用する必要があります。 VB 6.0を使用しています。どのコマンドを使用しますか?いくつかのサンプルコードをいただければ幸いです。

7
Jack Njiri

テキストファイル全体を文字列に読み込む方法は次のとおりです VB6マニュアル から。

Function FileToString(strFilename As String) As String
  iFile = FreeFile
  Open strFilename For Input As #iFile
    FileToString = StrConv(InputB(LOF(iFile), iFile), vbUnicode)
  Close #iFile
End Function
15
MarkJ

完全なチュートリアルとサンプルコードは見つけることができます ここ

  Open Filename$ For Input As #FileHandle

  Do While Not EOF(FileHandle)        ' Loop until end of file
   Line Input #FileHandle, TextLine$  ' Read line into variable
    ' Your code here
  Loop

  Close #FileHandle
13
David Sykes

ここではゲームに少し遅れていますが、Microsoft Scripting Runtime(scrrun.dll)の一部であるFileSystemObjectは、これに非常に役立ちます。

Public Function ReadTextFileAsString(IN_sFilePath As String) As String
    Dim myFSO As Scripting.FileSystemObject
    Dim myTextStream As Scripting.TextStream
    Dim myString As String

    'Create a new FileSystemObject
    Set myFSO = New Scripting.FileSystemObject

    'Make sure file exists:
    If myFSO.FileExists(IN_sFilePath) Then
        Set myTextStream = myFSO.OpenTextFile(IN_sFilePath, ForReading)
        myString = myTextStream.ReadAll()
        Call myTextStream.Close
    End If
    'Assign Return Value
    ReadTextFileAsString = myString

    'Make sure to clean up when done.
    Set myTextStream = Nothing
    Set myFSO = Nothing
End Function

テキストストリームからデータを取得するために利用できる他の多くの方法があります。一度に特定の数の文字を読み取ることも、行ごとに読み取ることもできます。 Microsoft Scripting Runtimeをプロジェクト参照に追加する必要がありますが、これは非常に便利です。

3
nedmech

ファイルが存在することを確認してください。

If myFSO.FileExists(IN_sFilePath) Then
    Set myTextStream = myFSO.OpenTextFile(IN_sFilePath, ForReading)
    myString = myTextStream.ReadAll()
    Call myTextStream.Close
End If
'Assign Return Value
ReadTextFileAsString = myString
1
Sarpsar

ファイルにプレーンテキストしかない場合は、次のコードを使用して全体を1つの文字列変数に読み込むことができます。

Private Sub ReadFile(strFile As String)
  Dim intFile As Integer
  Dim strData As String
  intFile = FreeFile
  Open strFile For Input As #intFile
    strData = Input(LOF(intFile), #intFile)
  Close #intFile
End Sub

可変長文字列には、最大約20億(2 ^ 31)文字を含めることができます

0
Hrqls

これがそのためのコードです

Function ReadFileToText(filePath)

   Dim objFile, objText, text

   Set objFile = CreateObject("Scripting.FileSystemObject")
   Set objText = objFile.OpenTextFile(filePath)

   text = objText.ReadAll
   objText.Close

   Set objText = Nothing
   Set objFile = Nothing

   ReadFileToText = text

End Function

確認できる詳細 http://smartreferences.blogspot.in

0
Palanikumar