• ベストアンサー

テキストファイルの指定した行数、文字数だけを表示させたい。

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>色々と探してみたのですがぴったり求めているものにたどり着かず >質問させていただきました。  そんな都合のいいサンプルはないでしょう。  データ行数が少ないとして(処理速度を考慮しない)指定した範囲 のデータを取り出しています。エラー処理はないので、追加してくだ さい。(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

kooka
質問者

お礼

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

その他の回答 (1)

noname#22222
noname#22222
回答No.2

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

kooka
質問者

お礼

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

関連するQ&A