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

VB 6 et antérieur Discussion :

[VB6]écriture dans un fichier: mélange binaire string.


Sujet :

VB 6 et antérieur

  1. #1
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut [VB6]écriture dans un fichier: mélange binaire string.
    Bonjour.
    j'aimerais savoir comment écrire dans un fichier des octes en binaire. je sait qu'on peut "en capter" avec le get et qu'on peut mettre des caractère de type string asvec put #X,Y,contenu mais je n'arrive pas à écrire des octets.

    merci.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et bien un octet , c'est un byte ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub ecritByte()
     Dim b As Byte
     Dim f As Integer
     f = FreeFile
     Open "Monfichier.dat" For Binary Access Write As #f
     
       For b = Asc("a") To Asc("z")
        Put f, , b
       Next
     
     Close f
     
    End Sub
     
    Sub LectByte()
     Dim b As Byte
     Dim f As Integer
     f = FreeFile
     Open "Monfichier.dat" For Binary Access Read As #f
     
        While Not EOF(f)
         Get #f, , b
         Debug.Print Chr(b);
         DoEvents
        Wend
     
     Close f
     
    End Sub

  3. #3
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    merci bbil
    dis, comment je peut conaitre la taille d'un caractère: par exemple quand je fait un put #f,y,"salut" est-ce que si je veut mettre salut01 je peut rajouter put #f,y+5,01?

    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    oui , pour connaitre la position courante dans fichier tu peu assi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    y= seek(f)
       Put f, y, "salut"
       b = 1
       Put f, y + 5, b
    et dans fichier tu aura en hexa :
    73 61 6C 75 74 01
    s a l u t .

    dans le cas ou ton 01 est un octet...



  5. #5
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Merci beaucoup bbil.
    dis, sait-tu comment "retrouver" des chifres entrés en imput et récupérés en binaire?
    autre-chose, y'as-til un moyen autre que de vérifier avant si le fichier existe pour éviter de créer un fichier à la lecture binaire?

    enfin, comment faire en sorte que le fichier ne contiennet que ce qu'on met dedans sans utiliser le "kill" et sans imput?

    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par méphistopheles
    dis, sait-tu comment "retrouver" des chifres entrés en imput et récupérés en binaire?
    qu'appelle tu les chiffres entrée en input ?...


    Citation Envoyé par méphistopheles
    autre-chose, y'as-til un moyen autre que de vérifier avant si le fichier existe pour éviter de créer un fichier à la lecture binaire?
    ?qu'appelle tu "créer un fichier à la lecture binaire"..?


    Citation Envoyé par méphistopheles
    enfin, comment faire en sorte que le fichier ne contiennet que ce qu'on met dedans sans utiliser le "kill" et sans imput?
    merci
    ?

    désolé .. mais j'ai beau relire les 3 questions, je ne les comprends pas .. peu-tu dévellopé un peu ...?

  7. #7
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par bbil
    Citation Envoyé par méphistopheles
    dis, sait-tu comment "retrouver" des chifres entrés en imput et récupérés en binaire?
    qu'appelle tu les chiffres entrée en input ?...
    disons, si je met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim i as integer
    i=1
    open Monchemin for binary as #1
    put #1,,i
    close #1
    j'obtient à la lecture du ficier en binaire un chiffre du style "0" "1" "0" au lieu de "1".
    or, je veut lire des fichiers avec des nombres de ce style. si tu à une idée...
    Citation Envoyé par bbil
    Citation Envoyé par méphistopheles
    autre-chose, y'as-til un moyen autre que de vérifier avant si le fichier existe pour éviter de créer un fichier à la lecture binaire?
    ?qu'appelle tu "créer un fichier à la lecture binaire"..?
    quand j'ouvre un fichie, avec cette methode, un fichier est autaumatiquement créé. j'aimerais savoir si je peux éviter ça sans passer par un div de vérification.
    Citation Envoyé par bbil
    Citation Envoyé par méphistopheles
    enfin, comment faire en sorte que le fichier ne contiennet que ce qu'on met dedans sans utiliser le "kill" et sans imput?
    merci
    ?
    Quand tu modifie un fichier binaire, tu ne sait pas s'il est plein où vide avant de l'avoir lu. je voudrais savoir s'il étais possible de l'effacer avant d'écrire dedans car si ce que l'on ecrfit est plus petit que celui existant.

    désolé de na pas avoir été asser précis.


    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim i as integer
    i=1
    open Monchemin for binary as #1
    put #1,,i
    close #1
    utilise des byte..(voir + haut.. dim b as byte..) si tu ve écrire octets/octets, en VB un integer c'est 16 bits , 2 octets...



    Oui sur ouverture en mode binary .. le fichier est créé s'il n'existe pas
    Citation Envoyé par Aide en ligne
    Si le fichier indiqué par l'argument pathname n'existe pas, il est créé au moment où un fichier est ouvert en mode Append, Binary, Output ou Random.
    et je connais pas de moyen d'éviter ça... ( d'ou test existance fichier par exemple avec if dir("Monfichier.dat") ="" => fichier inexistant..)

    et pour le dernier cas.. j'ai pas plus de réponse...

  9. #9
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par bbil
    pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim i as integer
    i=1
    open Monchemin for binary as #1
    put #1,,i
    close #1
    utilise des byte..(voir + haut.. dim b as byte..) si tu ve écrire octets/octets, en VB un integer c'est 16 bits , 2 octets...
    en fait, je n'écris pas le fichier mais celui-ci contient déja des nombres écrits en imput. je voudrais savoir comment les récupérer. (ce sont des nombres de -9 à 9)

    [/quote]
    [quote="bbil"]et je connais pas de moyen d'éviter ça... ( d'ou test existance fichier par exemple avec if dir("Monfichier.dat") ="" => fichier inexistant..)[/quote ] bon, c'est pas grave, un dir c'est pas long.

    Citation Envoyé par bbil
    et pour le dernier cas.. j'ai pas plus de réponse...
    là, par-contre, c'est plus embétant, lire tout le fichier, c'est du suicide enfin bon, ce sera un dir & kill.

    salut
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par méphistopheles
    déja des nombres écrits en imput. je voudrais savoir comment les récupérer. (ce sont des nombres de -9 à 9)
    et tu ne sais pas comment sont écrit ces nombres... , as tu un éditeur de texte ..Hexadécimal.. pour essayer de comprendre le format d'enregistrement..?

  11. #11
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    si, ces nombres sonts écris avec la methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    open monchemin for imput as #1
    print #1,montext.
    close #1
    si tu à une idée...

    salut
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ? imput ça n'existe pas... ? output ou input ?

  13. #13
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    output
    désolé, je mes uis emélé

    salut
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et la tu trouve ce que tu ve...?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub test2()
    Dim monText As String
    monText = "-9"
    Open "c:\temp\toto.txt" For Output As #1
     Print #1, monText
     Print #1, monText + 5
    Close #1
    End Sub
    Sub testLect()
    Dim monText As String
     
    Open "c:\temp\toto.txt" For Input As #1
     While Not EOF(1)
     Input #1, monText
        Debug.Print "<" & monText & ">"
     Wend
    Close #1
    sinon montre nous tes fichiers à lire...

  15. #15
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Disons que j'amerais lire des fichiers dont une partie à étée entrée en imput avec la methode binaire au lieu de devoir utiliser un melange entre les deux. par exemple une syntaxe peut être (lu en input)6|-8|-2|5|9...
    %§ÿ 'en gros, ici, écriture binaire illisible en input
    ...
    ...
    ...
    V110 'numero de ligne connue
    %§ÿ 'à nouveau du binaire
    ...[/code]

    voilà, si tu à une idée, sachant que je connait le numero d'une ligne qui va m'indiquer où sont les parties binaires et les parties input.


    salut
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pourrai tu m'envoyer un de ces fichiers...?

  17. #17
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    le probleme, est un problème de version: si tu veux, je n'ai pas encore de fichiers écris en binaire mais je souaite dans la version présente, le faire (pour optimisation de taille).
    or, ayant prévu des changement, j'ai écris dans mes fichiers anterieurs, la version d'écriture à la 6eme ligne.
    avec mes versions de logiciel précédent, je peux lire mon fichier à la ligne 6 et vérifier que le numero de version n'est pas superieur.
    pour ma prochaine version, je souaite donc continuer à lire le numero de version à la ligne 6 mais je ne sait pas le faire car il est entré en imput.
    à-tu une solution?

    merci.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

Discussions similaires

  1. Conversion en binaire et écriture dans un fichier
    Par johnson95 dans le forum Langage
    Réponses: 8
    Dernier message: 13/12/2011, 09h17
  2. Problème d'écriture dans un fichier en mode binaire
    Par Linkht dans le forum Général Python
    Réponses: 6
    Dernier message: 11/08/2011, 03h41
  3. [Débutant] Problème d'écriture dans un fichier binaire.
    Par katmai dans le forum C#
    Réponses: 1
    Dernier message: 10/07/2011, 20h39
  4. Passer à la ligne lors de l'écriture dans un fichier
    Par hams dans le forum Assembleur
    Réponses: 4
    Dernier message: 17/04/2005, 19h25
  5. [JUnit] Junit écriture dans un fichier
    Par mikael35 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 10/08/2004, 13h11

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