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


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut Lecture de fichier
    Bonjour,
    petit soucis, mais qui n'est pas si simple que dis le titre du sujet - quoi que

    Donc en faite, en ce moment j'essai de lire un fichier, eet je le décompose grâce à un motif - tehchiquement c'est une structure dans une union.
    Ma méthode est de faire pointer mon motif vers le flux du fichier, et le faire déplacer, ça me permet si c'est bien ce que je cherche ou si je dois continuer (en faisant des tests),

    Le truc, le tout petit truc, c'est que je me demandé si il était possible de lire directement sur le fichier, ou il faut absolument copier le contenu du fichier dans une variable.

    Je m'explique, un fichier est bien dans un bloc mémoire sur le pc, et je me demandais si il n'étais pas possible après un fopen, ou open, d'y acceder directement.
    Car mettre + de 100ko en mémoire pour utiliser ça comme chaine et placer le motif dessus ça parait lourd.

    A moins que ma seule solution est de découper le fichier en plusieurs bout.
    Exemple: de 512 en 512 octets, et à chaque fois j'applique mon motif plusieurs fois sur cette chaine,

    Merci d'avance.

  2. #2
    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
    Je ne comprend pas exactement ce que tu veux faire.

    Tu as fscanf(fichier, "motif", adresse_variables) qui consommera les caractères tant qu'il n'aura pas rencontré de motif.

    Tu as fseek pour repositionner ton curseur

    Et ftell pour savoir où tu es dans le fichier.

  3. #3
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut
    Non c'est pas ça que je souhaite faire, bon je vais regarder dans les docs un peu plus attentivement

  4. #4
    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
    Essaye d'être plus explicite sur ce que tu essaye de faire.

    Si tu le décompose en plusieurs partie, il suffit juste grâce à ftell de stocker dans un tableau dynamique les positions faisant frontière avec les différentes parties et te repositionné avec fseek.

    Sinon, tu peux toujours créer plusieurs fichiers temporaires si tu veux après avoir séparer ton fichier en plusieurs bouts, ajouter du texte entre les différentes parties.

    (après re-re-lecture, je ne pense pas que ce soit cela que tu veuille faire)

    Même après re-re-lecture je ne comprend pas exactement ce que tu veux faire.

    Tu as un motif que tu recherche dans ton fichier si je comprend bien, dans ce cas là, fscanf est tout indiqué.

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2012
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 190
    Par défaut
    tu ouvres ton fichier en mode binaire et tu lis tes petits motifs (32 octets) si je me souviens de ton autre post un par un. le code généré par C s'occupe de gérer le buffer temporaire (pas le motif) et le système va lire ton "petit" fichier en entier dans le cache du disque; les accés seront de toute façon très rapide. tu n'a aucun intérêt à utiliser un tableau contenant tous tes motifs (surtout si tes hypothèses sur la structure du fichier doivent être remises en cause.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FILE * f;
    f = fopen("nom de fichier", "br");
    while (fread(&motif, 32, 1, f))
       traiter(motif);
    close(f);
    bien sûr, si ton fichier n'est pas composé uniquement de motifs il faudra aménager la boucle ...

    A+

  6. #6
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut
    Si en effet c'est ça !
    Je voyais le problème differement, mais c'est bien ça, merci - tout simplement en faite.

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

Discussions similaires

  1. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  2. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/09/2003, 11h05
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 11h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 20h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43

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