- 締切済み
シリアル受信データをファイルに書き出したい
マイコンとPCをCOMポートで通信し、受信データをファイルに書き出したいのです。 やってみたこと1.と2.の間を埋める技術についてアドバイスをお願いします。 1.キーボード入力したテキストボックスの内容をファイルに書き出す ⇒書けました、OK Dim xxx As New System.IO.StreamWriter("e:xxx.txt", False, System.Text.Encoding.Default) xxx.WriteLine(TextBox1.Text) xxx.Close() 2.サンプルコードでシリアル通信 ⇒受信データがテキストボックスに表示されました、OK 以下サイトを参考に勉強中、テキストボックス部分を抜粋させて頂きます (http://www.kana-soft.com/tech/sample_0008_4.htm#1) 3.2.で表示されたテキストボックスの内容を、1.のように書き出したいのですが 上手くいきません。'■から'■間に xxx.WriteLine(RcvTextBox.Text) 書いてみましたが e:xxx.txtは作成されません。delegate、invokeの理解不足が原因かと思うのですが、 調べ回るうちに・・・限界みたいです。(^_^;) (抜粋) '===== Private Delegate Sub Delegate_RcvDataToTextBox( data As String ) '===== Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Try '受信データを読み込む. Dim data As String data = SerialPort1.ReadExisting() '受信したデータをテキストボックスに書き込む. Dim args(0) As Object args(0) = data Invoke(New Delegate_RcvDataToTextBox(AddressOf Me.RcvDataToTextBox), args) Catch ex As Exception MsgBox( ex.Message ) End Try End Sub '===== Private Sub RcvDataToTextBox( data As String ) '受信データをテキストボックスの最後に追記する. If IsNothing( data ) = False Then RcvTextBox.AppendText( data ) End If '■ Dim xxx As New System.IO.StreamWriter("e:xxx.txt", False, System.Text.Encoding.Default) xxx.WriteLine(RcvTextBox.Text) xxx.Close() '■ End Sub ===== 以上、駄目出しをよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- samtomsan
- ベストアンサー率55% (1060/1897)
Eドライブのルートに書き出したいのでしょうか。 > "e:xxx.txt" ドライブ指定が違っているだけのように見えます。 "e:\xxx.txt" 「¥」が必要
お礼
御指摘ありがとうございました。 e:\xxx.txt とすることで、書き出しができました。(^_^)v いじっているうちに”\”を消してしまったみたいです・・・ ちなみに、1.では2.の一部をコピペして動作確認したのですが、 "\"無しの"e:xxx.txt"でも書き出しができたので、気付きませんでした。