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

C Discussion :

Lecture de fichier balisé et extraction de données


Sujet :

C

  1. #21
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Comment sais-tu cela ?

    L'affichage avec printf() est parfois capricieux / ne fait pas ce que tu penses qu'il fait.

    Voici un code exemple de lecture / écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include <stdio.h>
     
     
    int main(void)
    {
     
        const char * data = "   1  5.45679942875E-01  8.25353062520E-01 0  1.00";
     
        int id = 0;
        double x = 0;
        double y = 0;
        int c1 = 0;
        float c2 = 0;
     
        int conv = sscanf(data, "%d%lf%lf%d%f", &id, &x, &y, &c1, &c2);
        //int conv = 0;
     
        printf("Nb convertions = %d\n", conv);
        puts("Lus :");
        printf("id %d\n", id);
        printf("x %f\n", x);
        printf("y %f\n", y);
        printf("c1 %d\n", c1);
        printf("c2 %f\n", c2);
     
        char output[1024] = {0};
        sprintf(output, "%d\t%10f\t%10f\t%d\t%3f", id, x, y, c1, c2);
        printf("output = [%s]\n", output);
        output[1023] = 0;
     
        return 0;
    }
    Il donne :
    Nb convertions = 5
    Lus :
    id 1
    x 0.545680
    y 0.825353
    c1 0
    c2 1.000000
    output = [1       0.545680        0.825353      0       1.000000]
    
    Process returned 0 (0x0)   execution time : 0.028 s
    Press any key to continue.
    

  2. #22
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Bktero Voir le message

    output = [1 0.545680 0.825353 0 1.000000]
    Merci pour cette manipulation.
    Mais quand bien même on note que x et y sont arrondis, j'aimerai récupérer l'ensemble des valeurs, avoir au moins jusqu'à 10 chiffres après la virgule.
    Merci aussi pour le "sscanf" je ne voyais pas comment m'en servir.

  3. #23
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Tu ne peux pas nécessairement récupérer tous les chiffres pour des questions de précisions des nombres flottants. Il faudra soit te contenter de cela, soit chercher des bibliothèques spécialisées. Une petite recherche sur le forum te fera comprendre que tu es loin d'être le seul avec des problèmes avec la précisions des flottants.

  4. #24
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Tu ne peux pas nécessairement récupérer tous les chiffres pour des questions de précisions des nombres flottants. Il faudra soit te contenter de cela, soit chercher des bibliothèques spécialisées. Une petite recherche sur le forum te fera comprendre que tu es loin d'être le seul avec des problèmes avec la précisions des flottants.
    Je crois que tu as raison et donc je vais me contenter de ce que je récupère.

  5. #25
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,

    J'avance à "grands" pas sur mon petit problème mais maintenant j'ai un autre soucis et il est loin d'être évident.
    Est-il possible de créer une fonction qui retourne une structure ?
    Ma question est dû au fait que j'aimerai placer l'ensemble des points que je lis de mon fichier source dans une structure afin de pouvoir manipuler ces points par la suite. Voici le début :

    Ma structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef struct pointContour {
        int num;
        double x;
        double y;
        int c1;
        int c2;
    }pointContour;
    Ma fonction qui est censée :
    1) lire les points .
    2) les placer dans un tableau de type .
    3) Retourner ce tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    /*pointContour*/void creerPoint(const char *nomFichGeo){
     
    const char point[]="$points";
    int taille = strlen(point);
    char*chaine[taille];
    int j=0;
     
    int numr,absc,ordo,c1,c2;
    int nombre_point;
     
    pointContour* p[nombre_point*sizeof(pointContour)]; //=malloc(nombre_point*sizeof(pointContour));
     
    FILE* fichGeo = fopen(nomFichGeo,"r+");
     
    pointContour pt[nombre_point*sizeof(pointContour)]; // tableau qui contiendra les points
     
                do{            
                fscanf(fichGeo,"   %d  %lf  %lf  %d  %d \n",&numr,&absc,&ordo,&c1,&c2);
                fseek(fichGeo,4,SEEK_CUR); // sauter une ligne
                nombre_point=nombre_point--;
                j++;
                pt[j].num=numr;
                pt[j].x=absc;
                pt[j].y=ordo;
                pt[j].c1=c1;
                pt[j].c2=c2;
                } while(nombre_point!=0);
    //remarque pt[0] : est vide 
     //return pt;
    }
    À la place du j'aimerai mettre et faire un Je voulais donc savoir si c'est possible, parce que j'ai testé et j'ai des erreurs.
    Si ce n'est pas possible, quelqu'un pourrait m'apporter une autre méthode ?
    Merci

  6. #26
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Re-bonsoir,

    J'ai pu résoudre une partie de mon problème. J'ai procédé comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    pointContour* creerPoint(const char *nomFichGeo)
    {
        const char point[]="$points";
        int taille = strlen(point);
        char*chaine[taille];
        int j=0;
     
        int numr,absc,ordo,c1,c2;
        int nombre_point;
     
        pointContour* p[nombre_point*sizeof(pointContour)]; //=malloc(nombre_point*sizeof(pointContour));
     
        FILE* fichGeo = fopen(nomFichGeo,"r+");
     
        pointContour pt[nombre_point*sizeof(pointContour)];
     
        do{ // boucle copiant les points du fichier .GEO vers le fichier .CAL pour avoir le contour
     
            fscanf(fichGeo,"   %d  %lf  %lf  %d  %d \n",&numr,&absc,&ordo,&c1,&c2);
            fseek(fichGeo,4,SEEK_CUR); // sauter une ligne
            nombre_point=nombre_point--;
            j++;
            pt[j].num=numr;
            pt[j].x=absc;
            pt[j].y=ordo;
            pt[j].c1=c1;
            pt[j].c2=c2;
        } while(nombre_point!=0);
     
        return pt;
    }
    Une histoire de pointeur.
    Mais maintenant je ne vois pas comment vérifier que ma fonction fonctionne, sachant que ma fonction renvoie un pointeur vers un tableau au lieu du tableau .
    Help

  7. #27
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Il est strictement interdit de retourner un tableau déclaré de manière statique dans une fonction ! Ce tableau est défini sur la pile, tu renvoies en fait un pointeur vers son premier élément, or la pile sera réutilisée et ton tableau écrasé !

    Il faut utiliser un tableau obtenu avec malloc() et là, tu peux te servir de manière fiable de ce pointeur en dehors de la fonction.

  8. #28
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Merci pour cette précision, mais du coup comment est-ce que je pourrai procéder en utilisant un malloc() ?
    Meci

  9. #29
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Citation Envoyé par Bktero Voir le message
    Il est strictement interdit de retourner un tableau déclarer de manière statique dans une fonction !
    Ne devrais-tu pas plutôt parler d'allocation automatique (= variables 'normales') ?

    Car "déclaré de manière statique" me fait directement penser à : static Type foo .

  10. #30
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    J'y ai pensé à l'écrivant… Je parle bien sûr d'un tableau à stockage automatique. Je parlais de statique pour sa taille.

    Encore cette histoire de nommage en tableau statique et tableau dynamique pour signifier int[] et malloc() respectivement.

  11. #31
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,
    Comment est-ce que je pourrai récupérer mon tableau de point du coup ?
    Ou comment faire pour que ma fonction me renvoie cet ensemble de points ?

  12. #32
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Il faut que pt soit le retour d'un appel à malloc().

  13. #33
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    D'accord.
    Mais comment le faire ?
    J'ai fait comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    ....
    pointContour pt[nombre_point*sizeof(pointContour)];
    for(i=0;i<nombre_point;i++){
                    pt[i].num= malloc(nombre_point*sizeof(int));
                    pt[i].x= malloc(nombre_point*sizeof(double));
                    pt[i].y= malloc(nombre_point*sizeof(double));
                    pt[i].c1=malloc(nombre_point*sizeof(int));
                    pt[i].c2=malloc(nombre_point*sizeof(int));
            }
     
                do{ // boucle copiant les points du fichier .GEO vers le fichier .CAL pour avoir le contour
     
                fscanf(fichGeo,"   %d  %lf  %lf  %d  %d \n",&numr,&absc,&ordo,&c1,&c2);
                fseek(fichGeo,4,SEEK_CUR); // sauter une ligne
                nombre_point=nombre_point--;
                j++;
                pt[j].num=numr;
                pt[j].x=absc;
                pt[j].y=ordo;
                pt[j].c1=c1;
                pt[j].c2=c2;
                } while(nombre_point!=0);
         }
     
         }    
    return pt;
    }
    J'essaie d'allouer de la mémoire pour chaque champs de ma structure, je ne sais pas si ceci marchera mais bon je ne vois pas du tout comment je pourrai faire mon malloc() sinon. Je sèche

  14. #34
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    On ne désalloue que des pointeurs obtenus à l'aide de malloc() ou une fonction assimilée. Tes champs ne devraient pas être obtenus par malloc() car ces champs ne sont pas des pointeurs, seul le pointeur sur la structure (les structures) l'est. Je pense qu'il faut que tu comprennes bien le principe de malloc() et free() avant d'aller plus loin.

  15. #35
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    J'ai pu résoudre mon problème.
    Concernant le C, j'avoue que je déteste l'utilisation de pointeurs (Je pense ne pas être le seul ^^ )
    Voici comment j'ai procédé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    pointContour* retourPoint(const char *nomFichGeo)
    {
          const char point[]="$points";
          int taille = strlen(point);
          char*chaine[taille];
          int j=0;
          int i=0;
     
          int nombre_point;
     
          int numr;
          double absc;
          double ordo;
     
          int cnt=0;
          int c1,c2;
     
          FILE* fichGeo = fopen(nomFichGeo,"r+");
     
          while(fgets(chaine,sizeof(point),fichGeo)!= NULL)
          {
                // on lit tout le fichier ligne par ligne tant que celui-ci n'est pas vide
     
                if (strcmp(chaine,point)==0)
                { // on s'arrète à la balise $points
                      fseek(fichGeo,2,SEEK_CUR); // on va à la ligne suivante
                      fscanf(fichGeo,"%d",&nombre_point); // on récupère le nombre de points
                      fseek(fichGeo,20,SEEK_CUR); // On se place à ligne contenant le premier point
     
                      pointContour pt[nombre_point*sizeof(pointContour)];
     
                      do
                      { // boucle copiant les points du fichier .GEO vers le fichier .CAL pour avoir le contour
                            fscanf(fichGeo,"   %d  %lf  %lf  %d  %d \n",&numr,&absc,&ordo,&c1,&c2);
                            //printf("nombre : %d \n abscisse : %lf \n ordonnée : %lf \n",numr,absc,ordo);
                            fseek(fichGeo,4,SEEK_CUR); // sauter une ligne
                            nombre_point=nombre_point--;
                            j++;
                            pt[j].num=numr;
                            pt[j].x=absc;
                            pt[j].y=ordo;
                            pt[j].c1=c1;
                            pt[j].c2=c2;
     
                      } while(nombre_point!=0);
     
                      return pt;
                }
          }       // remarque pt[0] est vide, commencer par pt[1]
    }
    À la sortie, je retourne bien "pt" sans avoir eu à faire aucun malloc() .
    Je commence à voir le bout de mon programme malgré le fait qu'il me reste quelques points à résoudre.
    Merci

  16. #36
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    C'est bien, tu es revenu à la solution que j'avais traité de strictement interdite

    Et d'ailleurs, que retourne la fonction si le if() n'est jamais vrai ?

  17. #37
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Et d'ailleurs, que retourne la fonction si le if() n'est jamais vrai ?
    Pour mon cas, si l'utilisateur appel la fonction avec le bon paramètre d'entrée, le if() sera toujours vrai.
    Par contre j'ai un autre problème.
    Comment faire pour écrire n'importe où dans un fichier non vide ?
    J'ai par exemple le "fichier joint" où j'ai placé mes points, et j'aimerai rajouter des points, en dessous de la balise "$NOEUDS".
    Comment procéder parce que j'essaie depuis un moment et ça ne marche pas.
    Fichiers attachés Fichiers attachés

  18. #38
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Je me répète : et si le if() n'est pas vrai, que se passe t-il ?

    La réponse est simple : tu ne peux pas. Les seules opérations que tu peux faire sont écrire par dessus ou écrire à la fin. Si tu veux insérer au milieu, il faut lire la fin, la mémoriser, écrire à l'endroit voulu, puis écrire la fin mémorisée à la nouvelle fin. Si ton fichier n'est pas trop gros, tu peux le stocker en RAM, sinon tu peux utiliser des fichiers temporaires.

  19. #39
    Membre du Club
    Homme Profil pro
    Avide d'apprentissage
    Inscrit en
    Avril 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Avide d'apprentissage
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Je me répète : et si le if() n'est pas vrai, que se passe t-il ?
    Je sais que le if() sera toujours vrai, on est dans un cas où tout marche bien si les conditions sont respectées.

    Concernant l'écriture au milieu du fichier, je laisse tomber, je vais chercher une autre méthode.

    Merci

  20. #40
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Si le if() est toujours vrai, enlève-le alors !!

    Je (et les autres forumeurs aussi) te raconte pas des trucs pour t'embêter mais bien parce que c'est important. Si nos conseils ne t'intéressent pas, dis-le dés le début de la discussion "je veux juste un truc qui marchote, passez moi les détails". On gagnera du temps.

    Et au risque de paraitre insistant, pose toi la question "et si le if() était faux ?". Pense en bon programmeur c'es-à-dire en envisageant tous les cas possibles.

    Au passage, je pense que tu n'as pas activé toutes les options de warning de ton compilateur. Comment compiles-tu ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/11/2012, 09h17
  2. Lecture fichier PDF et extraction de données avec Java
    Par le_misterioso dans le forum Général Java
    Réponses: 2
    Dernier message: 03/04/2011, 01h32
  3. Réponses: 2
    Dernier message: 19/08/2009, 21h17
  4. Lecture de fichiers cvs et projections de données
    Par logon dans le forum Général Python
    Réponses: 5
    Dernier message: 20/02/2007, 09h27

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