AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Bibliothek] Barcode für Delphi (Zint)
Thema durchsuchen
Ansicht
Themen-Optionen

[Bibliothek] Barcode für Delphi (Zint)

Ein Thema von chaosben · begonnen am 27. Nov 2009 · letzter Beitrag vom 24. Okt 2020
Antwort Antwort
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#1

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

  Alt 30. Okt 2013, 07:09
Das kann ich grad nicht nachvollziehen.
Wenn cc_width gleich 4 ist, dann läuft die Schleife (j) bis 3 (cc_width - 1) und schreibt maximal an die Stelle 4 (j + 1).
Das ist sollte das dummy-array aber vertragen.

Kannst du mal bitte die Daten (Primary und Daten) posten, mit denen der Fehler auftritt?
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Carsten2

Registriert seit: 14. Jun 2010
22 Beiträge
 
Delphi 4 Standard
 
#2

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

  Alt 30. Okt 2013, 10:32
ja stimmt.
aber cc_width kann grösser 4 sein.
zB. bei Data: "[78] 1234" Primary: "12345678905"
Vielleicht gibt es die Werte nicht,
aber ich möchte bei falschen Werten den "Absturz" verhindern.
Zint Barcode Studio 2.4 verabschiedet sich bei diesen Werten ganz.

So mogel' ich simpler
Code:
if cc_width > 4 then cc_width := 4; //Neu
Der Fehler liegt vorher - ein cc_width grösser 4.

Nützt alles nichts.
Die Werte lassen bei Mode CC-B das Programm in die Knie gehen.
Und zwar diesmal hier:

function cc_b:
Code:
for j := 0 to symbol.option_2 - 1 do
      dummy[j + 1] := chainemc[i * symbol.option_2 + j];

Geändert von Carsten2 (30. Okt 2013 um 10:59 Uhr)
  Mit Zitat antworten Zitat
Carsten2

Registriert seit: 14. Jun 2010
22 Beiträge
 
Delphi 4 Standard
 
#3

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

  Alt 30. Okt 2013, 11:45
Fehler/Absturz abgefangen:

function composite:
Code:
case symbol.symbology of
    { Determine width of 2D component according to ISO/IEC 24723 Table 1 }
    BARCODE_EANX_CC:
    begin
      case pri_len of
        7, { EAN-8 }
        10, { EAN-8 + 2 }
        13: { EAN-8 + 5 }
          cc_width := 3;
        12, { EAN-13 }
        15, { EAN-13 + 2 }
        18: { EAN-13 + 5 }
          cc_width := 4;
        else //Neu
        begin //Neu
          concat(symbol.errtxt, 'Input wrong length in linear component'); //Neu
          result := ZERROR_INVALID_DATA; exit; //Neu
        end; //Neu
      end;
    end;
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

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

  Alt 31. Okt 2013, 10:21
Sehr gut! Danke für die gute Zuarbeit.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Carsten2

Registriert seit: 14. Jun 2010
22 Beiträge
 
Delphi 4 Standard
 
#5

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

  Alt 31. Okt 2013, 19:48
function maxicode(

postcode[9] := #0; wurde vergessen, sonst gibt's Probleme in maxi_do_primary_2.


Code:
    ArrayCopy(postcode, symbol.primary);
    postcode[9] := #0;//Neu

    if (mode = 2) then
    begin
      //for i := 0 to 9 do //Neu
      for i := 0 to 8 do //Neu
  Mit Zitat antworten Zitat
Carsten2

Registriert seit: 14. Jun 2010
22 Beiträge
 
Delphi 4 Standard
 
#6

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

  Alt 31. Okt 2013, 21:12
Deswegen wurde in maxicode latin1_process nochmals aufgerufen:

function latin1_process
Code:
      if (source[i] = $C2) then
      begin
        preprocessed[j] := source[i + 1];
        if (preprocessed[j] < 128) then begin //Neu
          Inc(j);
          next := i + 2;
        end; //Neu
      end;
      if(source[i] = $C3) then
      begin
        preprocessed[j] := source[i + 1] + 64;
        if (preprocessed[j] < 128) then begin //Neu
          Inc(j);
          next := i + 2;
        end; //Neu
      end;
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#7

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

  Alt 1. Nov 2013, 08:34
Danke!

Das mit dem Array_Copy und dem #0 an 9. Stelle habe ich gefixt.
Deinen zweiten Vorschlag in der latin1_process verstehe ich nicht. Kannst du mir das ein bisschen erklären? (bin grad schwer von Begriff)
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz