Nur mal ne schnelle Frage: wenn ich einer Prozedur/Funktion ein Array übergebe, ergibt low immer 0?
Zur Verdeutlichung mal ein kurzes Beispiel:
Delphi-Quellcode:
procedure getChecksumme(var bc : array of Byte);
var i,cs : Byte;
begin
cs := 0;
for i := low(bc) to high(bc)-1 do
begin
if (i mod 2 = 0)
then cs := cs + bc[i]
else cs := cs + bc[i]*3;
end;
if (cs mod 10 = 0)
then cs := 0
else cs := 10 - (cs mod 10);
bc[high(bc)] := cs;
end;
Der Proezdur übergebe ich ein array[1..13]of Byte. low spuckt mir aber 0 statt 1 raus. Wenn das immer so ist (auch wenn das Array mal mit 2, 12 oder weiss der Geier was anfängt) ist alles i.O. Ansonsten muss ich mir noch was anderes überlegen, damit jedes 2. Array-Elemente mit 3 multipliziert wird.
Schönen Dank im Voraus,
Thomas
P.S.: Bevor wer fragt, ja es geht um die Prüfsumme des EAN13