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 512 Bytes


Sujet :

C

  1. #1
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut Lire 512 Bytes
    Bonjour,

    Je doit lire 512 Bytes ( in GB dans le texte) d'un fichier...
    Deux questions:
    • Quelle fonction C utiliser pour lire ? Je pensais à fread !?
    • Dans quel conteneur mettre mes donnèes? tableau de char ?


    C'est pour mettre les donnèes d'un header de fichier TAR.


  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Finalement tu te fais ta propre librairie tar ?

    oui je dirais fread() avec un tableau de caractere fixe
    utilise les constantes symbolique et/ou sizeof()

  3. #3
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    OUi, je fait wintarlib très fortement inspiré de libtar.
    Mais je butte sur le checksum, qui ne correspond pas...

  4. #4
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Dans quel conteneur mettre mes donnèes? tableau de char ?
    Les headers sont lus normalement dans une structure, regarde la documentation.

  5. #5
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    oui je dirais fread() avec un tableau de caractere fixe
    utilise les constantes symbolique et/ou sizeof()
    C'est quoi ?

  6. #6
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    Citation Envoyé par Mayti4
    Les headers sont lus normalement dans une structure, regarde la documentation.
    Oui, mais avant il faut bien lire le fichier ? Après je place mes informations dans la structure.

  7. #7
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Citation Envoyé par Pikwik
    Oui, mais avant il faut bien lire le fichier ? Après je place mes informations dans la structure.
    Ben non, tu lis la structure directement.

  8. #8
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    Citation Envoyé par Mayti4
    Ben non, tu lis la structure directement.

    Je ne comprend pas comment tu peux y arriver ? Je n'ai pas de fonction qui me prendrais en paramètre un pointeur vers un fichier et un pointeur vers une structure...

    Enfin pas pour Tar sous windows (à ma connaissance).

  9. #9
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Citation Envoyé par Pikwik
    Je ne comprend pas comment tu peux y arriver ? Je n'ai pas de fonction qui me prendrais en paramètre un pointeur vers un fichier et un pointeur vers une structure...

    Enfin pas pour Tar sous windows (à ma connaissance).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mystruct_t     mystruct;
     
    fread(&mystruct, sizeof(mystruct), 1, file);

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    attention à l'endianness: Le contenu de la structure doit avoir l'endianness du format de fichier.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut


    Je savais pas ca !!!

    Et fread rempli comment la structure ? J'ai rien vu de tel dans le Man...

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    fread remplit la structure octet par octet.

    Résultat, si le fichier possède des nombres en big-endian alors que le système est en little-endian, la structure lue ne devra pas être utilisée directement: Il faudra la convertir d'abord.


    PS: s'assurer que tous les champs de la structure sont bien écrits conformément au format du fichier: ordre des champs, bourragfes éventuels, etc.
    Il me semble que beaucoup de ces variables dépendent de l'implémentation... (L'écriture directe d'une structure n'est donc pas portable. Ce qui marche sous Windows (exemple: structure BITMAPFILEHEADER) ne marchera pas forcément ailleurs)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    Dans mon header j'ai des carractère qui represente des nombre en representation octale, je peux utiliser une structure pour ca ? (hors mis un char)

  14. #14
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je ne vois pas trop ce que tu veux dire, là...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    Citation Envoyé par tar.h
    Fields are numeric unless otherwise noted below; numbers are ISO 646
    representations of octal numbers, with leading zeros as needed.
    Donc mes nombre sont en notation octal dans le fichier.

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

Discussions similaires

  1. [JMF] Lire un byte array d'un WAV
    Par Iron Bull dans le forum Multimédia
    Réponses: 0
    Dernier message: 13/03/2009, 14h14
  2. Réponses: 6
    Dernier message: 07/01/2009, 08h04
  3. Lire un Byte
    Par bdptaki dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2008, 22h27
  4. Lire des byte avec Scanner
    Par ToTo13 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 25/01/2007, 15h56
  5. Lire les Bytes brut du protocole IP sur TCP
    Par Tleconte dans le forum Delphi
    Réponses: 1
    Dernier message: 21/05/2006, 02h32

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