Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1691 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Evaluer le texte d'un fichier comme du code C.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Evaluer le texte d'un fichier comme du code C.

n°897223
Chronoklaz​m
Posté le 12-11-2004 à 21:43:10  profilanswer
 

Je connais pas exactement le terme a employer pour ce genre de "lecture"
d'un fichier, mais en gros je voudrais "lire" le texte d'un fichier
comme du code c (sachant pertinament que ca doit etre du code c), ceci
pour eviter de "chercher" dans le texte.
 
J'ai le fichier test.txt, contenant la representation d'une image :
 
#define test_width 16
#define test_height 16
static unsigned char test_bits[] = {
   0x18, 0xc0, 0xc0, 0xe0, 0x30, 0x78, 0x00, 0x0c, 0x30, 0x3b, 0x30, 0x78,
   0x80, 0xc1, 0x36, 0x18, 0x0c, 0xf6, 0xbc, 0x61, 0x78, 0x60, 0x30, 0x18,
   0x30, 0xe0, 0x30, 0xc0, 0xe0, 0x01, 0x06, 0x00};
 
J'ai donc besoin de recuperer les dimensions (16 et 16) de cette image,  
mais aussi le tableau.
 
Plutot que d'extraire les chaines puis les convertir (enfin de ce prendre
la tête quoi) existe til un moyen plus intelligent, genre evaluer directement
les 3 lignes ?  :whistle:

mood
Publicité
Posté le 12-11-2004 à 21:43:10  profilanswer
 

n°897268
Taz
bisounours-codeur
Posté le 12-11-2004 à 22:51:27  profilanswer
 

le C ça s'évalue pas. fais le à la main ou avec un truc comme flex

n°897278
Diody
Posté le 12-11-2004 à 23:00:21  profilanswer
 

Chronoklazm a écrit :


#define test_width 16
#define test_height 16
static unsigned char test_bits[] = {
   0x18, 0xc0, 0xc0, 0xe0, 0x30, 0x78, 0x00, 0x0c, 0x30, 0x3b, 0x30, 0x78,
   0x80, 0xc1, 0x36, 0x18, 0x0c, 0xf6, 0xbc, 0x61, 0x78, 0x60, 0x30, 0x18,
   0x30, 0xe0, 0x30, 0xc0, 0xe0, 0x01, 0x06, 0x00};


 
Si ton fichier ne contient que ce texte la, un bete #include "test.txt" ne suffit pas ?

n°897279
HelloWorld
Salut tout le monde!
Posté le 12-11-2004 à 23:01:34  profilanswer
 

Tu utilises une bibliothèque qui sait lire le format XBM :
http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/XBM.txt


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°897280
Lam's
Profil: bas.
Posté le 12-11-2004 à 23:01:37  profilanswer
 

Taz a écrit :

le C ça s'évalue pas. fais le à la main ou avec un truc comme flex


Meuh si. Il y a Tcc ( http://fabrice.bellard.free.fr/tcc/ ) et smac, qui fait partie de xcoral.
 
Mais son format, ça ressemble furieusement à XPM (ou un truc dans le genre). Donc ça vaut le coup de regarder du coté des libs XPM...
 
edit: grillé par HelloWorld.


Message édité par Lam's le 12-11-2004 à 23:02:29
n°897303
Ace17
Posté le 12-11-2004 à 23:36:35  profilanswer
 

C'est quoi l'arnaque avec Tcc? Il doit bien y avoir un inconvenient quelque part !

n°897304
Chronoklaz​m
Posté le 12-11-2004 à 23:38:03  profilanswer
 

Merci messieurs pour vos reponses :)
 
HelloWorld ===> J'ai pas le droit de faire ca :( C'est moi qui est censé le faire le bitmap, bmtoa et le atobm. (en gros ce qui lit et ecrit ce format)
 
Lam's ========> Pas de flex non plus.
 
Diody ========> Excellente idée ! Peut on faire un #include conditionnel dependant d'une variable ?  
 
Genre un truc comme  :
 

