重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

VB6.0を始めたばかりの初心者です。
VBで保存したテキストファイルを読み込んで
指定した行数の何文字目から何文字目まで
(例えば4,5,6行目の5文字目から10文字目まで)
だけを表示させたいのですが分かりやすく説明してくれる人が周りにいません。
色々と探してみたのですがぴったり求めているものにたどり着かず質問させていただきました。
どうかよろしくお願いします。

A 回答 (2件)

>色々と探してみたのですがぴったり求めているものにたどり着かず


>質問させていただきました。

 そんな都合のいいサンプルはないでしょう。

 データ行数が少ないとして(処理速度を考慮しない)指定した範囲
のデータを取り出しています。エラー処理はないので、追加してくだ
さい。(6行以下の場合、10桁以下の場合など)

Private Sub Command1_Click()
Dim i As Long
Dim intFileNo As Integer
Dim lngLineNo As Long
Dim lngStartLine As Long
Dim lngStopLine As Long
Dim lngStartCol As Long
Dim lngStopCol As Long
Dim strTextLine As String
Dim strOutPut As String

lngStartLine = 4
lngStopLine = 6
lngStartCol = 5
lngStopCol = 10

intFileNo = FreeFile
strOutPut = ""
Open "c:\temp\Test.txt" For Input As #intFileNo
For i = 1 To lngStopLine
Line Input #intFileNo, strTextLine
If i >= lngStartLine Then
strOutPut = strOutPut & Mid$(strTextLine, lngStartCol, lngStopCol - lngStartCol + 1) & vbCrLf
End If
Next
Close #intFileNo

MsgBox strOutPut

End Sub
    • good
    • 1
この回答へのお礼

ありがとうございました。
イメージ通りの結果にものすごく満足しています。
本当に感謝しています。

お礼日時:2006/11/11 12:52

123456


abcdef
ABCDEF

という Test.txt があります。

Private Sub コマンド0_Click()
  Dim Texts() As String
  
  Texts() = FileReadArray("C:\Temp\Test.txt")
  Debug.Print Mid$(Texts(1), 2, 3)
End Sub

これで、

[イミディエイト]
bcd

という結果をえます。

このように Microsoft scripting runtime を使用すると2行程度で実現できます。
なお、当然のことながら FileReadArray関数は用意する必要があります。
狙った行だけを戻すような FileReadOrder関数は順次リードすれば可能ですが、それは、質問者が考えて下さい。

Public Function FileReadArray(ByVal FileName As String) As String()
On Error GoTo Err_FileReadArray
   Dim fso    As FileSystemObject
   Dim fil    As File
   Dim txs    As TextStream
   Dim strText  As String
   Dim strTexts() As String
  
   Set fso = New FileSystemObject
   Set fil = fso.GetFile(FileName)
   Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault)
   strText = txs.ReadAll
   strTexts = Split(strText, Chr$(13) & Chr$(10))
Exit_FileReadArray:
   FileReadArray = strTexts()
   Exit Function
Err_FileReadArray:
   MsgBox Err.Description & "(FileReadArray)", vbExclamation, " 関数エラーメッセージ"
   strTexts() = Split("")
   Resume Exit_FileReadArray
End Function
    • good
    • 0
この回答へのお礼

回答本当にありがとうございました。
残念ながら力不足のため内容を解読することができませんでしたが
解決に至ることができましたのでありがとうございました。

お礼日時:2006/11/11 12:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!