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 :

Tri un fichier sur la dernière colonne


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Par défaut Tri un fichier sur la dernière colonne
    Bonjour,

    Après un calcul sur C je sauvegarde 8 variables dans un fichier.txt

    fprintf(input_data_trans,"%.f %.f %.3E %.3E %.3E %.3E %.3E %.3E\n",No,A,B,C,D,E,F,distance);

    Donc le fichier est de la forme suivante:

    0 2 1.340E-004 1.070E-005 1.111E-001 5.177E-001 3.484E-001 7.584E-001
    1 6 7.190E-005 6.470E-006 5.556E-001 2.595E-001 9.074E-002 3.431E-002
    2 2 1.810E-004 1.360E-005 1.111E-001 7.131E-001 5.250E-001 2.975E-001
    3 8 1.280E-004 9.070E-006 7.778E-001 4.927E-001 2.491E-001 6.145E-002
    4 8 8.440E-005 7.190E-006 7.778E-001 3.114E-001 1.346E-001 2.758E-001
    5 9 2.180E-004 5.220E-006 8.889E-001 8.669E-001 1.462E-002 4.148E-001
    6 4 7.580E-005 1.120E-005 3.333E-001 2.757E-001 3.788E-001 2.891E-001
    7 5 1.270E-004 9.980E-006 4.444E-001 4.886E-001 3.045E-001 6.383E-002
    8 10 7.840E-005 7.970E-006 1.000E+000 2.865E-001 1.821E-001 2.775E-001
    9 1 1.690E-004 6.020E-006 0.000E+000 6.632E-001 6.334E-002 2.445E-001

    => le fichier contient :10 lignes et 8 colonnes.

    par la suite je veux trier les lignes de mon fichiers suivant la dernière colonnes (distance)

    ç.a.d:

    7.584E-001 > 3.431E-002
    Donc la ligne
    (0 2 1.340E-004 1.070E-005 1.111E-001 5.177E-001 3.484E-001 7.584E-001) se déplace dans la 2 éme ligne
    et la ligne
    (1 6 7.190E-005 6.470E-006 5.556E-001 2.595E-001 9.074E-002 3.431E-002) sera dans la 1 ère ligne.

    Que je dois faire pour lire fichier et tirer les valeurs? Merci

  2. #2
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Bonjour,

    tu crées le fichier, alors pourquoi ne pas trier les valeurs avant de les écrire dans le fichier ?

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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 026
    Par défaut
    Bonjour,

    Tu ne peux pas lire avec fscanf et ranger tes données dans un tableau et le trier avec qsort ?

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Par défaut
    Pouvez vous m'expliquer encore vos proposition. Je suis débutante en C

    @ kwariz: J'ai pas pu les trier avant car les valeurs est une conclusion d'une opération mathématique dans une boucle.

  5. #5
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Citation Envoyé par mouna1985 Voir le message
    Pouvez vous m'expliquer encore vos proposition. Je suis débutante en C

    @ kwariz: J'ai pas pu les trier avant car les valeurs est une conclusion d'une opération mathématique dans une boucle.
    Au lieu de faire un fprintf, tu places ces valeurs dans un tableau que tu tries puis que tu sauves dans un fichier.
    Tu définis une structure du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct s_data {
      int No;
      double A;
      double B;
      double C;
      double D;
      double E;
      double F;
      double distance;
    };
    et un tableau de telles structures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct s_data my_data[N]
    où N est une taille max suffisament grande (suivant le cas il est préférable d;utiliser l'allocation dynamique mais comme tu débutes on va s'en tenir à un tableau de taille fixe).

    Au lieu du fprintf, tu écris dans le tableau, après la boucle tu sais combien tu as d'éléments dans le tableau et tu le tries
    Ensuite tu fais une boucle sur le tableau trié pour l'écrire dans le fichier.

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Par défaut
    Comment je peux écrire après ça dans le tableau??

Discussions similaires

  1. Supprimer un évènement sur la dernière colonne (datagridview)
    Par jacko842 dans le forum Développement Windows
    Réponses: 1
    Dernier message: 09/02/2012, 16h24
  2. Tri de fichiers sur un disque dur ou une clé USB
    Par J.Michel dans le forum Windows XP
    Réponses: 6
    Dernier message: 24/06/2008, 15h17
  3. Tri effectif que sur certaines colonnes
    Par benoitbs dans le forum Excel
    Réponses: 4
    Dernier message: 22/02/2008, 15h36
  4. tri par moyenne sur plusieurs colonnes
    Par adr22 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/12/2007, 16h19
  5. tri sur la xème colonne
    Par r-zo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 23/07/2003, 13h41

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