- ベストアンサー
テキストファイルの指定した行数、文字数だけを表示させたい。
VB6.0を始めたばかりの初心者です。 VBで保存したテキストファイルを読み込んで 指定した行数の何文字目から何文字目まで (例えば4,5,6行目の5文字目から10文字目まで) だけを表示させたいのですが分かりやすく説明してくれる人が周りにいません。 色々と探してみたのですがぴったり求めているものにたどり着かず質問させていただきました。 どうかよろしくお願いします。
- みんなの回答 (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
その他の回答 (1)
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
お礼
回答本当にありがとうございました。 残念ながら力不足のため内容を解読することができませんでしたが 解決に至ることができましたのでありがとうございました。
お礼
ありがとうございました。 イメージ通りの結果にものすごく満足しています。 本当に感謝しています。