【发布时间】:2021-04-29 13:18:21
【问题描述】:
我必须在 C# 中为 Code128 类型的条形码计算校验和数字,类似于这篇文章:https://support.idautomation.com/Code-128/Manually-calculate-check-digit-for-Code-128/_1025
我阅读了这个页面,其中给出了一些计算示例:https://www.barcodefaq.com/1d/code-128/#CalculationExamples
它说明了算法的基本步骤:
- 参考字符集表获取起始字符和所有数据字符的值。
- 为每个数据字符(不是起始字符,只是数据字符)分配一个权重。权重从 1 开始,每个数据字符增加一个。
- 将字符值乘以数据字符的权重。
- 将包括起始字符在内的这些加在一起,除以 103 并获得余数。
- 使用字符集表查找具有余数的字符,将其用作校验字符。
我大致理解了这个描述,但我不确定如何实现“引用字符集表以获取...字符的值”部分
可能的问题是:如何根据我是否需要根据 Code128 字符集的版本/代码集 A、B 或 C 的校验和来编写获取某个字符的值的代码? https://www.barcodefaq.com/1d/code-128/#Code-128CharacterSet
我是否必须使用代码中的字符集重新创建表(作为一个大字典?)或者我可以执行一些简单的计算来获取 Code128 版本/CodeSet A、B 或c?
我应该如何实现这些方法?
private uint GetValueForCode128Character_CodeSetA(char character)
{
}
private uint GetValueForCode128Character_CodeSetB(char character)
{
}
private uint GetValueForCode128Character_CodeSetC(char character)
{
}
我也看了这个问题的答案:Is this code for calculating Code128 barcode check digits correct?
但这似乎指的是一般的算法(我理解),而不是根据 Code128 代码集 A、B 或 A 为某些字符获取该值。
感谢您的宝贵时间。
【问题讨论】: