Как опустить ведущий 0 в штрих-коде 128C? - PullRequest
4 голосов
/ 09 февраля 2012

Если я, например, введу 12345 в свойство «текстового» штрих-кода, то получится 012345.

Это «0» - проблема. Как я могу это убрать?

Я использую Delphi 2010 и FastReport 4.9.72.

Ответы [ 2 ]

10 голосов
/ 09 февраля 2012

Штрих-код Code 128C должен быть четным числом цифр. Это по замыслу.

Существует соотношение 1: 1 между числами и полученным выходом, и выход выровнен по 2 цифрам. В случае 1 код 128C представляет это число 01

если значение было 12, то базовое представление было бы 12

, поэтому цифры 628 могут быть представлены только как 0628

Статья в Википедии о Код 128 объясняет различия между кодировками 128A, 128B и 128C.

1 голос
/ 10 февраля 2012

Чтобы удалить ведущие нули из строки:

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;
...