Fichier vers tableaux

Fermé
Pierre-Mathieu - 20 août 2009 à 09:15
 loupius - 20 août 2009 à 17:59
Bonjour,

Comment puis je faire passer les informations contenues dans un fichier vers un tableaux en pseudo-code?
A voir également:

5 réponses

Il me semble avoir déjà vu cette question ici. La réponse est la même: On lit un bout de fichier et on le met dans le tableau, on relit un bout de fichier et on l'ajoute au tableau et ainsi de suite jusqu'à la fin du fichier.
Le bout de fichier à lire va dépendre de la manière dont est construit le fichier:
- si le fichier est construit style binaire: les enregistrements ont tous la même longueur et ils sont les uns à la suite des autres sans séparateur, il faut lire des bout de fichiers de longueur fixe, les découper en morceaux de taille fixe et les mettre dans le tableau,
- si le fichier est construit style 'texte': les enregistrements sont de longueur variable et ils sont séparés, en général, par une fin de ligne, il faut lire le fichier ligne par ligne, les découper en parties variables car ils sont séparés par un séparateur (évidemment), en général une tabulation ou un point-virgule, et les mettre dans le tableau,
- si le fichier est construit style 'xml', c'est plus simple et plus compliqué. C'est beaucoup plus simple si tu utilises un analyseur ('parser' in english) et beaucoup plus compliqué si tu veux t'en dépêtrer tout seul.
Bonne réflexion.
0
Pierre-Mathieu
20 août 2009 à 12:31
Ok... tu t'y connais bien, c'est juste que t'avais pas trop envie de m'aider hier. :p
Il s'agit d'un fichier texte donc les infos se trouvant dans le fichier sont mises sous formes de données structurées du type:
structure menu
entrée en alphanum* 20
plat en alphanum *50
dessert en alphanum *20
fin structure
Bon maintenant j'aurais voulu savoir comment mettre ça dans un tableaux... c'est une opération que je devrais répéter donc j'aurais vraiment besoin d'en connaitre le fonctionnement.

Merci à toi
0
Il ne faut pas confondre structure du tableau en mémoire et structure du fichier sur le disque.
Pour connaître la structure du fichier sur le disque, il y a deux solutions:
- soit avoir accès au source du logiciel qui a construit ce fichier;
- soit utiliser un éditeur hexa qui va permettre de voir exactement de quoi est composé ce fichier.
A partir de là, tu choisiras quel est la stratégie à adopter pour lire ton fichier.
Bonne continuation.
0
Pierre-Mathieu
20 août 2009 à 12:40
Merci de m'aiguiller le plus complètement possible.
0
Je ne suis pas là non plus pour faire le travail à ta place ;-)
De toute façon, je ne puis écrire une ligne de code car on n'a jamais parlé de langage (et d'ailleurs ce n'était pas utile).
0
Pierre-Mathieu
20 août 2009 à 13:08
Biensur j'te demande pas de faire le boulot à ma place mais il n'y a pas de langage particulier, il s'agit du pseudo code donc voici ce que je pense correct:

debut
ouvrir "menu.txt" sur 1 en lecture
Tant que non EOF
Lire fichier 1,menu
menu( ) <- entrée
menu () <- plat
menu () <- dessert
Fintantque
fermer (1)
fin

Dis moi ce que t'en penses et n'hésite pas à me corriger.
Merci
0
Je ne connais pas bien le pseudo-code, mais j'aurais plutôt écrit quelque chose du genre:
  Lire fichier 1, buffer, taille_enregistrement
  decoupage buffer
  menu.entree  <- buffer(1)
  menu.plat    <- buffer(2)
  menu.dessert <- buffer(3)
Mais ce n'est qu'une suggestion...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pierre-Mathieu
20 août 2009 à 14:02
Le buffer est une mémoire tampon mais est ce qu'ici tu l'utilises comme une variable quelconque? C'est juste le nom que t'as donné à une variable?
J'pourrais faire comme ça:

i <- o

ouvrir fichier "menu.txt" sur 1 en lecture
Tantque non EOF
Lire fichier 1, menu
i<-i+1
menu(i) .entree <- entree
menu(i).plat <- plat
menu(i).dessert <- dessert
fintantque
C'est possible aussi comme ça selon toi?
0
Pour moi l'écriture en pseudo-code est une manière d'organiser ses idées.
Il s'agit simplement d'écrire quelque chose de clair, de lisible et plus ou mois (mais plutôt plus) facilement traduisible dans le langage final.
Oui 'buffer' est le nom donné à une variable de type mémoire tampon; sa définition précise sera faite en fonction du langage utilisé.
0