Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Функция вычисления контрольной суммы

Один программист спрашивает у другого:
- Как ты считаешь контрольную сумму?
Второй не задумываясь:
- Я честно считаю контрольную сумму!


//Проверка ИНН

//Функция вычисления контрольной суммы
function TForm1.KontrSumINN(n:integer;inn:string):integer;
var
  s, i: integer;
  checksum: array [1..11] of integer;
begin
  s:=0;
  checksum[1] :=3;
  checksum[2] :=7;
  checksum[3] :=2;
  checksum[4] :=4;
  checksum[5] :=10;
  checksum[6] :=3;
  checksum[7] :=5;
  checksum[8] :=9;
  checksum[9] :=4;
  checksum[10]:=6;
  checksum[11]:=8;
  for i:=1 to n-1 do
    s:=s+(strtoint(copy(inn,i,1))*checksum[12-n+i]);

  Result:=s mod 11 mod 10;
end;

//Функция проверки ИНН, если ИНН правильный возвращает TRUE
function TForm1.INN(inn:string):boolean;
var
  len:integer;
begin
  len:=length(inn);
  Result:=false;
  if len = 10 then
    if strtoint(copy(inn,10,1))=KontrSumINN(10,inn) then
      Result:=true;
  if len = 11 then
    if strtoint(copy(inn,11,1))=KontrSumINN(11,inn) then
      Result:=true;
  if len = 12 then
    if strtoint(copy(inn,12,1))=KontrSumINN(12,inn) then
      Result:=true;
end;

//Пример:
procedure TForm1.Button1Click(Sender: TObject);
begin

  if Inn('5436100041') then
    label1.Caption:='ИНН Правильный!'
  else
    label1.Caption:='ИНН НЕ Правильный!';

// inn('5436100041')=true;
// inn('5436100042')=false;

end;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay