2

スキャンしたバーコードを使用して見つかった、または磁気ストリップ カードのデータに埋め込まれた ID キーを使用して、データを使用してユーザーのプロファイルを検索および取得するアプリケーションを作成しようとしています。後者は私を悲しませます。ユーザー プロファイルを検索する前に、磁気ストライプ データを解析する必要があります。

私の質問は、テキストボックスにスキャンされたテキストをキャプチャし、テキストボックスに表示される前に解析する方法はありますか?

私のリーダー/スキャナーはキーボード エミュレーション タイプなので、ストライプにエンコードされた各文字がテキスト ボックスに入力されているかのようです。解決策 (しかし、それが最善でしょうか?) は、(磁気ストライプ リーダーによってエミュレートされた) 各キーストロークをインターセプトし、それらをバッファーに格納し、読み取った文字列の最後まで空の文字を表示することだと思います。カードのデータの最後が読み取られると、id の id 部分を解析して表示できます。問題は...カードのデータ文字列が個々の文字キーストロークとして入力された場合、それがカードのデータ文字列の終わりであることをどのように知ることができますか?

4

2 に答える 2

2

最初の質問に対する答えは、テキストフィールドのドキュメントにDocumentFilterを設定することです。

..個々の文字キーストロークとして入力された場合、カードのデータ文字列の終わりであることをどのように知っていますか?

MSRは、いくつかの事前定義された文字の組み合わせとして、START_STRINGとEND_OF_LINE_STRINGを確実に発行します。MSRデバイスのデータ仕様をお読みください。それができたら、この擬似コードと同様のフィルターのinsertStringを実装できます。

if str == START_CHARACTER
    then clear buffer

if str == EOL_CHARACTER
    then parse and do super.insertString

else
    append string to buffer

この場合も、解析ロジックはMSRのデータ仕様を使用して実装できます。

(MSR =磁気ストライプリーダー)

于 2011-09-27T04:24:39.220 に答える
2

JTextFieldのドキュメントに追加されるテキストをインターセプトするために、ドキュメントフィルターを使用できるはずです。次に、文字列の終わりの文字を受け取ったら、テキストを解析してテキストフィールドに挿入できます。

于 2011-09-27T03:26:16.180 に答える