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

ASP.NET Discussion :

[ASP.NET-C#] Problème lors de la création de fichiers


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 93
    Points : 64
    Points
    64
    Par défaut [ASP.NET-C#] Problème lors de la création de fichiers
    Bonjour,
    J'ai un site hébergé chez mon FAI. Dans le contexte de l'administration de mon site, je transfère des données vers la base de données incluse dans le site que tout le monde peut consulter. Jusque là pas de problème. Toutefois, lorsque je veux créer des fichiers '.txt' contenant des informations plus volumineuses (quelques lignes) dans un répertoire créé pour ça voici le message d'erreur que je reçois:
    The output byte buffer is too small to contain the encoded data, encoding 'Unicode (UTF-8)' fallback 'System.Text.EncoderReplacementFallback'. Parameter name: bytes
    Et voici mon 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    public static Boolean CreateInformationsFile(String IDFile, String Informations)
        {
            Boolean bNoMatches = false;
            try
            {
                char[] charData = new char[Informations.Length];
                byte[] byData = new byte[Informations.Length];
                string sNomFichier = IDFile + ".txt";
                FileStream monFichier = new FileStream("~\\Documents\\" + sNomFichier, FileMode.Create, FileAccess.ReadWrite);
                charData = Informations.ToCharArray();
                Encoder enc = Encoding.UTF8.GetEncoder();
                enc.GetBytes(charData, 0, charData.Length, byData, 0, true);
                monFichier.Seek(0, SeekOrigin.Begin);
                monFichier.Write(byData, 0, byData.Length);
            }
            catch (IOException ex)
            {
                bNoMatches = true;
                _sInfos = "Une IO Exception a été trouvée ! \r" + ex.Message;
            }
            catch (Exception ex)
            {
                bNoMatches = true;
                _sInfos = "Exception = " + ex.Message;
            }
            return bNoMatches;
        }
    Quelqu'un a-t-il déjà été confronté à ce problème ?
    J'avoue que je ne comprends pas très bien ce message d'erreur.

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Il me semble que tu peux faire plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static byte[] StrToByteArray(string str)
    {
        Encoder enc = Encoding.UTF8.GetEncoder();
        return enenccoding.GetBytes(str);
    }
    En espérant t'avoir aidé.

  3. #3
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    Plus simple encore pour écrire dans un fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using (FileStream fs = File.Create(path))
    {
    	Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
    	fs.Write(info, 0, info.Length);
    }

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 93
    Points : 64
    Points
    64
    Par défaut
    Merci à Nicolas et à Immobilis.
    J'ai choisi la solution d'Immobilis et cela fonctionne parfaitement.
    Effectivement, pourquoi faire compliqué quand c'est simple ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/08/2011, 14h26
  2. Réponses: 11
    Dernier message: 05/08/2009, 12h30
  3. Problème lors de la création d'un nouveau projet asp
    Par lamia89 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 14/11/2008, 16h42
  4. Réponses: 3
    Dernier message: 26/02/2006, 23h53
  5. Clé étrangère problème lors de la création de la table.
    Par snoopy69 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 18/08/2005, 08h15

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