Codice 128 – Algoritmo decisionale

La codifica 128 non è univoca, ma, in alcuni casi, gli stessi dati possono essere rappresentati utilizzando differenti tabelle e differenti combinazioni di caratteri di start.
Quello che segue è l’algoritmo che permette di decidere quale codifica utilizzare per minimizzare la lunghezza del codice

  1. – Determinazione del carattere di Start:
    • 1a – se i dati cominciano con 4 o piu’ cifre, usare il carattere di Start C;
    • 1b – altrimenti se nei dati compare un carattere di controllo prima di qualsiasi carattere alfabetico minuscolo, usare il carattere si Start A;
    • 1c – altrimenti, usare il carattere di Start B.
  2. – Se e’ verificata la condizione 1a con un numero dispari di cifre, inserire un carattere Code A o Code B prima dell’ultima cifra, seguendo le regole 1b e 1c per scegliere tra Code A e Code b.
  3. – Se si presentano 4 o piu’ cifre numeriche mentre si e’ in Code A o in Code B:
    • 3a – se le cifre sono in numero pari, inserire un carattere Code C prima della prima cifra;
    • 3b – vicersa, se le cifre sono in numero dispari, insrire in carattere Code C dopo la prima cifra.
  4. – Se si presenta un carattere di controllo mentre si e’ Code B:
    • 4a – se tra il carattere di controllo in questione e il successivo c’e’ un carattere alfabetico minuscolo, inserire un carattere di shift prima del carattere di controllo;
    • 4b – viceversa, inserire un carattere Code A prima del carattere di controllo.
  5. – Se compare un carattere alfabetico minuscolo mentre si e’ in Code A:
    • 5a – se tra il carattere alfabetico minuscolo in questione ed il successivo c’e’ un carattere di controllo, inserire un carattere di shift prima del carattere alfabetico minuscolo;
    • 5b – altrimenti, inserire un carattere Code B prima del carattere alfabetico minuscolo.
  6. – Se si ha un carattere non numerico mentre si e’ in Code C, inserire un carattere Code A o Code B prima del carattere in questione, seguendo le regole 1b e 1c per scegliere tra Code A e Code B.