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
- – 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.
- – 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.
- – 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.
- – 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.
- – 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.
- – 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.