如何从128C条形码中省略前导0?

时间:2012-02-09 15:49:19

标签: delphi barcode fastreport

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

这个“0”是个问题。我怎么能删除这个?

我正在使用Delphi 2010和FastReport 4.9.72。

2 个答案:

答案 0 :(得分:10)

Code 128C条形码需要是偶数个数字。这是设计的。

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

如果值为12,则基础表示将为12

因此数字628只能由0628

表示

关于Code 128的维基百科文章解释了128A,128B和128C编码之间的差异。

答案 1 :(得分:1)

从字符串中删除前导零:

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;