【问题标题】:How do I omit the leading 0 from a 128C bar code?如何从 128C 条码中省略前导 0?
【发布时间】:2012-02-10 04:20:14
【问题描述】:

例如,如果我将 12345 放在“文本”条码的属性中,则输出为 012345。

这个“0”就是问题所在。我怎样才能删除它?

我使用的是 Delphi 2010 和 FastReport 4.9.72。

【问题讨论】:

    标签: delphi barcode fastreport


    【解决方案1】:

    Code 128C 条形码必须是偶数位数。这是设计使然。

    数字和结果输出之间存在 1:1 映射,并且输出是 2 位对齐的。在 1 的情况下,此号码的 Code 128C 表示为 01

    如果值为12,则底层表示为12

    所以数字628只能用0628表示

    关于 Code 128 的维基百科文章解释了 128A、128B 和 128C 编码之间的区别。

    【讨论】:

    • +1 - 如果您需要删除前导零,请切换子集。子集 A 和 B 没有 C 的“偶数位数”要求。
    【解决方案2】:

    要从字符串中删除前导零:

    function RemoveLeadingZeros(const S: String): String;
    var
      I, NumZeros: Integer;
    begin
      Len := 0;
      for I := 1 to Length(S) do
      begin
        if S[I] <> '0' then Break;
        Inc(NumZeros);
      end;
      if NumZeros > 0 then
        Result := Copy(S, NumZeros+1, MaxInt)
      else
        Result := S:
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多