BarcodeLib/Symbologies/Code11.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Text;
namespace BarcodeLib
{
class Code11 : BarcodeCommon, IBarcode
{
private string[] C11_Code = { "101011", "1101011", "1001011", "1100101", "1011011", "1101101", "1001101", "1010011", "1101001", "110101", "101101", "1011001" };
public Code11(string input)
{
Raw_Data = input;
}//Code11
/// <summary>
/// Encode the raw data using the Code 11 algorithm.
/// </summary>
private string Encode_Code11()
{
if (!BarcodeLib.Barcode.CheckNumericOnly(Raw_Data.Replace("-", "")))
throw new Exception("EC11-1: Numeric data and '-' Only");
//calculate the checksums
int weight = 1;
int CTotal = 0;
string Data_To_Encode_with_Checksums = Raw_Data;
//figure the C checksum
for (int i = Raw_Data.Length - 1; i >= 0; i--)
{
//C checksum weights go 1-10
if (weight == 10) weight = 1;
if (Raw_Data[i] != '-')
CTotal += Int32.Parse(Raw_Data[i].ToString()) * weight++;
else
CTotal += 10 * weight++;
}//for
int checksumC = CTotal % 11;
Data_To_Encode_with_Checksums += checksumC.ToString();
//K checksums are recommended on any message length greater than or equal to 10
if (Raw_Data.Length >= 1)
{
weight = 1;
int KTotal = 0;
//calculate K checksum
for (int i = Data_To_Encode_with_Checksums.Length - 1; i >= 0; i--)
{
//K checksum weights go 1-9
if (weight == 9) weight = 1;
if (Data_To_Encode_with_Checksums[i] != '-')
KTotal += Int32.Parse(Data_To_Encode_with_Checksums[i].ToString()) * weight++;
else
KTotal += 10 * weight++;
}//for
int checksumK = KTotal % 11;
后面还有 32 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。