Laden...

Barcodestring Code128B berechnen

Erstellt von fpa vor 16 Jahren Letzter Beitrag vor 16 Jahren 4.026 Views
F
fpa Themenstarter:in
32 Beiträge seit 2007
vor 16 Jahren
Barcodestring Code128B berechnen

Beschreibung:

Mit Hilfe dieser Methode wird ein übergebener String in einen "Barcodestring" (inkl. Start-, End- und berechnetem Prüfzeichen) umgewandelt. Dieser kann dann mit Hilfe einer Code128 TTF (einfach google''n) ausgegeben werden.

public static string GetCode128BString(string textToConvert)
        {
            /* Diese Methode wandelt den übergebenen String in einen String um, welcher mit Hilfer einer Code128-Schrift 
             * ausgegeben werden kann. Es wird ein Start- und Endzeichen eingefügt und die erforderliche Prüfsumme 
             * berechnet. */

            char[] convertCharArray = textToConvert.ToCharArray();
            char startSign = (char)204, endSign = (char)206;
            string barcodeString = startSign.ToString();
            int index = 1; // Multiplikator zum Berechnen der Prüfsumme
            int checkDigitValue = 104; // Code 128B erfordert einen Startwert von 104

            /* Inhalt des zu codierenden Strings zeichenweise wieder zum Ergebnisstring hinzufügen und dabei die 
             * Prüfsumme mitberechnen. Enthält der zu codierende String ein Zeichen, welches sich nicht im gültigen
             * ACSII-Bereich befindet, wird der Vorgang abgebrochen und ein leerer String zurückgegeben. */

            foreach (char c in convertCharArray)
            {
                if (((int)c < 32) || ((int)c > 126)) return string.Empty;

                barcodeString += c.ToString();
                checkDigitValue += ((int)c - 32) * index;
                ++index;
            }

            // Das Prüfzeichen bei Code128B setzt sich aus dem Rest der Division durch 103 zusammen.
            checkDigitValue = checkDigitValue % 103;

            if (checkDigitValue > 94) checkDigitValue += 100; else checkDigitValue += 32;

            // Prüfzeichen und Endzeichen zum Ergebnisstring hinzufügen
            barcodeString += ((char)checkDigitValue).ToString() + endSign.ToString();
            return barcodeString;
        }

Schlagwörter: Barcode, Code128B

Quelle: .NET-Snippets

Die voluminöse Expansion gewisser subterraner Agrarprodukte ist irrational reziprok zur spirituellen Kapazität des Agronomen.
Die dümmsten Bauern haben die größten Kartoffel.