2012-04-02 103 views
0

容器标有JA1234标签。这个容器应该总是到达目的地A. 另一个容器用标签1234标识。绝大多数容器都以这种方式标记,并且这些容器始终到达目的地B.将字母数字字符串转换为乱码条形码?

(注意:容器池不断摇晃我们无法保留主列表。)

用户可以扫描/键入容器标识符。许多容器没有条形码,所以他们需要输入数字。当它被输入前缀'JA'被忽略时,程序错误检查突然失败(允许错误的目的地)。

为了防止进入和强制条形码我想要求程序扫描条形码。让用户始终扫描条形码的唯一方法是以乱码(即十六进制)格式提供条形码。

是否有任何内置的.NET框架功能,将可读的字符串转换为需要扫描的不可读的内容?它需要是可逆的。

回答

1

听起来好像你希望用户总是输入整个字符串,而你的用户忽略了部分字符串。为了解决这个问题,您希望用户只使用条形码扫描仪。

但是你真的有三种选择。

  1. 只打印出条形码。他们不能输入他们看不到的东西。然而,这是不好的,因为如果条形码被损坏,您将无法回退到用户输入

  2. 使用诸如System.Convert.ToBase64String之类的东西进行编码。这很糟糕,因为那么您需要输出SkExMjM0MTIzNA==这样的值,JA12341234这很容易在用户输入时错误输入。

  3. 使用校验码并将其附加到字符串。然后您可以拒绝错误输入的代码或条形码扫描仪不正确读取的代码。缺点是没有内置的可以直接转换“JA2134”,你必须创建自己的校验位功能。

+0

Thanks @Conrad。我也曾想过#1。另一个问题是资产的标识符印在他们身上(真的很大)。 #2听起来像是一个不错的选择,但我会得到程序允许主管输入正常版本。 – 2012-04-04 12:53:19

相关问题