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 :

Lire fichier et réaliser traitement sur chaque ligne


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut Lire fichier et réaliser traitement sur chaque ligne
    Bonjour,

    alors voilà mon problème:

    je dispose d'un fichier contenant une matrice de 6 colonnes et un nombre de lignes variables en fonction du fichier d'entrée.

    Sur chaque ligne je dois effectuer un traitement. Je me pose qqs questions:

    - Est ce qu'il vaut mieux que je lise le fichier en entier et que je stocke toutes les valeurs dans des vecteurs pour ensuite effectuer le traitement ?
    ou est ce qu'il vaut mieux que je lise une ligne que je fasse le traitement et qu'ensuite je lise la ligne suivante et ainsi de suite ? Qu'est ce qui est le plus propre et le plus rapide ?

    - Si il faut que je stocke les valeurs dans un vecteur, il va falloir que je crée 6 tableaux dont je ne connais pas la taille. Est ce que la méthode est d'essayer de lire une ligne et si il y a des données alors j'augmente la taille de mon tableau en augmentant la mémoire allouée ou est ce qu'il y a une méthode plus élégante ?

    - Existe-t-il des fonctions toute faites ?

    Merci

  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 : 62
    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
    Par défaut
    La question qu'il faut se poser plutôt :
    Une fois que tu as fais ton traitement, as tu encore besoin des donées oui ou non.
    • Si oui, pas de problème, il faut stocker (tableau dynamique remplis lors de la lecture)
    • Si non, aucune raison de se prendre la tête, on lit, on traite et on oublie
    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
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    d'accord,

    pour mon problème je n'ai pas besoin de conserver les données.

    Donc je lis une ligne, je traite, je lis une autre ligne ... Est ce qu'il faut que je ferme le fichier entre chaque lecture ou seulement à la fin complète du traitement ?

    Juste pour confirmation, selon vous faire appel plusieurs fois à une fonction dans une boucle ne prend pas plus de temps que de faire une lecture en une fois en C ?

    J'ai le même problème en sortie: les données traitées vont être écrites dans un fichier est ce qu'il faut que je mette mes données dans un vecteur et que j'écrive tout à la fin ou je fais comme en entrée je les écris à chaque itération dans le fichier et j'oublie ? Si je suis la logique j'écris et j'oublie.

    Merci pour votre aide

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    visiblement il ne faut pas que je ferme le fichier entre deux traitements sinon je perd l'emplacement du truc qui me dit où je suis dans le fichier.

    Pour le reste des questions ?

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Je pense que cela dépend de la taille du fichier, s'il est très volumineux, je ferais une lecture/traitement/écriture en ligne par ligne, de même si la taille du fichier est aléatoire, en fait c'est la seule solution que j'emploierais
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    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 : 62
    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
    Par défaut
    Citation Envoyé par grem1 Voir le message
    Est ce qu'il faut que je ferme le fichier entre chaque lecture ou seulement à la fin complète du traitement ?
    Non tu ne ferme pas le fichier entre chaque lecture, tu le fermes uniquement quand tu as fini de lire le fichier.


    Citation Envoyé par grem1 Voir le message
    Si je suis la logique j'écris et j'oublie.
    Oui, si tu n'as pas besoin des données plus tard, tu peux les écrire dans le fichier et les oublier immédiatement.

    Citation Envoyé par grem1 Voir le message
    ...dans un vecteur...
    C'est quoi un vecteur pour toit, cela fait plusieurs fois que tu en parles. si tu penses à un std::vector, n'oublie pas que tu es dans un forum C
    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
    .

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    Euh en fait j'appelle vecteur un tableau à une dimension, c'est peut être pas bien approprié en C.

    Bon ben ok je vais faire comme vous avez dit.

    Merci beaucoup à vous deux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/10/2008, 06h18
  2. Réponses: 22
    Dernier message: 10/02/2007, 12h02
  3. Hint sur chaque ligne d'un DBgrid
    Par Papino dans le forum Bases de données
    Réponses: 8
    Dernier message: 23/08/2006, 14h36
  4. Réponses: 5
    Dernier message: 28/07/2006, 08h16
  5. [vb.net][dataView] test sur chaque lignes
    Par arnolem dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/02/2006, 10h52

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