首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >键盘条形码扫描器

键盘条形码扫描器
EN

Stack Overflow用户
提问于 2011-10-19 08:27:29
回答 2查看 926关注 0票数 0

我们在应用程序中使用条形码扫描器扫描条形码。通常,当扫描ISBN条形码时,它会在扫描ISBN: 97887021006268时返回以下一串键

  • B

  • LeftShift

  • M

  • D9

  • D7

  • D8

  • D8

  • D7

  • D0

  • D2

  • D1

  • D0

  • D6

  • D2

  • D6

  • D8

  • LeftCtrl

  • C

  • LeftCtrl LeftCtrl

LeftCtrl+B组合是前导,它告诉我们,我们正在开始读取标识号。LeftCtrl+C组合是一种后置形式,它告诉我们,我们正在完成读取识别号。LeftShift+M组合告诉我们我们读取条形码类型。根据这些信息,扫描条形码后,我可以自动搜索与相关的ISBN图书。我们正在使用我们自己的条形码阅读器库,在那里我们可以识别ISBN、Code39和I2Of5。

现在,我们的客户端都是新的条形码扫描仪,即键盘扫描器。扫描相同的ISBN后,我们可以看到它不包含、序言和postamble,就像返回条形码类型的代码一样好。相反,我们只得到数字,返回键的结尾:

  • D9
  • D7
  • D8
  • D8
  • D7
  • D0
  • D2
  • D1
  • D0
  • D6
  • D2
  • D6
  • D8
  • Return

在这种情况下,我无法自动识别条形码的类型,甚至无法识别是否扫描了条形码--例如,我无法自动搜索以解决我正在考虑的用户控件的问题:

使用选项(ISBN、scanned

  • RadioButton、I2Of5)

  • Button负责基于所选RadioButton选项的进一步处理)( TextBox和

中的值)标识数字

  • TextBox

我想问,是否有其他(更好)的解决办法。

EN

回答 2

Stack Overflow用户

发布于 2011-10-20 18:54:14

有几个提示你可以编码。如果您正在扫描一本真正的书,您将得到一个EAN13+5 Bookland代码。如果您使用的是不同的代码类型(如您的示例),则只会得到13位数字。检查长度== 13或长度== 18。

ISBN从978 (或979,最终)开始,最后以MOD 10校验和结束。所以你可以检查扫描值

代码语言:javascript
复制
/^(97[8|9]\d{10})5(\d{4})$/

美国定价的书。价格前的最后一个数字是校验和。这应该给你一个很好的指示,表明你正在使用ISBN。

我发现最好将其编码到服务器中,然后依靠用户进行正确的输入。

票数 1
EN

Stack Overflow用户

发布于 2011-10-19 11:39:12

你应该能够从两个很大的按钮“扫描簿”和“扫描顺序”中得到你丢失的信息,这样用户点击其中一个很大的按钮,你就知道要找什么了。

事情是这样的:

  1. 用户抓取他们想要扫描的任何东西,用户单击一个非常大的按钮“扫描簿”或“扫描顺序”(在这里您将得到不再具有的代码类型)
  2. 用户执行扫描
  3. ,您需要对扫描号

< code >G29执行所需的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7818466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档