Einzelnen Beitrag anzeigen

HighBaer

Registriert seit: 11. Aug 2008
Ort: Köln
8 Beiträge
 
Delphi 11 Alexandria
 
#84

AW: [Bibliothek] Barcode für Delphi (Zint)

  Alt 11. Okt 2013, 13:33
Zunächst an Chaosben an den anderen des Teams: Klasse Arbeit!

Mir ist da auch ein kleiner Fehler in Micro-QR aufgefallen:

Bei Auswahl der "Version 4" kommt es zu einer Zugriffsverletzung.

Ich denke der Fehler liegt daran, dass bei der Umwandlung von "TmqVersion" zu Option_2 Version 1 den Wert 1 hat usw.
intern wird aber mit den Werten 0 bis 3 gearbeitet. Wert 4 führt daher zu dem Fehler, ich vermute daher auch, dass bei Auswahl von "Version 2" in Wirklichkeit Version 3 angezeigt wird.

Der Fehler ist meine Meinung nach in "zint_qr.pas" in Funktion "microqr" (Zeile 2451):
Delphi-Quellcode:
   
// Get version from user
if((symbol.option_2 >= 1) and (symbol.option_2 <= 4)) then
begin
  if(symbol.option_2 >= autoversion) then
    //version := symbol.option_2; Originalzeile
    version := symbol.option_2 - 1; // geändert
end;

In der gleichen Funktion vorher in Zeile 2405 ist vermutlich auch was falsch, was aber nicht so gravierend ist:

Delphi-Quellcode:
   // Eliminate possible versions depending on error correction level specified
   ecc_level := LEVEL_L;
   if((symbol.option_1 >= 1) and (symbol.option_2 <= 4)) then
     ecc_level := symbol.option_1;
Sollte der 2. Vergleich nicht "symbol.option_1 <= 4" lauten, macht in meinen Augen mehr Sinn.

Ich hoffe, ich habe Euch damit weitergeholfen ...
  Mit Zitat antworten Zitat