IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

chargement d'un fichier.txt dans une matrice


Sujet :

Windows

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut chargement d'un fichier.txt dans une matrice
    Salut tous le monde,
    j'ai un code en C et j'ai besoin d'une fonction qui charge le fichier irises.txt ci joint dans une matrice, svp si quelqu'un connait la réponse, veuillez me répondre et merci d'avance, voila ma fonction qui n'a pas marché:
    // chargement du fichier en memoire contrale

    void get_matrice(FILE *fp, float ***mat, int *colon, int *lign)
    {
    char s[300], code[10];
    float n; int size =0, i, j, length;
    int nblines= 0;int cl=0;
    *mat = (float **)malloc(sizeof(float*));

    while(fgets( s, 300, fp ))
    {
    *mat = (float **)realloc((*mat), (nblines+1)*sizeof(float*));
    *mat[nblines]=(float *)malloc(sizeof(float));
    length = strlen(s)-1;
    for(i=0,j=0,size=0;i<length;i++)
    {
    while((i<length)&&(s[i]!=' '))
    code[j++]=s[i++];

    cl++;
    i = i +5;
    code[j]='\0';

    if(j)
    {
    n = atof(code);

    size++;

    *mat[nblines]=(float *)realloc((*mat)[nblines], (size+1)*sizeof(float));
    *mat[nblines][size]= n;
    }
    }
    *colon = cl;

    cl=0;
    nblines++;
    }
    *lign = nblines;

    fclose(fp);
    }
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Visiblement, les données de ton fichier sont organisées en 4 colonnes que j'appelerai X, Y, Z, C. Ces données sont des nombres flottants.

    Ta fonction de chargement est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void get_matrice(FILE *fp, float ***mat, int *colon, int *lign)
    fp est le descripteur du fichier ouvert par l'appelant mais fermé par l'appelé. C'est pas trop logique mais pourquoi pas.

    float ***mat c'est le pointeur sur la table. Diable, une triple indirection, tu vas fort non ? mais pourquoi pas sauf que comment est-ce que sont organisées les valeurs X, Y, Z et C dans ce tableau. Visiblement toujours, ce tableau est alloué par l'appelé et doit être libéré par l'appelant.

    int * colon. Quelle est cette variable ? c'est le nombre de colonnes que tu veux ou bien c'est le nombre de colonnes détecté par la fonction de chargement. Quelle est sa valeur lors de l'appel ?

    int * lign. Même remarque que précédente.

    En fait, tu vas te rendre compte que le plus dur n'est pas d'écrire le contenu de la fonction mais de décrire l'interface de cette fonction avec les interactions de chacun des paramètres.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci de m'avoir répondre, je me rend compte que cette fonction est fausse, y'a trop d'erreur, donc j'ai decidé de la changé, est ce possible de me donner juste une fonction simple qui charge le fichier "irises.txt"(ci-joint) dans une matrice??Encore merci.

Discussions similaires

  1. [DDE]Import fichier .txt dans une base Access
    Par stoonman dans le forum Access
    Réponses: 3
    Dernier message: 23/03/2007, 19h08
  2. Réponses: 8
    Dernier message: 28/12/2006, 14h18
  3. Réponses: 3
    Dernier message: 16/11/2006, 14h23
  4. importation d'un fichier txt dans une table
    Par pierre.egaud dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/09/2006, 16h26
  5. ligne de fichier txt dans une variable
    Par suya95 dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2006, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo