前提・実現したいこと
テキストファイルから特定の行を読み込んでラベルのテキストに入れようと思っています。
初心者なので、勝手にオリジナルの変数を作っていてわかりづらいかもしれませんが...
発生している問題・エラーメッセージ
VB.NET
1System.ArgumentOutOfRangeException 2 HResult=0x80131502 3 Message=Index was out of range. Must be non-negative and less than the size of the collection. Arg_ParamName_Name 4 Source=System.Private.CoreLib 5 スタック トレース: 6 場所 System.ThrowHelper.ThrowArgumentOutOfRange_IndexException() 7 場所 System.SZArrayHelper.get_Item[T](Int32 index) 8 場所 System.Linq.Enumerable.ElementAt[TSource](IEnumerable`1 source, Int32 index) 9 場所 cdoninin.Form1.C_Tick(Object sender, EventArgs e) (C:\Users\K\Desktop\MVS\cdoninin\cdoninin\Form1.vb):行 100 10 場所 System.Windows.Forms.Timer.OnTick(EventArgs e) 11 場所 System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) 12 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam) 13
該当のソースコード
VB.net
1 Private Sub C_Tick(sender As Object, e As EventArgs) Handles C.Tick 2 Dim LineTextv As String = Nothing 3 4 For i As Integer = 105 + cntC To 108 + cntC 5 LineTextv += vbCrLf + IO.File.ReadAllLines(file).ElementAt(i).ToString() 6 Next 7 nc.Text = LineTextv 8 9 If cntCh = 10 Then 10 cntCh = -1 11 cntC = 0 12 ElseIf cntCh = 8 Or 9 Then 13 cntC += 5 14 End If 15 cntCh += 1 16 End Sub
試したこと
数がファイルの行にでも多すぎたのかな?と考えて確認しましたが合っている気がします。
「気がする」ではなくてデバッグ実行して確認しては?
あと、同じファイルを ReadAllLines で For のループ分読んでいますが無駄ではないのでしょうか?
ファイルから複数行の文字を読み込んで繋げて使いたいんです…

回答2件
あなたの回答
tips
プレビュー