タイトル | : NullReferenceException? |
記事No | : 1382 |
投稿日 | : 2005/02/09(Wed) 15:04 |
投稿者 | : さち |
[OSのVer]:Windows xp [VBのVer]:VB.NET
じゃんぬねっとさん、たくボンさんありがとうございます。 結構調べたつもりなんですが、まだまだのようです。 配列に格納、までのコーディング中2点ほど エラーが出てしまいます。 一つは NullReferenceExceptionで 以下のコードの sss(i) = ss のところです。
また昨日頂いたご返答に「4行まとめて読み込み」 というのがありましたがこれはどうされるのでしょうか ReadLineを使用して1行づつというところまではできたのですが・・・ また「CSV形式に変換」に関してエクセルを使ったり そういったソフトがあるのかと思い探しもしたのですが たくボンさんが仰った変換方法はどれを指していたのでしょうか。 また下記コメントにもありますが毎回vbCrLfの挿入で エラーが出てしまいこれを使用するのを避けていました。 長くなりましたがお気づきの点などございましたら教えて下さい。 よろしくお願いします。
++++++++++++++++++++++++++++++++++++++++++++++++++++
Dim found As String If comboBox1.Text = "A" Then found = "data/A.txt" ElseIf comboBox1.Text = "B" Then found = "data/B.txt" Else Exit Sub End If Dim sr As New System.IO.StreamReader(found, System.Text.Encoding.Default) Dim sb As New System.Text.StringBuilder(CInt(Microsoft.VisualBasic.FileSystem.FileLen(found) * 1.1)) Dim ss As String Dim sss() As String Dim i As Integer = 0
'ファイルの最後までループ Do Until sr.Peek = -1 '空白行にぶつかるまで変数ssに各行を格納 Do Until sr.ReadLine.Trim() = "" 'ss = ss & sr.ReadLine & vbCrLf 'としたいのですがここでもvbCrLfが宣言されてませんとのメッセージが出ます。 ss = ss & sr.ReadLine Loop sss(i) = ss ss = "" i += 1 Loop
sr.Close() 'ためしに6つめのデータを表示 TextBox2.Text = sss(5).ToString() 「オブジェクト参照がインスタンスに設定されていません。」 とのメッセージですが変数ssにはなにも入ってないのでしょうか・・・
********************************** Arrayクラスに関して 見様見真似で使ってみたのですが Arrayクラスの使い方自体はこれで良かったのでしょうか・・・
(中略) Dim sr As New System.IO.StreamReader(findee, System.Text.Encoding.Default) Dim sb As New System.Text.StringBuilder(CInt(Microsoft.VisualBasic.FileSystem.FileLen(findee) * 1.1)) Dim ss As String Dim sss() As String Dim i As Integer = 0 Dim myarray As Array 'ファイルの最後までループ Do Until sr.Peek = -1 '1行づつ読込む(文字列の連結が高速に処理される) Do Until sr.ReadLine.Trim() = "" 'ss = ss & sr.ReadLine & vbCrLf ss = ss & sr.ReadLine Loop myarray.SetValue(ss,i) ss = "" i += 1 Loop
|