1test.txtの文を1行ずつテキストファイルに読み込みたいのですが
一行目以降が読み込めません。
結合演算子をつけると一行目の文がつながっていきます。
理由がわかりません、ご指導賜りたく思います。
Dim i As Integer = -1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = ""
Const qfile As String = "c:\1test.txt"
Dim str( ) As String
Dim lines As Integer
lines = File.ReadAllLines(qfile).Length
ReDim str(lines - 1)
Dim sr As StreamReader = New StreamReader(qfile, Encoding.Default)
i += 1
str(i) = sr.ReadLine( )
TextBox1.Text += str(i) + vbCrLf
sr.Close()
End Sub
間違い
'TextBox1.Text = ""コメントアウトです
テキストファイルは1行目から読み込むものですからね。
ファイルを開いて1行目を読み込んで閉じて
もう一度ファイルを開けば1行目から読みます。
ReadLine を繰り返して指定行まで読み飛ばせばいいのでは?
何とかクリックするたびに一行ずつ読み込むことが
できるようになりました。
コードこれでいいのでしょうか?
できればアドバイスお願いします。
Dim n As Integer = -1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = ""
Const qfile As String = "c:\1test.txt"
Dim str() As String
Dim lines As Integer
lines = File.ReadAllLines(qfile).Length
ReDim str(lines - 1)
Dim sr As StreamReader = New StreamReader(qfile, Encoding.Default)
n += 1
For i As Integer = 0 To n
If i < lines - 1 Then
str(i) = sr.ReadLine()
TextBox1.Text += str(i) + vbCrLf
Else
MessageBox.Show("終了")
End If
Next
sr.Close()
End Sub
> TextBox1.Text += str(i) + vbCrLf
>
は TextBox1.AppendText(str(i) + vbCrLf) とすれば速度が向上しますよ。
有り難うございました。
蒸し返すようですが If i < lines - 1 Thenは
If i < lines Thenの間違いですね
n += 1
For i As Integer = 0 To n
If i < lines - 1 Then
str(i) = sr.ReadLine()
TextBox1.Text += str(i) + vbCrLf
Else
MessageBox.Show("終了")
End If
ツイート | ![]() |