如何通过进度组分隔符拆分此条形码?我没有运气就试过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.
答案 0 :(得分:0)
这是一个疯狂的猜测,但我在想ENTRY(entry-num,barcode-string,“group-separator-string”)?
答案 1 :(得分: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
.
答案 2 :(得分:0)
问题是GS是未定义的控制代码。所以你需要让它得到认可。
将以下内容添加到protermcap中的终端条目中,将GS定义为F13:
:( F13)= \ 035:\
(GS的八进制代码是\ 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。