Italian Convertire ean 128 in una mappa [Risolto] Grazie sirjo66

Xfood

Expert
Licensed User
ciao a tutti,
sto impazzendo nel decodificare un ean 128 ( imballo prodotti) in una mappa
ho questo ean:

1694185586873.png


letto con un qualsiasi lettore scanner mi ritorna questa stringa
01980081105541283103009140172309201002743989


mi piacerebbe avere una mappa di chiave valore in questo modo:
chiave, Valore
01 98008110554128
3103 009140
17 230920
10 02743989


leggendo nei vari siti si fa riferimento ad un carattere separator FNC1 ascii 29 1D
ma non riesco a suddividere queesta stringa in chiave e valore,
qualcuno si e' mai imbattuto in una cosa simile?
quanche idea..

Grazie mille a tutti
 

LucaMs

Expert
Licensed User
Longtime User
Ne so... niente 😄 ma se supponi che ci siano caratteri speciali non visibili, controlla la lunghezza della stringa ottenuta.

Così, a naso, se ottieni:

01980081105541283103009140172309201002743989

e la sua lunghezza non corrisponde a 44, le cifre qui sopra, sarà già un indizio.
 

Xfood

Expert
Licensed User
Ne so... niente 😄 ma se supponi che ci siano caratteri speciali non visibili, controlla la lunghezza della stringa ottenuta.

Così, a naso, se ottieni:

01980081105541283103009140172309201002743989

e la sua lunghezza non corrisponde a 44, le cifre qui sopra, sarà già un indizio.
credo sia piu complicato del previsto,
il risultato dei caratteri e' sempre 44
ma se copio quella stringa 01980081105541283103009140172309201002743989
e la incollo in questo sito, mi formatta l'ean 128 corretto, come fara mai????





1694187382584.png
 

BlueVision

Active Member
Licensed User
Longtime User
Sarà un po' difficile...
In linea di principio, questo è un codice a barre GS1-128. Si tratta di un codice 128 che contiene dati strutturati secondo le specifiche GS1.
Il problema è che, come nel vostro esempio, qualsiasi cosa può essere codificata con un codice a barre di questo tipo. Per prima cosa ho dovuto documentarmi su questo argomento...

WIKIPEDIA:

00 Numero dell'unità di spedizione: numero unico mondiale della spedizione, internazionale: SSCC (Serial Shipping Container Code).
01 GTIN dell'unità commerciale (numero di articolo, 14 cifre).
10 Numero di lotto/ numero di partita dell'articolo
11 Data di produzione (AAAAMMGG)
15 Data di scadenza (AAAAMMGG)
17 Data di scadenza (AAAAMMGG)
21 Numero di serie
30 Quantità, lunghezza variabile
310x Peso netto in chilogrammi (valore intero a 6 cifre con zeri iniziali), un valore per x indica il numero di cifre decimali

Sotto il codice a barre sono riportati gli identificatori unici tra parentesi. Nel vostro caso:
01, 3103, 17 e 10.

Purtroppo non si vedono le parentesi nel codice a barre. Le parentesi sono assenti. E vedo un altro problema:
(01) lunghezza normale 14 cifre, nel vostro codice è 15?
(310X) lunghezza 6 cifre con zeri iniziali
(17) data a 6 cifre
(10) Lunghezza probabilmente non definita...

Dove si delimitano i singoli valori l'uno dall'altro senza parentesi? Si potrebbero almeno estrarre (17) e (3103) dal codice, a patto che non compaiano due volte, cosa piuttosto improbabile con (3103).
In questo caso, uno scanner sarebbe ingegnoso, magari leggendo i marcatori o i caratteri speciali (forse sono parentesi), quindi sarebbe possibile un'assegnazione perfetta.
Ho provato tutti i miei scanner. Danno tutti lo stesso risultato e non aiutano molto. Ma sto ancora cercando...
 

Xfood

Expert
Licensed User
Ah, forse intendi che se incolli i 44 caratteri, poi ti fa vedere il barcode preciso, con tanto di parentesi rotonde?
esatto, sembra che ci sia una sorta di algoritmo che " capisce" dove mettere le parentesi, e come codificare il tutto,
mi servirebbe capire l'algoritmo di lettura ....
 

Xfood

Expert
Licensed User
Sarà un po' difficile...
In linea di principio, questo è un codice a barre GS1-128. Si tratta di un codice 128 che contiene dati strutturati secondo le specifiche GS1.
Il problema è che, come nel vostro esempio, qualsiasi cosa può essere codificata con un codice a barre di questo tipo. Per prima cosa ho dovuto documentarmi su questo argomento...

WIKIPEDIA:

00 Numero dell'unità di spedizione: numero unico mondiale della spedizione, internazionale: SSCC (Serial Shipping Container Code).
01 GTIN dell'unità commerciale (numero di articolo, 14 cifre).
10 Numero di lotto/ numero di partita dell'articolo
11 Data di produzione (AAAAMMGG)
15 Data di scadenza (AAAAMMGG)
17 Data di scadenza (AAAAMMGG)
21 Numero di serie
30 Quantità, lunghezza variabile
310x Peso netto in chilogrammi (valore intero a 6 cifre con zeri iniziali), un valore per x indica il numero di cifre decimali

Sotto il codice a barre sono riportati gli identificatori unici tra parentesi. Nel vostro caso:
01, 3103, 17 e 10.

Purtroppo non si vedono le parentesi nel codice a barre. Le parentesi sono assenti. E vedo un altro problema:
(01) lunghezza normale 14 cifre, nel vostro codice è 15?
(310X) lunghezza 6 cifre con zeri iniziali
(17) data a 6 cifre
(10) Lunghezza probabilmente non definita...

