Bonjour,
j'essaie de créer une application pour faire l'inventaire sur une douchette de chez opticon.
Mais le problème est que quand je scan un code barre j'appelle une fonction qui me dis si le code barre existe dans un fichier (que je charge sur la douchette).
la fonction me renvoie un message qui me dis que le code barre existe alors que dans le fichier il y est pas.
Quand je trouve mon code barre dans le fichier je demande de me l'afficher est a chaque fois j'obtiens ce code barre :
2600003264997 alors que c'est pas celui qui est scanner.
le code barre pour le quelle j'obtient le problème est le : 20173852
Fichier source : ( fichier .txt)
0000000000032
0000000000048
2600003264997
2600003298466
2600003315361
Fonction de recherche
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 int getbarcode( char barcode) { FILE *fichier = NULL; fichier = fopen(fichier_source[0], "r"); int traitement=-1; if (fichier != NULL) { char line [ TAILLE_MAX ]; /* or other suitable maximum line size */ while ( fgets ( line, sizeof line, fichier ) != NULL ) /* read a line */ { if ( *line == barcode) { printf("\n%s",line); traitement = 1; break; } } fclose(fichier); } else { // On affiche un message d'erreur si on veut printf("\nImpossible d'ouvrir le fichier"); } return traitement; }
Fonction qui scan le code barre et appel la fonction de recherche
est ce que vous pouvez m'aider a comprendre pourquoi j'ai ce problème ?
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 void scancodebarre( void ) { putchar('\f'); printf("Scanner code barre"); int key; char string[ 40+1 ]; int codeId; char barcode = 0; FILE* fichier = NULL; fichier = fopen("INVENT.txt", "w"); for(;;) { string[0] = '\0'; printf("\fEcrit ou scan.."); key = ScanOrKeyboardInputSymbol( string, 1, 13, INPUT_NUM, 0, 1, 14, &codeId ); switch( key ) { case KEYBOARD: barcode = string[0]; // printf("\n"); // fprintf(fichier,"%d;1\n",barcode); // printf("%d;1\n",barcode); break; case SCANNED: barcode = string[0]; // printf("\n"); // fprintf(fichier,"%d;1\n",barcode); // printf("%d;1\n",barcode); break; default: break; } resetkey(); int traitement = -1; traitement = getbarcode(barcode); if (traitement == 0) { printf("\ncode barre inconnu"); } else if (traitement ==1) { printf("\ncode barre connu"); } resetkey(); WaitForKey(); if(KeyboardInput(string,1,40,INPUT_ALL,0,1,14,2,CLR_KEY,ENT_KEY) == CLR_KEY){ break; } } fclose(fichier); printf("\fFin inventaire"); WaitForKey(); }
j'ai aussi un autre problème qui est que j'ai le choix de scanner ou d'écrire le code barre mais quand j'écris le code barre je n'est pas de message qui me dis si le code barre existe ou pas.
Partager