掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CSVファイルの作成方法に関して (ID:103341)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
開発環境:VB2008 あるホームページを参考に、以下のような記述をし、CSVファイルを作成するような プログラムを作成しています。 また、CSVは何度も作成される為、一旦、削除してから作り直すというような事をしたい と考えています。 削除の記述はわかるものの、新しくCSVファイル作成するには、以下の記述をどのように 修正すれば良いでしょうか、、、 教えて下さい。 よろしくお願いいます。 《記述内容》 '保存先のCSVファイルのパス Dim csvPath As String = "C:\TEST.csv" 'CSVファイルに書き込むときに使うEncoding Dim enc As System.Text.Encoding = _ System.Text.Encoding.GetEncoding("Shift_JIS") '開く Dim sr As New System.IO.StreamWriter(csvPath, False, enc) Dim colCount As Integer = dtTable.Columns.Count Dim lastColIndex As Integer = colCount - 1 'ヘッダを書き込む Dim i As Integer For i = 0 To colCount - 1 'ヘッダの取得 Dim field As String = dtTable.Columns(i).Caption '"で囲む必要があるか調べる If field.IndexOf(ControlChars.Quote) > -1 OrElse _ field.IndexOf(","c) > -1 OrElse _ field.IndexOf(ControlChars.Cr) > -1 OrElse _ field.IndexOf(ControlChars.Lf) > -1 OrElse _ field.StartsWith(" ") OrElse _ field.StartsWith(ControlChars.Tab) OrElse _ field.EndsWith(" ") OrElse _ field.EndsWith(ControlChars.Tab) Then If field.IndexOf(ControlChars.Quote) > -1 Then '"を""とする field = field.Replace("""", """""") End If field = """" + field + """" End If 'フィールドを書き込む sr.Write(field) 'カンマを書き込む If lastColIndex > i Then sr.Write(","c) End If Next i '改行する sr.Write(ControlChars.Cr + ControlChars.Lf) 'レコードを書き込む Dim row As DataRow For Each row In dtTable.Rows For i = 0 To colCount - 1 'フィールドの取得 Dim field As String = row(i).ToString() '"で囲む必要があるか調べる If field.IndexOf(ControlChars.Quote) > -1 OrElse _ field.IndexOf(","c) > -1 OrElse _ field.IndexOf(ControlChars.Cr) > -1 OrElse _ field.IndexOf(ControlChars.Lf) > -1 OrElse _ field.StartsWith(" ") OrElse _ field.StartsWith(ControlChars.Tab) OrElse _ field.EndsWith(" ") OrElse _ field.EndsWith(ControlChars.Tab) Then If field.IndexOf(ControlChars.Quote) > -1 Then '"を""とする field = field.Replace("""", """""") End If field = """" + field + """" End If 'フィールドを書き込む sr.Write(field) 'カンマを書き込む If lastColIndex > i Then sr.Write(","c) End If Next i '改行する sr.Write(ControlChars.Cr + ControlChars.Lf) Next row '閉じる sr.Flush() sr.Close()
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.