Dove si delimitano i singoli valori l'uno dall'altro senza parentesi? Si potrebbero almeno estrarre (17) e (3103) dal codice, a patto che non compaiano due volte, cosa piuttosto improbabile con (3103).
In questo caso, uno scanner sarebbe ingegnoso, magari leggendo i marcatori o i caratteri speciali (forse sono parentesi), quindi sarebbe possibile un'assegnazione perfetta.
Ho provato tutti i miei scanner. Danno tutti lo stesso risultato e non aiutano molto. Ma sto ancora cercando...
grazie mille per il tuo aiuto, sembra che esista un algoritmo che passi la stringa 01980081105541283103009140172309201002743989,
e dovrebbe ritornare (01)98008110554128(3103)009140(17)230920(10)02743989 e quindi poi poter formalizzare i dati... ma come????
 

BlueVision

Active Member
Licensed User
Longtime User
Viel Glück 😄 (italiano in Germania?)
Perfetto!
(Deepl sembra essere davvero buono...
No, sono un vero prussiano di Berlino. Ma ci sono forti legami familiari con il profondo sud di questo bel paese, la Sicilia per essere precisi. E così mi diletto nel forum italiano di tanto in tanto. Questo non ti rende più stupido.
È solo che per anni non sono stato in grado di affrontare la lingua in sé (la trovo bellissima). Ma per me una vacanza significa sempre Sicilia. Non riesco a immaginare niente di più bello.

Granita, pesce spada, gente rilassata e amichevole e questo bellissimo Etna...)
 

BlueVision

Active Member
Licensed User
Longtime User
grazie mille per il tuo aiuto, sembra che esista un algoritmo che passi la stringa 01980081105541283103009140172309201002743989,
e dovrebbe ritornare (01)98008110554128(3103)009140(17)230920(10)02743989 e quindi poi poter formalizzare i dati... ma come????
Bella domanda, sto ancora cercando... Il problema è davvero impegnativo. Chi costruisce questi standard?
 

BlueVision

Active Member
Licensed User
Longtime User
Source: https://www.barcodefaq.com/1d/gs1-128/

Many barcode scanners do not decode FNC1 codes. However, when the “format” option of the IDAutomation SC5USB Barcode Scanner is set to “UCC/EAN-128,” FNC1 codes are decoded as ]C1 for the first FNC1 and ASCII 29 (The <GS> character) for additional FNC1 codes as required by GS1. IDAutomation’s Barcode Scanner ASCII String Decoder or the Barcode Decoder Verification App may be used to view the <GS> character.

Edit:
Non ci sono esperti di codici a barre sul forum? Cercherei di portare questa domanda nel forum normale o almeno di inserire un link in qualche modo. Con i soliti strumenti di traduzione, non dovrebbe essere un problema. Anche se la lingua inglese potrebbe essere un problema. Sono felice di aiutare.
 
Last edited:

Xfood

Expert
Licensed User
Bella domanda, sto ancora cercando... Il problema è davvero impegnativo. Chi costruisce questi standard?
spulciando il db di un procedura che legge correttamente i codici ho trovato questa tabella di appoggio
allego il file estratto in csv potrebbe servire???
1694189602710.png
 

Attachments

  • codiciIA.csv.txt
    29.6 KB · Views: 66

BlueVision

Active Member
Licensed User
Longtime User
Sicuramente. Tuttavia, poiché la lunghezza delle singole sottostringhe può variare, diventa difficile anche in questo caso. Alla fine, probabilmente questi marcatori vi serviranno in qualche modo...

Sicilia? (visto nel footer...)
 

BlueVision

Active Member
Licensed User
Longtime User
Bellissima! Ricordiamo la Scala dei Turchi, la Valle dei Templi e sulla strada una sosta a Piazza Armerina. Quando sono sull'isola è più probabile che la trovi a est, nei dintorni di Acireale. Forse questa volta riuscirò finalmente ad arrivare a Trapani....

Questo aiuta?

Il codice è un po' vecchio. La funzione "MID" mi sembra una funzione stringa delle StringFunctions. È possibile sostituirla facilmente con Substring o Substring2.

Edit:
L'ultimo viaggio sull'isola, poi in qualche modo è arrivato Corona. Ma tornerò sicuramente a maggio. E se devo correre lì.
 
Last edited:

Xfood

Expert
Licensed User
Bellissima! Ricordiamo la Scala dei Turchi, la Valle dei Templi e sulla strada una sosta a Piazza Armerina. Quando sono sull'isola è più probabile che la trovi a est, nei dintorni di Acireale. Forse questa volta riuscirò finalmente ad arrivare a Trapani....
in un attimo hai fatto il giro della sicilia... :) Ottimo... ;-)


Purtroppo no, controlla solo se ce il carattere iniziale, non splitta il codice
 

Sagenut

Expert
Licensed User
Longtime User
00 Numero dell'unità di spedizione: numero unico mondiale della spedizione, internazionale: SSCC (Serial Shipping Container Code).
01 GTIN dell'unità commerciale (numero di articolo, 14 cifre).
10 Numero di lotto/ numero di partita dell'articolo
11 Data di produzione (AAAAMMGG)
15 Data di scadenza (AAAAMMGG)
17 Data di scadenza (AAAAMMGG)
21 Numero di serie
30 Quantità, lunghezza variabile
310x Peso netto in chilogrammi (valore intero a 6 cifre con zeri iniziali), un valore per x indica il numero di cifre decimali
Questi sono tutti i marcatori possibili o ne esistono altri?
 
Top