cs_Angelotus
Messages postés6Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention 2 juin 2004
-
14 mai 2004 à 22:23
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
1 juin 2004 à 20:35
Bonjour,
Je suis étudiante (1ère année) en ingénierie informatique.
J'aurais besoin d'écrire un programme en C qui ouvre un fichier et affiche ce qu'il trouve (avec le bon typage) dans une fenêtre (dos ou windows?).
Sur le fichier, je ne sais qu'une chose: il peut contenir tout type de variable (scalaire type int, float, char, ou complexe type tableau, liste chainée). Je ne connais pas sa longueur.
Quelqu'un pourrait-il m'aider pour la lecture de fichier et l'affichage de base dans une fenêtre, svp?
cs_Angelotus
Messages postés6Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention 2 juin 2004 14 mai 2004 à 22:58
Je pense qu'il vaudrait mieux que je récupère chaque élément dans une variable du bon type. Avantage: je pourrais les utiliser plus facilement ensuite. Inconvénient: (1) il peut y avoir beaucoup d'éléments, (2) cela implique (??) une génération automatique de nom de variable et, dans ce cas, un moyen de les identifier. Oh la la...
Exemple: si dans ma fenêtre s'affichent 50 lignes, chacune contenant un nombre différent d'éléments, parmi eux des mots, des int, des caractères, des tableaux de float, etc. Je veux pouvoir additionner le 3ème int de la 10ème ligne avec le 20ème int de la 49ème ligne, ou concaténer le 16ème caractère de la 2ème ligne avec le 18ème mot de la 150ème ligne.
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 14 mai 2004 à 23:13
Ton programme est tout simplement impossible a réaliser tel que tu le décrit pour la simple et bonne raison qu'en C, la déclaration de variable se fait en avant! Donc IMPOSSIBLE de generer des variables dynamiquement !
Il te faudra donc utiliser des tableaux dynamique si tu veux pouvoir réaliser ton programme!
Si tu as le sujet exact se serait bien de le mettre aussi parceque la on voit pas exactement comment les données vont etre utilisé !
Bref, un peu plus d'explication et d'information, pour un peu plus de réponse et d'aide a ce sujet ;)
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 14 mai 2004 à 23:30
moi je propose ca :
il faudra utiliser des buffer pour chaque type de base, pour que ce soit moin lourd a gerer, je te conseil un tableau dynamique, au pire tu realloue avec realloc si besoin et a la fin du fichier tu resize
ensuite tu lis le fichier type par type (tu lis un buffer a chaque fois que le type change)
pour faire un tableau unique de buffer de different type utilise une union
typdef union
{
char *c_buf;
int *i_buf;
double *d_buf;
} p_Type;
encapsule ce type dans une agregation pour stocker la taille du buffer
au debut faudra pas oublier d'initialiser le tableau de buffer en mettant les pointeurs a NULL (apres ca te permettra de savoir de quel type est le buffer, ca sera le seul !=NULL) et count à 0 aussi
quand tu lis le fichier, tu repere d'abord le type, ensuite le nombre d'occurence succesive, apres tu recupere dans un buffer temporaire, puis tu alloue le buffer du type en question dans la struct GenBuffer et tu fais un memcpy
je vois que ca fait pas mal de truc a geré, faut bien diviser l'algo en fonctions...
eu... c'est bien ca qu'il faut faire?
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 mai 2004 à 00:22
djil > tu penses faire comment pour determiner si tu rencontres une liste chainee ou non ???
Travail impossible avec le cahier des charges dans cet etat.
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 15 mai 2004 à 00:28
ben en fait moi d'apres ce que j'ai compris ca sera un fichier acsii, alors liste ou tableau c'est la meme chose, on recupere un buffer du type souhaité, non?
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 15 mai 2004 à 00:39
oui c'est bien ce que je disais, on recupere un buffer c'est tout (apres on est libre d'en faire ce que l'on veut)
si il 'asit d'un fichier binaire, faudarit bien de toute facon qu'il y ai des tag pour savoir ce que l'on recupere, et donc il nous faut plus de precision
cs_Angelotus
Messages postés6Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention 2 juin 2004 15 mai 2004 à 00:45
De toute manière, ce doit bien être possible puisqu'on me l'a demandé! ;-) (ça c'est la méthode Coué)
En gros, voici le profil du sujet:
- j'ai un fichier dont je ne connais pas la longueur, contenant des variables de tout type dont je ne connais ni le nombre ni l'ordre ni le nom (ça c'est pour l'instant; à terme, mon programme devra aussi pouvoir créer le fichier)
- je dois pouvoir lire le fichier en entier, et afficher son contenu (selon la présentation en ligne faite dans le fichier) dans une fenêtre dos ou windows
- une fois affichés, je dois pouvoir choisir (=accéder directement à) certaines variables pour (1) soit les modifier et ré-enregistrer, (2) soit les utiliser, par exemple dans une formule d'addition, de concaténation, etc. Ce serait en html/php par exemple, je pourrais imaginer que chaque variable est associée à une zone de saisie + bouton de validation (pour la modification) et un bouton de sélection (pour l'utilisation dans une formule).
Après, il y a encore quelques petites choses à faire, mais si déjà j'arrive à faire ça... mon prof sera content, je crois!! :-) Et moi aussi ;-)
Voilà, j'espère que c'est plus clair. Je n'en suis qu'au début de la gestion de projet et n'ai pas encore le "bon" vocabulaire ni, peut-être, le "bon" esprit de l'essentiel... désolée!
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 mai 2004 à 01:06
En tout ascii c'est jouable. Va falloir indexer chaque elem en rapport position dans fichier si tu veux pouvoir les modifier, ajouter etc... et recalcul complet avec indexation a chaque lmodif. Faudra s'adresser direct a l'API du systeme hote pour les perfs sinon ça va ramer, multi thread a envisager serieusement.