MSCOMMを使って磁気カードからデータを読み込んで、カードからデータがABC1234560000となっているのを123456だけ抜き出してString型に入れるにはどうしたらいいんでしょうか?分かる方いましたらよろしくお願いします。
データーのフォーマットを簡単でもいいから書いて頂かないと無理です。
返信ありがとうございます。フォーマットとはバイナリとかそういう事でしょうか?コードは今自宅ではないので手元にないのですが、このページを参考にして作りました。全く同じような内容のプログラムです。
http://www.picfun.com/serial07.html
フォーマットとは、たとえば、その取り出す「123456」は必ずデーターの4番目から始まって
6個までとか、123456がデーターにどのように入っているかの規則性です。
文字列の一部を抽出するにはMid関数を使います。
下記コードで動きを確認して応用してください。
Dim A As String
A="ABC1234560000"
Debug.Print Mid(A,4,6)
ちなみにVB6の話です
>ねろさん
データは2番目から始まって8番目までの6個の文字をデータを取り出せるようにしたいです。
>ABCさん
関数を教えていただいてありがとうございます。文字は必ずABC1234560000でなくてもMid関数使えますでしょうか?例えばA1GG333330000になる場合あります。
まずMid関数の説明を読んでください。
家で色々やってみた所、成功しました。みなさんどうもありがとうございました。後々の参考の為に一応コードを書いておきます。
Private Sub msSerial_OnComm()
Dim Buffer As String
Dim Number As String
Select Case msSerial.CommEvent
Case comEvReceive '受信データを表示
Buffer = msSerial.Input
Number = Mid(Buffer, 2, 8)
Text1.Text = Number'テストの為の表示
あと、参考になるか分かりませんがRThresholdの値を変えていかないとStringに収まらなくなるようです。
ツイート | ![]() |