Feedback

C# - Barcodestring Code128B berechnen

Veröffentlicht von am 03.05.2007
(1 Bewertungen)
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.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

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;
        }
Abgelegt unter Barcode, Code128B.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!