Как опустить начальный 0 в штрих-коде 128C?

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

Этот "0" и есть проблема. Как я могу удалить это?

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


person André    schedule 09.02.2012    source источник


Ответы (2)


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

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

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

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

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

person Petesh    schedule 09.02.2012
comment
+1 — переключите подмножество, если вам нужно удалить начальный ноль. Подмножества A и B не требуют четного количества цифр, как C. - person afrazier; 09.02.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;
person Remy Lebeau    schedule 09.02.2012