Bonjour,
J'aimerais résoudre ce genre de problème en langage C :
Voici le code source :Ensuite, j'aimerais qu'un utilisateur, sans jamais toucher à du code, puisse écrire ce genre de fichiers textes que le code source saurait utiliser :Code:void procedure1(int arg1, int arg2, char arg3) { ... } void procedure2(void) { ... } void procedure3(long arg1, int arg2) { ... } void procedure4(short arg1) { ... } //etc.
procedure1(3,6,Z)
procedure1(2,7,A)
procedure2()
procedure4(10)
procedure1(244,23,x)
procedure3(2000000, 10)
Comment réaliseriez vous ce fichier et comment réaliseriez vous le programme destiné à la lire?
Moi j'ai deux solutions, mais j'ai l'impression qu'aucune des deux n'est intelligente :
1) écrire le fichier comme ci-dessus et le lire à l'aide d'une armée de fscanf
2) utiliser une structure procedure qui possède une énumération{procedure1, procedure2, procedure3, procedure4}procedure_type et un pointeur générique, créer des structure{int, int, char}procedure1_arguments, structures{long, int}procedure3_arguments... écrire tout ça dans un fichier binaire de cette façon :
type : procedure1, arguments1
type : procedure1, arguments1
type : procedure2, arguments2
type : procedure3, arguments3
type : procedure1, arguments1 etc
Puis faire un switch sur le type du premier champ pour pouvoir lire le bon nombre de bytes avec fread
Avez-vous plus fin?
Merci d'avance!
-----