• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:splitのエラーについて)

splitのエラーについて

このQ&Aのポイント
  • 自作の単語帳アプリで、新しい単語を保存・読み込みしようとしている際にsplitエラーが発生しています。
  • 保存したデータを読み込む際に、『英語#日本語』という形式のデータを配列に追加し、また英語と日本語を分けてフォームに追加する処理を実行しています。
  • しかし、実行するとIndexOutOfRangeExceptionというエラーが発生してしまい、解決策がわかりません。使用環境はWindowsXPとVisual Studio 2005です。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

これは データを書き込む際の不備とデータを取り込む際の不備によるものです 書き込みを行っているsavedataメソッドの中で styrData += word(a) & vbCrLf といった具合に CRLFつきで登録しているのに base.WriteLine( strData ) で書き込みをしているので 余分なCRLFがついてしまいます ここを base.Write( strData ) としてみましょう 読み込み時の不備は 読み込んだデータに #が含まれているのかをチェックしていない点です   Dim strSplit() As String = strLine.Split("#")   TextBox1.Text = strSplit(0)   TextBox2.Text = strSplit(1)   TextBox3.Text = a + 1 & "/" & current + 1   strLine = word(current) の部分を   if strLine.IndexOf( "#" ) >= 0 then     Dim strSplit() As String = strLine.Split("#")     TextBox1.Text = strSplit(0)     TextBox2.Text = strSplit(1)     TextBox3.Text = a + 1 & "/" & current + 1     strLine = word(current)   end if といった具合にして見ましょう

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

  if strLine.IndexOf( "#" ) >= 0 then     current += 1     Dim strSplit() As String = strLine.Split("#")     ' 不要 TextBox1.Text = strSplit(0)     ' 不要 TextBox2.Text = strSplit(1)     TextBox3.Text = a + 1 & "/" & current + 1     ' この処理は不要     ' strLine = word(current)     ' 読み込んだデータを配列に登録     word(current) = strLine   end if といった具合でしょう …

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

一部訂正 読み込み部分は   if strLine.IndexOf( "#" ) >= 0 then     current += 1     Dim strSplit() As String = strLine.Split("#")     TextBox1.Text = strSplit(0)     TextBox2.Text = strSplit(1)     TextBox3.Text = a + 1 & "/" & current + 1     ' この処理は不要     ' strLine = word(current)   end if でした …

mobsquad08
質問者

補足

ありがとうございます。 やってみたのですが、読み込んだ後に1つ前の単語に移ろうとするとエラーになってしまいます。

関連するQ&A

専門家に質問してみよう