初めて投稿させて頂くkuro_sanと申します。どうぞよろしくお願いします。
現在visual basic 2008を用いてプログラムを作成しているのですが、データの読み込み、書き込みを行う箇所で問題が発生したために、行き詰まっております。
コードを以下に示させて頂きます。
[書き込み処理関数]
Private Sub WriteLog(ByVal FileName As String)
'File Open
Dim Writer As New IO.StreamWriter(FileName, True)
'書き込み処理
For i As Integer = 0 To i
Writer.WriteLine(Table(0, i) & "," & Table(1, i) & "," & Table(2, i))
Next
Writer.Close()
End Sub
[読み込み処理関数]
Private Sub Readlog(ByVal FileName As String)
Dim Reader As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding("Shift-JIS"))
Dim Items() As String = New String() {}
Dim Line As String = Reader.ReadLine 'CSVの一行
'データの読み込み
i = 0
Do Until IsNothing(Line)
Items = Line.Split(",")
i += 1
Table(0, i) = Items(0).ToString
Table(1, i) = Items(1).ToString
Table(2, i) = Val(Items(2))
Line = Reader.ReadLine
Loop
End Sub
です。
書き込みはtext形式の物に行っています。Table配列には(0,i),(1,i)にはString型の文字が、(2,i)には数字が入力されています。
入力、出力は行うことが出来るのですが、(0,i),(1,i)にひらがな、カタカナ、漢字などの文字が使われていると、読み込みを行った際に文字化けして格納されてしまいます。
(例:くろ,kuro,1 → 縺上m,kuro,1)
出力されたtextの中では文字化けが起こっていませんが、形式を直接csvに変換したり、読み込みを行った際に文字化けが発生している事から、書き込み時に問題があるのではないか、と思い調べているのですが、原因を判明できていません。
文字化けを発生させずに読み込み、書き込み処理を行う方法をご存知である方がいらっしゃればご教授頂けますと幸いです。
No.1ベストアンサー
- 回答日時:
StreamWriterのそのタイプのコンストラクタはUTF-8で書き込みます
それに対してStreamReaderでのエンコーディングがShiftJISを指示しているので文字化けが発生します
StreamReaderのコンストラクタを
Dim Reader As New IO.StreamReader(FileName, System.Text.Encoding.UTF8)
といった具合にして見ましょう
またShiftJISで統一するならStreamWriterを
Dim Writer As New IO.StreamWriter(FileName, True, System.Text.Encoding.GetEncoding("Shift-JIS"))
といった具合に エンコーディングの形式を引数で与えましょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DoEvents関数って何?
-
小数点を含む数値かどうか判断...
-
【C言語 数独】 C言語で9×9の数...
-
Excelでのセル内容の高速消去方法
-
テキスト処理の速度の速い言語
-
テキストファイルの空行をスキ...
-
Excel VBA での処理時間計測結...
-
WebBrowserの読み込み待ちの処...
-
ソートにかかった時間を測りたい。
-
itunesのビットレートについて
-
C#で書かれたプログラムをバッ...
-
コンピュータは"数字"か「文字...
-
VBS でプログラムを先頭から再試行
-
ゲームプログラミングの乱数で...
-
散布図グラフの近似線追加後に...
-
30年間のPC技術の展開 教えて...
-
C言語 時刻差分の算出方法
-
実行時のCPU使用率を増やしたい
-
「単体テスト」に関する深刻な...
-
異なるプログラミング言語を連...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
Excelでのセル内容の高速消去方法
-
小数点を含む数値かどうか判断...
-
Chat GPTに、課題として、二と...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
WebBrowserの読み込み待ちの処...
-
ノットイコールを教えて下さい
-
実行時のCPU使用率を増やしたい
-
プログラム上のCPU稼働率低減に...
-
Excel(VBA)でSetTimer関数を使...
-
C言語:関数を使うメリットとデ...
-
あっち向いてホイのプログラム...
-
VC++2010 GDIオブジェクトの解...
-
Excel VBA での処理時間計測結...
-
If Not c Is Nothing Then ~延...
-
符号付きにすべきか、符号なし...
-
ソートにかかった時間を測りたい。
-
プログラミングの授業でPython...
おすすめ情報