[바코드] EAN-13 체크 디지트 구하는 루틴
{-------------------------------------------------------------------------------
1. 시스템 명: NeoSimzi
2. 함 수 명: Barcode_CheckDigit_F
3. 설 명: 바코드 checkDigit
4. 리 턴 값:
5. 작 성 일: 2002-09-15
6. 주의 사항:
7. 수정 내역: make By Yeol
-------------------------------------------------------------------------------}
function Barcode_CheckDigit_F(code: string):string;
var
i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12 : integer;
ia, ib, ic : integer;
begin
result:=code;
if (Length(code) = 12) then begin
i1 := strtoint(Copy(code,1,1));
i2 := strtoint(Copy(code,2,1));
i3 := strtoint(Copy(code,3,1));
i4 := strtoint(Copy(code,4,1));
i5 := strtoint(Copy(code,5,1));
i6 := strtoint(Copy(code,6,1));
i7 := strtoint(Copy(code,7,1));
i8 := strtoint(Copy(code,8,1));
i9 := strtoint(Copy(code,9,1));
i10 := strtoint(Copy(code,10,1));
i11 := strtoint(Copy(code,11,1));
i12 := strtoint(Copy(code,12,1));
ia := i2+i4+i6+i8+i10+i12;
ia := ia * 3 ;
ib := i1+i3+i5+i7+i9+i11;
ic := ia + ib;
ic := 10 - (ic mod 10);
if ic = 10 then ic := 0;
result := code+inttostr(ic);
end
else if (Length(code) = 7) then begin
i7 := strtoint(Copy(code,1,1));
i6 := strtoint(Copy(code,2,1));
i5 := strtoint(Copy(code,3,1));
i4 := strtoint(Copy(code,4,1));
i3 := strtoint(Copy(code,5,1));
i2 := strtoint(Copy(code,6,1));
i1 := strtoint(Copy(code,7,1));
ia := i1+i3+i5+i7;
ia := ia * 3 ;
ib := i2+i4+i6;
ic := ia + ib;
ic := 10 - (ic mod 10);
if ic = 10 then ic := 0;
result := code+inttostr(ic);
end;
end;