Bonjour, je développe actuellement un programme sur un appareil de type lecteur de code à barres.
http://us.ute.com/products_info.php?...pc2=72&pid=274
J'utilise donc le compilateur, qui se nomme JOBGEN PLUS, fourni par le fabricant pour générer mon code et pouvoir dialoguer avec l'appareil.
Celui ci tourne sur DOS 8.3 (donc pas de nom de fichiers de plus de 8 caractères sinon il m'affiche des noms courts).
Pour faire simple, le code suivant navigue à la racine de l'appareil, ouvre chaque fichier trouvé si celui ci est un .txt, va lire et récupérer une info dans ce fichier et change le nom de celui ci avec ce qu'il a lu.
dirent.h n'était pas inclus dans mon compilateur je l'ai donc rajoutée.
Code : 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 #include "dirent.h" _prog() { DIR* rep=NULL; struct dirent* lec=NULL; FILE* fichier=NULL; int fin=0; rep=opendir("."); if (rep!=NULL) { while (fin==0) { lec=readdir(rep); if (lec!=NULL) { if ((strcmp(lec->d_name,".")!=0)&&(strcmp(lec->d_name,"..")!=0)&&(strchr(lect-d_name,".txt")!=NULL)) { fichier=fopen(lec->d_name,"r"); fseek(fichier,35,SEEK_SET); fgets(_temp7,8,fichier); fclose(fichier); rename(lec->d_name,_temp7); } } else { fin=1; } } closedir(rep); } }
_temp7 est une variable prédéclarée par mon système de type chaine de caractère.
Au final, j'ai des erreurs qui me disent que _readdir(),_opendir(), closedir() sont introuvables.
Après quelques recherches sur internet, je me rends compte que ces fonctions sont utilisées pour UNIX et que pour windows il faut utilisé le header windows.h avec les fonctions :
"Sous Windows, on utilise les fonction FindFirstFile() et FindNextFile() en recherchant les fichiers nommés "*.*" (c'est-à-dire tous les fichiers, tous les dossiers). Le HANDLE retourné par FindFirstFile() doit être fermé dès qu'il n'est plus nécessaire grâce à la fonction FindClose(). Ces fonctions ne parcourent pas les sous dossiers. Le programme suivant liste le contenu du répertoire courant."
Donc vais je droit dans le mur ?
Partager