Barcodes Filtern
Verfasst: Samstag 13. Oktober 2007, 02:25
Um Barcodes bei der Erkennung zu Filtern, also unerwünschte Barcodes zu auszufiltern, kann ein Script auf die Recognitionengine gelegt werden.
Hier ein Beispiel inkl. der Modulo 10 Prüfung von 2of5 Barcodes.
Dieser Filter beinhaltet folgendes:
Hier ein Beispiel inkl. der Modulo 10 Prüfung von 2of5 Barcodes.
Dieser Filter beinhaltet folgendes:
- 1. Prüfsummen Check (bei 2of5 Barcodes)
2. Max. und Min. Wert des Barcodes (einstellbar über BcLowVal und BcHighVal)
3. Längenprüfung
4. Zudem eine Prüfung auf Barcodewiederholungen
Code: Alles auswählen
// ====================================================================
// Barcodeprüfung
// 2 of 5 interleaved (Modulo 10)
// ====================================================================
function CheckBarcode(Barcode) : Boolean;
begin
try
Summe := 0;
BcChkSum := strtoint(copy(Barcode,length(Barcode),1));
Barcode := copy(Barcode,1,length(Barcode)-1);
for i:=1 to 7 do
begin
if i mod 2 = 0
then Summe := Summe + strtoint(Barcode[i])
else Summe := Summe + (strtoint(Barcode[i]) * 3);
end;
Checksum := 10 - (Summe Mod 10);
if Checksum >= 10 then Checksum := 0;
if CheckSum = BcChkSum
then Result := true
else Result := false;
except
Result := false;
end;
end;
// ====================================================================
begin
if RecoResult > '' then
begin
BcLowVal := 0;
BcHighVal := 13999999;
BcStr := RecoResult;
RecoResult := '';
LfCr := chr($0d) + chr($0a);
BcStr := Replace(BcStr,LfCr,chr($0a));
BCStr := trim(Replace(BCStr,chr($0a),LfCr)) + LfCr;
while pos(LfCr,BcStr) > 0 do
begin
Barcode := trim(copy(BcStr,1,pos(LfCr,BcStr)-1));
delete(BcStr,1,pos(LfCr,BcStr)+1);
if length(Barcode) = 8 then
begin
try
BcInt := strtoint(Barcode);
if (BcInt >= BcLowVal) and (BcInt <= BcHighVal) then
begin
if (CheckBarcode(Barcode) = true) then
begin
if (LastRecoResult <> Barcode)
then RecoResult := Barcode;
exit;
end;
end;
except
end;
end;
end;
end;
end;
// ====================================================================