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 :

Binarywrite chars problème :s [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 17
    Par défaut Binarywrite chars problème :s
    Salut tout le monde, j'ai un petit probleme avec binarywrite.write, ce que je veut faire, c'est d'ecrire les charactère du textbox1 sur le fichier binaire, et ajouter 0x0000 a la fin, mais ça me donne cette erreur:


    voila le code:
    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
            private void saveToolStripMenuItem_Click(object sender, EventArgs e)
            {
                BinaryWriter bw = new BinaryWriter(File.OpenWrite(path), Encoding.Unicode);
                bw.BaseStream.Position = 0x118A0;
                bw.Write(Convert.ToChar(textBox1.Text) + '\0');
                bw.BaseStream.Position = 0x11940;
                bw.Write(Convert.ToInt32(textBox2.Text));
                bw.BaseStream.Position = 0x1193C;
                bw.Write(Convert.ToInt32(textBox3.Text));
                bw.BaseStream.Position = 0x128E0;
                bw.Write(Convert.ToInt32(textBox5.Text));
                bw.BaseStream.Position = 0x128E4;
                bw.Write(Convert.ToInt32(textBox6.Text));
                bw.BaseStream.Position = 0x128E8;
                bw.Write(Convert.ToInt32(textBox7.Text));
                bw.Flush();
                bw.Close();
                bw = null;
            }
    merci d'avance pour toute aide

  2. #2
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut omarrio,
    Citation Envoyé par omarrrio Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert.ToChar(textBox1.Text)
    Ton erreur semble logique si la valeur de textBox1.Text est une chaîne de caractère et non un seul caractère.
    Si tu veux réellement un seul caractère, je te conseille la méthode Char.TryParse au lieu de Convert.ToChar (Int32.TryParse au lieu de Convert.Int32, etc).

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if(textBox1.Text.Length>0)//sinon tu aura un erreur en cas textbox1.Text est vide
     Convert.ToChar(textBox1.Text[0])

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 17
    Par défaut
    Citation Envoyé par -N4w4k- Voir le message
    Salut omarrio,Ton erreur semble logique si la valeur de textBox1.Text est une chaîne de caractère et non un seul caractère.
    Si tu veux réellement un seul caractère, je te conseille la méthode Char.TryParse au lieu de Convert.ToChar (Int32.TryParse au lieu de Convert.Int32, etc).
    merci mais ça n'a pas marché :s et je veut convertir un mot de 8 caractères, pas un seul caractère :s je n'ai pas put le faire :s

    Citation Envoyé par azstar Voir le message
    tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if(textBox1.Text.Length>0)//sinon tu aura un erreur en cas textbox1.Text est vide
     Convert.ToChar(textBox1.Text[0])
    merci je l'ai totallement oublié

    EDIT: j'ai resolu mon probleme par moi même (chui trop fiere lol)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                BinaryWriter bw = new BinaryWriter(File.OpenWrite(path));
                Encoding enc = Encoding.Unicode;
                bw.BaseStream.Position = 0x118A0;
                bw.Write(enc.GetBytes((textBox1.Text)+ '\0'));

  5. #5
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Citation Envoyé par omarrrio Voir le message
    j'ai resolu mon probleme par moi même (chui trop fiere lol)
    Haha


    Je pensais que tu voulais écrire qu'un seul caractère. Autrement tu peux faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BinaryWriter bw = new BinaryWriter(File.OpenWrite(path), Encoding.Unicode);
    bw.BaseStream.Position = 0x118A0;
    bw.Write(textBox1.Text + '\0');
    //...
    Bon code

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 09/06/2015, 15h14
  2. replaceAll(String, Char) problème
    Par SheikYerbouti dans le forum Langage
    Réponses: 8
    Dernier message: 05/03/2007, 17h20
  3. Réponses: 21
    Dernier message: 21/11/2005, 09h52
  4. [ tinyint et char ] problème de type
    Par shirya dans le forum Installation
    Réponses: 3
    Dernier message: 05/11/2005, 07h08
  5. [PostgreSql] Problème de cadreage de char !!!
    Par moipastoi dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/05/2003, 18h01

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