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

解決


TA  2004-10-25 15:22:39  No: 117200  IP: [192.*.*.*]

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

編集 削除
ねろ  2004-10-25 15:54:47  No: 117201  IP: [192.*.*.*]

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

編集 削除
TA  2004-10-25 16:07:47  No: 117202  IP: [192.*.*.*]

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

編集 削除
ねろ  2004-10-25 16:26:58  No: 117203  IP: [192.*.*.*]

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

編集 削除
ABC  2004-10-25 16:40:06  No: 117204  IP: [192.*.*.*]

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

Dim A As String

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

ちなみにVB6の話です

編集 削除
TA  2004-10-25 17:53:44  No: 117205  IP: [192.*.*.*]

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

編集 削除
ABC  2004-10-25 17:55:17  No: 117206  IP: [192.*.*.*]

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

編集 削除
TA  2004-10-25 22:12:11  No: 117207  IP: [192.*.*.*]

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

編集 削除