Code :
  1. /* Je recupere le nom de mon fichier depuis argv[1], donc le fichier se trouve dans le rep. courant ... */
  2. if(ok==true){
  3.    #include argv[1]
  4. else
  5.    printf("Error" );
  6. /* hhmmm et apres je l'ai dans le petch en fait, je ne peux
  7. pas recuperer les dimensions ... */


 
 
Bon va faloir faire tout à la main :(


Message édité par Chronoklazm le 12-11-2004 à 23:44:25
n°897305
Lam's
Profil: bas.
Posté le 12-11-2004 à 23:39:26  profilanswer
 

Ace17 a écrit :

C'est quoi l'arnaque avec Tcc? Il doit bien y avoir un inconvenient quelque part !


 
Bah ça optimise pas, donc bye bye les perfs.  
 
Mais il y avait une version encore plus rikiki qui avait gagnée à l'ioccc (enfin, l'ioccc, c'est comme l'école des fans: tout le monde gagne).


Message édité par Lam's le 12-11-2004 à 23:40:19
n°897311
matafan
Posté le 12-11-2004 à 23:45:01  profilanswer
 

#include est une instruction du préprocesseur. C'est évalué à la compilation, pas à l'exécution. Donc non, on ne peut pas faire de #include conditionnel dépendant d'une variable. Ca n'a pas de sens.

n°897312
Lam's
Profil: bas.
Posté le 12-11-2004 à 23:47:20  profilanswer
 

Chronoklazm a écrit :


Bon va faloir faire tout à la main :(


 
Oui. Donc lire les deux premières lignes, allouer de la mémoire, puis te taper les valeurs une par une (avec une mini-machine à état par exemple).  
 
Ca doit être le but de l'exercice...

mood
Publicité
Posté le 12-11-2004 à 23:47:20  profilanswer
 

n°897313
Chronoklaz​m
Posté le 12-11-2004 à 23:48:35  profilanswer
 

... de se faire chier :)

n°897319
Chronoklaz​m
Posté le 13-11-2004 à 00:01:05  profilanswer
 

Mais le fait que les fichier xbm sont du code c et pas juste une suite de symboles (ou de carac. hexadecimaux comme les vrai fichier bitmap, jpeg ...) ca a une raison non ? Et cette raison ne peut (logiquement) etre autre chose que la maniere d'en faciliter la lecture ...
Enfin jveu dire pourquoi du code c ? C'est ptet pas pour rien.

n°897325
Lam's
Profil: bas.
Posté le 13-11-2004 à 00:04:08  profilanswer
 

Oui, à la base, c'est fait pour que tu puisses inclure tes images à la compilation (typiquement: inclure les icones pour XWindows, tout comme les applications Windows incluent les .ico au format  BMP) pour que l'image soit à l'intérieur du fichier exécutable.
 
Mais dans ton cas, il faut que tu puisses charger n'importe quel type d'image, il faut donc réécrire un parser XBM.

n°897366
printf
Baston !
Posté le 13-11-2004 à 10:30:28  profilanswer
 

Ace17 a écrit :

C'est quoi l'arnaque avec Tcc? Il doit bien y avoir un inconvenient quelque part !


 
C'est limité à Linux/ELF/x86 :(
 
EDIT: en fait, non (je me basais sur une vieille version). Je viens de vérifier, il y a des ports Windows, FreeBSD :love: et il peut sortir de l'ARM et du TMS, on va bientôt pouvoir faire de l'embarqué avec :bounce:
 
EDIT2: wc -l tcc.c --> 10481 :D


Message édité par printf le 13-11-2004 à 10:41:46

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Evaluer le texte d'un fichier comme du code C.

 

Sujets relatifs
ouverture d'un fichier BMPPassage d'un tableau de string vers du code non managé (DLL)
Localiser un fichier de configurationAfficher/Masquer du texte
VBS :: Do while 'si le fichier existe pasTexte conditions utilisations
recheche une api pour lire un fichier par la fin[ASP] Pas de code sources en clair sur le serveur web ?
probleme d'espaces dans mon nom de fichierFichier Son
Plus de sujets relatifs à : Evaluer le texte d'un fichier comme du code C.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR