Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

fichier ascii en binaire



  1. #1
    vin_100

    fichier ascii en binaire


    ------

    Bonjour,

    Comment puis-je faire pour convertir un fichier ascii de "flottant" en fichier binaire "big endian"?

    Merci par avance

    -----

  2. Publicité
  3. #2
    lakrids

    Re : fichier ascii en binaire

    Pourrais-tu développer un peu ta question? Tu veux le programmer toi-même, ou tu cherches un logiciel? Je ne comprends pas ce que tu veux faire avec le fichier : un fichier n'est jamais "flottant"...

  4. #3
    vin_100

    Re : fichier ascii en binaire

    oups, jai pas été très clair...
    donc le fichier que jai créée sous matlab est juste une colonne de flottants,
    et jai besoin de le convertir en fichier binaire !

    Malheureusement je n'y connais rien pour ainsi dire en programmation

    Merci pour ton intéret

  5. #4
    manu_mars

    Re : fichier ascii en binaire

    Bonjour
    Si je comprend bien, ton fichier source est donc composé d'informations signifiant des nombres flottants, et tu veux pouvoir recuperer ces donnees sous une autre forme.

    Des le moment où tu traite de l'information par ordinateurs, celles-ci se presentent sous forme binaire: une suite de 0 et de 1.
    Un fichier est donc une information binaire et ce, quel que soit le format employé: .doc, .jpg, .rtf... etc etc
    Ensuite, son traitement et son rendu va dependre du logiciel utilise pour le creer, et de la nature de ces informations.

    Pour repondre a ta question, il faut donc que l'on connaisse
    1) l'extension de ce fichier contenant ces nombres flottants

    2) La destination à laquelle ces informations sont vouees, c'est a dire que veux tu récupérer precisement pour les traiter et de quelle manière?

    A priori, la demarche est la suivante:
    parcours du fichier source
    reperage des donnees a recuperer
    lecture de ces donnees
    ecriture de ces donnees vers le fichier de destination

    A bientot
    lui: "le vide, ca creuse"
    elle: "A table!"

  6. #5
    vin_100

    Re : fichier ascii en binaire

    bonjour,
    Citation Envoyé par manu_mars Voir le message
    Bonjour
    Si je comprend bien, ton fichier source est donc composé d'informations signifiant des nombres flottants, et tu veux pouvoir recuperer ces donnees sous une autre forme.

    Des le moment où tu traite de l'information par ordinateurs, celles-ci se presentent sous forme binaire: une suite de 0 et de 1.
    Un fichier est donc une information binaire et ce, quel que soit le format employé: .doc, .jpg, .rtf... etc etc
    Ensuite, son traitement et son rendu va dependre du logiciel utilise pour le creer, et de la nature de ces informations.
    d'accord
    Citation Envoyé par manu_mars Voir le message
    Pour repondre a ta question, il faut donc que l'on connaisse
    1) l'extension de ce fichier contenant ces nombres flottants
    il s'agit d'un tableau de données composés de nombres flottants
    issu d'un programme matlab (par l'intermédiaire d'un "save" pour faire un format ASCII)
    donc j'y met l'extension que je veux...
    Citation Envoyé par manu_mars Voir le message
    2) La destination à laquelle ces informations sont vouees, c'est a dire que veux tu récupérer precisement pour les traiter et de quelle manière?
    In fine, c'est fichier "purement" binaire que je désire... pour l'introduire dans un autre programme réclamant ce format!
    Apparemment (mais je n'y connais rien) je crois que c'est parce que
    pour de très gros fichier, c'est beaucoup plus rapide....
    Bref un fichier où on arrive à rien lire de concret avec un "éditeur de texte"
    à part des caractères n'importe comment
    (Désolé si je suis pas très clair)

    J'ai bien essayé avec la fonction fwrite de matlab...
    mais à la lecture le prog en question ne lit pas les bonnes valeurs
    Mais il ouvre bien le fichier!!!

    NB: une idée me vient si j'ouvre avec un éditeur, je vois qu'il me sort les chiffres sous la forme exponentielle, du style 100 -> 1.0e+02
    Ca peut venir de là???? puisqu'après en convertissant en binaire il crée l'équivalent du "e"
    et je sais pas comment changer ça sous matlab...

    Merci par avance

  7. A voir en vidéo sur Futura
  8. #6
    lou_ibmix_xi

    Re : fichier ascii en binaire

    C'est pourtant bien la fonction fwrite qu'il faut utiliser, maintenant il faut savoir quelle précision ton programme lit les données, et si celle-ci est différente à la précision MATLAB.
    Il faut donc que tu précise l'argument 'precision' en appelant fwrite avec 'integer', 'float' ou 'double'...

  9. Publicité
  10. #7
    vin_100

    Re : fichier ascii en binaire

    Citation Envoyé par lou_ibmix_xi Voir le message
    C'est pourtant bien la fonction fwrite qu'il faut utiliser, maintenant il faut savoir quelle précision ton programme lit les données, et si celle-ci est différente à la précision MATLAB.
    Il faut donc que tu précise l'argument 'precision' en appelant fwrite avec 'integer', 'float' ou 'double'...
    Merci pour ta réponse!
    Mais j'ai essayé diverses possibilités... et rien n'y fait
    et le prog réclame une colonne de "float"....
    Au passage, c'est quoi les différences entre le IEEE, le cray etc. évoqué pour fread dans matlab?

  11. #8
    lou_ibmix_xi

    Re : fichier ascii en binaire

    IEEE (le ou be), VAX, CRAY sont des formats de codages différents pour les nombres à virgules flottantes, celui que tu dois utiliser dépends de la machine cible, donc à choisir entre 'ieee-le' ou 'ieee-be' pour du little endian ou big endian (je suppose que tu n'as pas de CRAY ni de VAX).
    Il faut que tu sois sur du format de lecture de ton programme, il attends des 'float' (donc des flottants 32 bits), mais little endian ou big endian? Parce que ca change tout, par exemple 1 en flottant IEEE 32 bits little endian donne 0x0000803f, et si tu le lis en big endian tu trouveras 32831!

  12. #9
    Gre

    Re : fichier ascii en binaire

    Citation Envoyé par lou_ibmix_xi Voir le message
    [...]mais little endian ou big endian?
    Il l'a déjà dit c'est big endian.


    @vin_100 : Mais à mon avis tu fais fausse route. Le problème c'est que tu penses qu'il suffit d'écrire des nombres au format binaire pour qu'il soit lisible dans un autre programme. Hors souvent, l'utilité de sauvegarder dans un format binaire est qu'on rajoute de l'information supplémentaire qu'il serait long d'écrire sous forme textuelle (et surtout fastidieux à relire, bien que ça devient habituel avec le format XML). Ainsi donc, si tu sauvegardes juste les nombres au format binaire et que tu essayes de les ouvrir avec Word, rien ne se passera. Il faut bien plus d'information dans ton document. Et c'est le cas d'un format Matlab par exemple.

    Si tu nous disais exactement, du début, ce que tu comptes faire ?

    Parce que si c'est pour lire ton fichier dans Matlab, il y a bien plus simple ?
    Si c'est pour utiliser un programme qui lit des fichiers provenant de Matlab, il faut que tu reconstruises le fichier comme Matlab le fait (donc chercher dans la spécification si c'est indiqué).
    War does not decide who's right, but who's left. (Bertrand Russell)

  13. #10
    vin_100

    Re : fichier ascii en binaire

    Citation Envoyé par Gre Voir le message
    @vin_100 : Mais à mon avis tu fais fausse route. Le problème c'est que tu penses qu'il suffit d'écrire des nombres au format binaire pour qu'il soit lisible dans un autre programme. Hors souvent, l'utilité de sauvegarder dans un format binaire est qu'on rajoute de l'information supplémentaire qu'il serait long d'écrire sous forme textuelle (et surtout fastidieux à relire, bien que ça devient habituel avec le format XML). Ainsi donc, si tu sauvegardes juste les nombres au format binaire et que tu essayes de les ouvrir avec Word, rien ne se passera. Il faut bien plus d'information dans ton document. Et c'est le cas d'un format Matlab par exemple.
    Bonjour et merci...
    non non je ne faisais pas fausse route
    après quelques tentatives en ascii (mais le programme n'accepte que des petit fichier dans ce cas...), je me suis rendu compte que l'erreur venait de l'ecriture sous forme scientifique, j'ai donc créer un nouveau fil car je n'arrive pas 0 la changer sous matlab

    Mais si je fais les premières à la main ca marche!!!!
    Mais plusieurs dizaines de milliers (au minimum!!!), ca risque d'etre pénible...

    NB: Pour la petite histoire, le coup de vice était pas évident à voir, car il apparait seulement à partir de 10 (il lisait pas ce qu'il y avait derrière le "e"),
    et j'avais testé que jusque 8 (c'est ballot)

  14. #11
    Gre

    Re : fichier ascii en binaire

    Citation Envoyé par vin_100 Voir le message
    Bonjour et merci...
    non non je ne faisais pas fausse route [...]
    Bon bin tant mieux
    War does not decide who's right, but who's left. (Bertrand Russell)

Sur le même thème :

Discussions similaires

  1. Stéréogramme en ASCII
    Par arnaud 47 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/06/2007, 11h00
  2. ascii to décimal
    Par KHEOPS1982 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 30/05/2006, 22h35
  3. fichier binaire Lecroy
    Par koatoo dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 15/03/2006, 12h42
  4. conversion ASCII
    Par Benoist85 dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 06/06/2005, 00h35
  5. [Matlab] Ecrire un espace dans un fichier binaire
    Par jepoirrier dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 12/08/2004, 17h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.