0

Progressを使用してこのバーコードをグループ区切り文字で分割するにはどうすればよいですか?運が悪かったのでchr(29)を試しました。

Notepad ++にスキャンされたバーコード:http://i.imgur.com/8DmPZ.png

入力フィールドにスキャンされたバーコード:2409271405202120330017100282

ありがとう。

def var c as char no-undo.
def var i as int no-undo.

update c format "x(50)".

do i = 1 to length(c):
    message substr(c, i, 1) = chr(29).
end.
4

3 に答える 3

0

これは私のために働きます:

/* create a test file (otherwise not needed...)
 */

output to "barcode.dat".
put control "240927140520" chr(29) "2120330017" chr(29) "100282".
output close.

/* if you already have barcode.dat start here
 */

define variable m  as memptr    no-undo.
define variable bc as character no-undo.

set-size( m ) = 100.
input from "barcode.dat" binary no-convert.
import unformatted m.
input close.

bc = get-string( m, 1 ).

display
  entry( 1, bc, chr(29)) format "x(12)" skip
  entry( 2, bc, chr(29)) format "x(12)" skip
  entry( 3, bc, chr(29)) format "x(12)" skip
.
于 2012-03-31T21:32:31.633 に答える
0

勝手な推測ですが、私は ENTRY(entry-num、barcode-string、"group-separator-string")?

于 2012-03-31T17:33:37.933 に答える
0

問題は、GS が未定義の制御コードであることです。そのため、それを認識させる必要があります。

protermcap のターミナルのエントリに以下を追加して、GS を F13 として定義します。

:(F13)=\035:\

(GS の 8 進コードは \035 で、F13 は未定義のファンクション キーなので、この組み合わせで動作するはずです。テストするスキャナはありませんが、これはキーボードに入力できる制御コードで動作します。. .)

次に、次のようなコードを使用します。

define variable bc as character no-undo format "X(50)".

update bc editing:
  if lastkey = 313 then
    apply ".".  /* 313 is the code for F13 */
   else
    apply lastkey.
end.

これにより、「。」が発生するはずです。GSの代わりに挿入されます。これにより、「。」を使用して文字列を解析できます。GSではなく。

于 2012-04-03T14:51:47.750 に答える