Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: ISBN und EAN Prüfziffernberechnung

  Alt 26. Sep 2005, 16:31
Prüfziffern werden häufig aus einer gewichteten Summe errechnet.
Es bietet sich an, dies durch eine Funktion errechnen zu lassen:
Delphi-Quellcode:
{**************************************************************************
* NAME:    PZ_SummenBildung
* DESC:
*  Berechnung einer gewichteten Summe
*  es gibt je einem Gewichtungsfaktor für gerade und ungerade Ziffern
* RESULT:  die gewichtete Summe
*************************************************************************}

function PZ_SummenBildung(const s:string; ungerade,gerade:integer):Integer;
var
   sum_a, sum_b : integer;
   IsOdd : boolean;
   n : integer;
   ziffer : integer;
begin
   sum_a := 0;
   sum_b := 0;

   IsOdd := Odd(Length(s));

   for n:=1 to Length(s) do
   begin
      ziffer := Ord(s[n])-Ord('0');
      if IsOdd then
         sum_a := sum_a + ziffer
      else
         sum_b := sum_b + ziffer;
      IsOdd := not IsOdd;
   end;

   result := sum_a * ungerade + sum_b * gerade;
end;
Andreas
  Mit Zitat antworten Zitat