Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/02/2007, à 20:34

no_spleen

[Fortran] vecteur de taille inconnue

Bonjour à tous,
J'aimerai réaliser un programme fortran qui lit des données en colonne dans un fichier pour les mettre dans un vecteur. Le problème c'est qu'on ne connait pas la taille des vecteurs avant d'avoir fini de lire le fichier, alors comment faire pour le déclarer (les vecteurs)?
Si quelqun pouvais me lancer les grandes lignes de code de la solution ce serai gentil!
Bien à vous,

Hors ligne

#2 Le 17/02/2007, à 23:49

Freddy

Re : [Fortran] vecteur de taille inconnue

(je ne connais pas du tout le Fortran)
Est-ce qu'une solution ne serait pas de lire une fois le fichier en comptant le nombre de composantes nécessaires, puis tu crées ton tableau avec la bonne taille, puis un deuxième passage pour remplir effectivement le tableau ?


There is no system but GNU, and Linux is one of its kernels.

Hors ligne

#3 Le 18/02/2007, à 00:11

JBF

Re : [Fortran] vecteur de taille inconnue

Bonsoir Freddy,

tu as deux solutions en Fortran :
1/ dimensionner tes tableaux avec des tailles que tu sais, a priori, suffisantes. Cela peut être coùteux si les fichiers à lire peuvent être très grands.
2/ utiliser l'allocation dynamique de mémoire. Pour savoir ce qu'il faut allouer tu peux lire une première fois le fichier mais la lecture de fichier c'est assez long. Tu peux aussi allouer la mémoire par paquet en ajoutant ce qu'il faut quand quand la place manque. Mais comme tu ne peux pas ajouter de la place il faut allouer un autre tableau, transférer puis désallouer le premier.
Je pense que tu dois pouvoir trouver des astuces pour que ton programme puisse avoir une idée de la taille du tableau à partir de la taille du fichier.

JBF


LibreOffice : https://fr.libreoffice.org/ (téléchargement, documentation, FAQ, assistance, contribuer, ...)
Aide pour LibreOffice par la communauté francophone : https://ask.libreoffice.org/fr/

Hors ligne