前提・実現したいこと
お世話になっております。
VB.NETでOpenFileDialogを使ってCSV形式のファイルを読み込んだ際に、
CSVファイルの列を削除したいです。
現在、CSVファイルの読み込み・処理はできているのですが、処理で使用する値は13列目しか使用していません。6列目の値を全て削除しています。
しかし、元データには6列目までデータが存在しており、読み込ませる前に4
この手間が面倒なので、CSVファイルを読み込んだ際に列を削除する方法を教えていただきたいです。
発生している問題・エラーメッセージ
「String"X座標"から型’Double’への変換は無効です。」
とメッセージが表示されました。
データを確認したところ、1~3列目に文字列が存在しているため発生しております。
データを読み込んだ段階で存在している文字列を削除できますでしょうか?
該当のソースコード
vb.netを入力
1 'ファイルを開く 2 Private Sub OpenButton_Click(sender As Object, e As EventArgs) Handles OpenButton.Click 3 With OpenFileDialog1 4 '選択ダイアログを開く 5 .Title = "点群ファイルの読み込み" 6 .FileName = "" 7 .Filter = "点群ファイル(*.csv)|*.csv|すべてのファイル(*.*)|*.*" 8 .DefaultExt = ".csv" 9 10 'ファイル名の表示 11 Dim result As DialogResult 12 result = OpenFileDialog1.ShowDialog 13 If result = Windows.Forms.DialogResult.OK Then 14 OpenFileText.Text = .FileName 15 MessageBox.Show(.FileName & "を読み込みました。", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Warning) 16 17 'ファイルの読み込み 18 Try 19 Dim ReadItems() As String 'CSVの各項目を表す配列 20 21 'ファイルを開く。 22 Dim sr As New IO.StreamReader(.FileName, System.Text.Encoding.GetEncoding("Shift-JIS")) 23 24 'ファイルの最後までループ 25 Do Until sr.Peek() = -1 26 ReDim Preserve PD(PDCount) 27 ReadItems = Split(sr.ReadLine(), ",") 28 29 PD(PDCount).Xpoint = CDbl(ReadItems(0)) 30 PD(PDCount).Ypoint = CDbl(ReadItems(1)) 31 PD(PDCount).Zpoint = CDbl(ReadItems(2)) 32 33 'データ確認 34 Console.WriteLine(PD(PDCount).Xpoint & vbTab & PD(PDCount).Ypoint & vbTab & PD(PDCount).Zpoint) 35 PDCount += 1 36 Loop 37 38 Catch ex As Exception 39 MessageBox.Show(ex.Message) 40 End Try 41 42 Else 43 MessageBox.Show(.FileName & "ファイルの読み込みに失敗しました。", 44 My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Warning) 45 End If 46 End With 47 End Sub
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー