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 :

Espaces dans les fichiers binaires


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 24
    Par défaut Espaces dans les fichiers binaires
    Bonjour,

    Ma question ne concerne pas directement le C, mais je ne savais pas où la poster et je me suis dit que vous auriez peut être la réponse.

    Je voudrais savoir si dans un fichier binaire, il y avait des espaces et/ou des retours à la ligne ? Je ne cherche pas à décrire un espace en ASCII, mais je voudrais savoir si un fichier binaire c'est plutôt:
    101011111011111111111100000010101010000100001
    ou
    10101111101111111 111100000010101 010000100001
    ou bien
    10101111101111111
    111100000010101
    010000100001

    PS: c'est vrai que je n'ai qu'a regarder un fichier binaire pour le savoir, mais je n'en ai pas trouvé (et je crois que ca ne s'ouvre pas avec un éditeur de texte d’ailleurs...)

    Merci!

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Qu'est-ce que tu entends par "fichier binaire" ? Tous les fichiers consisten en une suite d'octets et sont donc tous binaires. Et bien entendu, les octets ne sont pas séparés par des espaces. Le mot espace n'a d'ailleurs de sens que si le fichier en question est censé contenir du texte, autrement dit si les octets sont censés représenter des caractères. Dans ce cas, l'espace lui-même est aussi représenté par un code binaire qui est souvent 00010000, mais ça dépend du système.

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 24
    Par défaut
    Déjà merci pour la réponse.

    Ce que j'entends par fichier binaire, ca n'est pas un fichier texte où on regarde les bits, mais bien une succession de 0 et de 1. par exemple je veux mettre chiffre1=10(dec)=1010(bin) et chiffre2=63(dec)=111111(bin) dans un fichier et ca me donne 1010111111. Le problème c’est que je voudrais séparer les 2 chiffres. ma question est de savoir si il existe un séparateur, ou bien si je suis obligé de connaitre la taille exacte de chaque chiffre pour retrouver l'info.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par droledenom Voir le message
    Déjà merci pour la réponse.

    Ce que j'entends par fichier binaire, ca n'est pas un fichier texte où on regarde les bits, mais bien une succession de 0 et de 1. par exemple je veux mettre chiffre1=10(dec)=1010(bin) et chiffre2=63(dec)=111111(bin) dans un fichier et ca me donne 1010111111. Le problème c’est que je voudrais séparer les 2 chiffres. ma question est de savoir si il existe un séparateur, ou bien si je suis obligé de connaitre la taille exacte de chaque chiffre pour retrouver l'info.
    Salut
    Tu es obligé de connaitre la taille exacte. Et plus précisément la structure de ton fichier. Accessoirement dans un fichier binaire tu n'as aucun besoin de séparer tes infos. Si tu stockes un short (2 octets) et un float (4 octets) ben ton fichier binaire contiendra 6 octets à suivre. Et si tu veux récupérer tes valeurs ben te faudra lire successivement 2 octets puis 4 octets et les placer respectivement dans un short et un float...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Citation Envoyé par droledenom Voir le message
    Déjà merci pour la réponse.

    Ce que j'entends par fichier binaire, ca n'est pas un fichier texte où on regarde les bits, mais bien une succession de 0 et de 1. par exemple je veux mettre chiffre1=10(dec)=1010(bin) et chiffre2=63(dec)=111111(bin) dans un fichier et ca me donne 1010111111. Le problème c’est que je voudrais séparer les 2 chiffres. ma question est de savoir si il existe un séparateur, ou bien si je suis obligé de connaitre la taille exacte de chaque chiffre pour retrouver l'info.
    Apparemment c'est toi décides du format de ton fichier, donc tu es évidemment libre de... Décider de la façon dont tu formates ton fichier. Met des espaces si tu veux, ou des retours à la ligne, moi ça ne me dérange pas

    En fait ta question n'a pas de sens.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par droledenom Voir le message
    Ce que j'entends par fichier binaire, ca n'est pas un fichier texte où on regarde les bits, mais bien une succession de 0 et de 1. par exemple je veux mettre chiffre1=10(dec)=1010(bin) et chiffre2=63(dec)=111111(bin) dans un fichier et ca me donne 1010111111. Le problème c’est que je voudrais séparer les 2 chiffres. ma question est de savoir si il existe un séparateur, ou bien si je suis obligé de connaitre la taille exacte de chaque chiffre pour retrouver l'info.
    D'une part :

    chiffre1=10(dec)=1010(bin)
    est faux, suivant la machine, le nombre de bits du mot, le nombre de bits d'un entier, et l'indian-ness

    D'autre part, ce que tu veux, c'est te servir des fonctions fread et fwrite, qui feront cela toutes seules..

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Par défaut
    Bonjour,

    C'est toi qui défini ton fichier.
    J'écris les donnée (float int ..) dans un sens et je lit dans le même sens.

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    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 398
    Par défaut
    Tu sembles confondre deux concepts:
    • vrai fichier binaire, contenant des données brutes
    • fichier texte contenant des '0' et des '1' (et possiblement des espaces et retours à la ligne).

    Pour savoir, en fait, si tu écris "101011111011111111111100000010101010000100001", à quelle taille en octets t'attends-tu?
    45 ou 6?
    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.

Discussions similaires

  1. Ecrire dans un fichier binaire en inversant les poids des bits
    Par zejo63 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 09/07/2007, 15h11
  2. Réponses: 1
    Dernier message: 12/12/2006, 18h31
  3. support des espaces dans les noms de fichiers
    Par menuge dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2006, 09h02
  4. suppression des espaces dans les noms de fichiers
    Par menuge dans le forum Général Python
    Réponses: 8
    Dernier message: 22/10/2006, 12h01
  5. [BATCH] Espaces dans les noms de fichiers :|
    Par andlio dans le forum Windows
    Réponses: 1
    Dernier message: 03/08/2006, 03h42

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