crc для штрих-кода

From
Alex Astafiev (2:5000/228.16)
To
Artem Anisimov
Date
2002-12-09T19:54:51Z
Area
RU.ALGORITHMS
А что ты слышал про распределенные вычисления folding@home, дорогой Artem?

 AA> Есть штpих-код из десяти цифp от 0 до 9. Одна цифpа отведена под
 AA> контpольную сумму. Подскажите, как лучше ее считать.

когда-то писалось мной в коммерческой софтине.



function DKEanCrc (const Code: string): string;
var
  I, M, N: Integer;
begin
  try
    N := 0;
    M := 0;
    for I := length (Code) downto 1 do
    begin
      if Odd (I) then N := N + StrToInt (Code [I])
      else M := M + StrToInt (Code [I]);
    end;
    M := ((M * 3) + N) mod 10;
    if M <> 0 then M := 10 - M;
    Result := IntToStr (M);
  except
    on E: Exception do
    raise EEanCrcError.Create ('Ошибка при формировании контрольного разряда'+
    ' кода Ean '+CR+'Неверные входные параметры:'+CR+Code);
  end;
end;


---
 * Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)