データの一部だけ取り出すには?

解決


TA  2004-10-26 00:22:39  No: 117200

MSCOMMを使って磁気カードからデータを読み込んで、カードからデータがABC1234560000となっているのを123456だけ抜き出してString型に入れるにはどうしたらいいんでしょうか?分かる方いましたらよろしくお願いします。


ねろ  2004-10-26 00:54:47  No: 117201

データーのフォーマットを簡単でもいいから書いて頂かないと無理です。


TA  2004-10-26 01:07:47  No: 117202

返信ありがとうございます。フォーマットとはバイナリとかそういう事でしょうか?コードは今自宅ではないので手元にないのですが、このページを参考にして作りました。全く同じような内容のプログラムです。
http://www.picfun.com/serial07.html


ねろ  2004-10-26 01:26:58  No: 117203

フォーマットとは、たとえば、その取り出す「123456」は必ずデーターの4番目から始まって
6個までとか、123456がデーターにどのように入っているかの規則性です。


ABC  2004-10-26 01:40:06  No: 117204

文字列の一部を抽出するにはMid関数を使います。
下記コードで動きを確認して応用してください。

Dim A As String

A="ABC1234560000"
Debug.Print Mid(A,4,6)

ちなみにVB6の話です


TA  2004-10-26 02:53:44  No: 117205

>ねろさん
データは2番目から始まって8番目までの6個の文字をデータを取り出せるようにしたいです。
>ABCさん
関数を教えていただいてありがとうございます。文字は必ずABC1234560000でなくてもMid関数使えますでしょうか?例えばA1GG333330000になる場合あります。


ABC  2004-10-26 02:55:17  No: 117206

まずMid関数の説明を読んでください。


TA  2004-10-26 07:12:11  No: 117207

家で色々やってみた所、成功しました。みなさんどうもありがとうございました。後々の参考の為に一応コードを書いておきます。
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に収まらなくなるようです。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加