以下のプログラムをVBに変換する仕方を教えてください。
サンプルプログラム
1110 CHKSUM=0
1120 FOR i=1 to LEN(A$) 'A$は送信データ
1130 CHKSUM=CHKSUM+ASC(MID$(A$,i,1)
1140 NEXT i
1150 C$=CHR$((CHKSUM+13) MOD 256)
1160 PRINT #1,A$;CHR$(13);C$;
私のVBプログラムは1110行から1150行まではそのままで
CHKSUM=0
FOR i=1 TO LEN(A$)
CHKSUM=CHKSUM+ASC(MID$(A$,i,1)
NEXT i
C$=CHR$((CHKSUM+13) MOD 256)
としました。
送信部分を
MSComm1.Output =A$ & CHR$(&H13) & C$
としてみましたが
1160行にあるセミコロン ";" はCHR$(&h3B) として送る必要があるのでしょうか?
MSComm1.Output =A$ & CHR$(&h3B) & CHR$(&h13) ・・・・・・
また、データとしてA$="I 02"のチェックサムは "リ" となりますが正しいのでしょうか?
以上ご教示ください。
No.1ベストアンサー
- 回答日時:
VBのバージョンは?
新しいものであれば内部はUniCode化されていると思うので昔のソースを移行するのは大変と思う、特に半角文字を扱う場合は
送信データはStrConvでAsciiにしてバイト配列にしチェックサムは XOR演算したと思ったけど・・・
偶数、奇数があるので最後に反転しないといけない場合もあるけど
それとPrint文の;は続けて書く場合に使いますのでCHR$(&h3B) を付ける必要はありません
Print "a","b" とすると a_______b となります_=Space
また Print "a";"b"とすると ab となります
Print "a"
Print "b"
なら
a
b
Print "a";
Print "b"
なら
ab
通常送信データには改行を送らないので
最後の Print "b" も Print "b"; と書きます
この回答への補足
ありがとう。
出力文中のコロン、セミコロン、カンマ はモニター表示形式と同じですよね。思い出しました。CHR$(&H13)は"CR" (&H0D) なので私の間違いでした。
どうもターゲット機器のサンプル通信プログラム仕様のバージョンが違う様で、コマンド自体も違っている様です。今日一日かけてコマンドを探るソフトを追加して応答が来るまで待ちます。皆さんありがとう。また宜しく。
No.2
- 回答日時:
移植性を考えるなら
Dim A$ → Dim A As String
MID$(A$, i, 1) → Mid(A, i, 1)
とすべきですね。これはVB.NET以降は型記号が使えないためです。
チェックサムは色々な形式があるので、何が正解かは「方式による」
としか言えません。Print文にある";"セミコロンは変換不要ですが、
","はvbTabに変換し、後方に何も無い場合は最後にvbCrLfを追加する
ようにします。
あと、CHR$(&H13)というのは独特の区切り記号なんですかねぇ?
もしかしてキャリッジリターンのことあればvbCrにすべきです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
チェックサムの実装方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
c++でmatからvectorへの変換の...
-
エクセルVBAの自動変換機能?
-
VB6からVB2010への変換について
-
bmp→jpgに、jpg→bmpに
-
System::Stringからconst char...
-
C言語からC#への変換ツール
-
Mac 乗数の入力方法
-
C#でのpngからbmpへの変換について
-
分を時間に変換するプログラム
-
XML→HTMLに変換したい
-
php
-
PHPで、日本語からアルファベッ...
-
VBAでUTF-8文字を読込、Excelに...
-
ACCESS 2.0から、2000、2002へ...
-
10進数をBCDに変換する方法
-
【EXCEL】カナ、ひらがなを英字...
-
Excel(全シート) → PDF変換を...
-
逆ポーランド記法への変換方法...
-
MATLABのMATファイル をC言語...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
エクセルVBAの自動変換機能?
-
UTF8→ShiftJISに変換したいです!
-
C/C++→JAVAに変換するツール
-
マンセル⇔XYZ,RGB変換式或いは...
-
なぜ通信には16進数文字列が使...
-
分を時間に変換するプログラム
-
C#でのpngからbmpへの変換について
-
【EXCEL】カナ、ひらがなを英字...
-
VB6からVB2010への変換について
-
3のつく数字と3の倍数のみを表...
-
逆コンパイルと逆アセンブルの...
-
c++でmatからvectorへの変換の...
-
VB6で10進数を32進数に変換する...
-
C#で漢字→ローマ字を変換
-
画像ファイル変換(Tiff→PDF)
-
StrConvの使い方について教えて...
-
php
おすすめ情報