| ■No87151 (魔界の仮面弁士 さん) に返信 > ■No87150 (io さん) に返信
> それが最初の質問の > >> 01,10 20 11 15 FF > >> 02,10 20 ・・・・ > における "01," や "02," なのですね? > > でもって、ID=01 と ID=02 は別々のデータであり、 > 連結して一つにまとめるわけではない、と。 > その通りでございます ID=01とそれぞれ違う役割があるので ID=01に 0 20 11 15 FF Byte配列設定をしています
>>C,Byte配列3 > 1 ではなく A になっている点が読み取れませんでしたが、 > ここでいう ID は連番というよりも、種別コードみたいなものなのかな…。
わかりにくくてすいません、そのとおりです 種別コードと思ってください。
>>Aなら1というふうにプログラム上で書いていましたが >>ユーザー側が、Aにデータを追加したいとか > 管理を Dictionary(Of 種別, List(Of Byte)) あたりにしておけば、 > dict(種別.A).AddRange( 追加したいバイナリ ) > とか、 > Dim bin As Byte() = dict(種別.B).ToArray() > のような使い方ができそうです。 >
これはやったことがないなので 試してみます!
> その csv がどういう使われ方をしているのか分からないのですが、 > 今回問題になっているのはシリアル通信の部分ではなく、 > txt ファイルの内容をバイナリで読み取るところなのですね? > 簡単に言えば、システム作成側はByteなりどーいうものかなんとなくわかるのですが あくまでユーザーは一切わからない人達です
ユーザーはID側だけ設定して それに対し、登録?みたいな感じで、Byteをシリアルで読み込んでます
> > ファイルから読み取られた > Dim src As String = "10 20 11 15 FF" > なデータを変換して、 > Dim dst As Byte() = { &H10, &H20, &H11, &H15, &HFF } > にするのは、変換用に > Function ToBinary( src As String) As Byte() > なメソッドを一つ作ってやれば済む話ですし、実装例として > No87149 とか No75726 とかを真似れば良いはず。
ありがとうございます 変換は既にできています
> >>外に保存し > 「シリアル通信」でもデータを受け取り、「ファイル」でも受け取るのですか? > > どちらのデータがより優先させるのか、 > ファイルを開いている間に届いたシリアル通信のデータはどのように扱われるのか、 > そのファイルを「読み取る」だけでなく「書き込む」こともするのなら、排他制御の問題は、 > などなど、話が複雑化するような気がします…が、こちらはデータの流れを > 把握しているわけではないので、どうすべきかという点にまでは言及し難いです。
簡単な話
A,10 20 11 15 FF B,10 20 11 15 FF
と Txtファイルに書き込ませて
ABを逆にしたり A,10 20 11 15 FF,10 20 11 15 FF 追加したり
Byteを文字列に見せて コピペすればいいですよ的なものにしたかったです
あとはプログラムが変換 dic登録をして システムへとつなげるみたいな感じで
システム × ファイル ユーザー側 システム = ファイル 作成側
と
ユーザーはファイルだけいじるだけにしたかったのが目的となります
|