Scannerizzare i pharmacode

raffaelefesta

Nuovo Utente
3 Nov 2016
1
0
1
60
Salve a tutti. Nel tentativo di creare un app che mi legga i codici a barre delle fustelle dei farmaci ho utilizzato zxinc come libreria, e seguendo qualche tutorial su android studio e usando per il debug il mio huawei p10 light sono riuscito a scriverla (quasi copiata). Poi mi sono reso conto che tutti i codici a barre li legge, mentre il bollino farmaceutico (code39) lo legge dando sei caratteri. Studiando in giro ho visto che segue la base 32 e ho fatto un piccolo programma che mi convertiva la base.
Codice:
char lettera;
                    double verocodice = 0;
                    for (int i = 0; i < result.getContents().length(); i++) {
                       lettera = result.getContents().charAt(i);
                       verocodice += (ConversioneLettereNumeri(lettera) * Math.pow((double) 32, (double) ((6 - i - 1))));
                    }
         //           TextView tv = (TextView) findViewById(R.id.risultato);
           //         tv.setText((int) verocodice);
                    Toast.makeText(this, (int) verocodice, Toast.LENGTH_LONG).show();
  public int ConversioneLettereNumeri(char lettera) {
        switch (lettera) {

            case '0':
                return (0);
            case '1':
                return (1);
            case '2':
                return (2);
            case '3':
                return (3);
            case '4':
                return (4);
            case '5':
                return (5);
            case '6':
                return (6);
            case '7':
                return (7);
            case '8':
                return (8);
            case '9':
                return (9);
            case 'B':
                return (10);
            case 'C':
                return (11);
            case 'D':
                return (12);
            case 'F':
                return (13);
            case 'G':
                return (14);
            case 'H':
                return (15);
            case 'J':
                return (16);
            case 'K':
                return (17);
            case 'L':
                return (18);
            case 'M':
                return (19);
            case 'N':
                return (20);
            case 'P':
                return (21);
            case 'Q':
                return (22);
            case 'R':
                return (23);
            case 'S':
                return (24);
            case 'T':
                return (25);
            case 'U':
                return (26);
            case 'Vu':
                return (27);
            case 'W':
                return (28);
            case 'X':
                return (29);
            case 'Y':
                return (30);
            case 'Z':
                return (31);
            default:
                return (0);
        }
    }

il nuovo codice ottenuto è il codice che si legge sul farmaco, solo che quando vado a richiamare la funzione Toast il programma non da il risultato e si chiude.
 
Ultima modifica di un moderatore: