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 :

Ecrire (AppendText) au debut du fichier?


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut Ecrire (AppendText) au debut du fichier?
    Salut Les Amis
    comment peut-on ecrire dans fichier (notepad) text, mais l'ecriture sera la ligne nouveau au debut du fichier et non pas a la fin , qlq un a un idee?

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Architecte C#
    Inscrit en
    Février 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : Février 2003
    Messages : 78
    Points : 144
    Points
    144
    Par défaut
    Salut, pas trouvé de réponse directe dans la classe System.IO.File, par contre, tu peux gérer ca en manipulant les Streams :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    using (var stream = File.Open(@"C:\monfichier.txt", FileMode.OpenOrCreate))
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        stream.Position = 0;
                        writer.WriteLine("la ligne à écrire en premier");
                        writer.Flush();
                    }
                }

  3. #3
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Bonjour,
    Citation Envoyé par Vimaire Voir le message
    Salut, pas trouvé de réponse directe dans la classe System.IO.File, par contre, tu peux gérer ca en manipulant les Streams :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    using (var stream = File.Open(@"C:\monfichier.txt", FileMode.OpenOrCreate))
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        stream.Position = 0;
                        writer.WriteLine("la ligne à écrire en premier");
                        writer.Flush();
                    }
                }
    Il me semble (sauf erreur) que ceci efface le reste du contenu (ou au moins écrase les premiers caractères pour remplacer par la ligne insérée).

    Il n'y a pas de miracle, pour ceci il faut écrire la ligne à insérer, puis recopier le reste du fichier original.
    Voici comment je ferais, tout en minimisant la mémoire utilisée (en évitant de charger tout le fichier en mémoire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    string tmpPath = Path.GetTempFileName();
     
    using (var reader = new StreamReader(srcPath))
    using (var writer = new StreamWriter(tmpPath))
    {
        writer.WriteLine("la ligne à écrire en premier");
        while (!reader.EndOfStream)
        {
            writer.WriteLine(reader.ReadLine());
        }
    }
     
    File.Copy(tmpPath, srcPath, true);
    File.Delete(tmpPath);
    Cordialement !

  4. #4
    Membre habitué
    Homme Profil pro
    Architecte C#
    Inscrit en
    Février 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : Février 2003
    Messages : 78
    Points : 144
    Points
    144
    Par défaut
    Bah, si tu penses que ca peut etre mieux de le gérer comme ca, fonce, ceci dis, après un test rapide sur un fichier texte, je te confirme que ca fait bien de l'insertion

    Après, je suis pas vraiment un spécialiste du Stream XD

    Dans tous les cas, bon courage !

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut Oui!
    Merci Pour vous
    Mr.Sehnsucht , j'ai bienne remarque l'erreur que les premiers caracteres sont effaces !! mais pourquoi ?
    j'utilise maitenant ta methode elle marche bienne
    merci beaucoups

  6. #6
    Membre habitué
    Homme Profil pro
    Architecte C#
    Inscrit en
    Février 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : Février 2003
    Messages : 78
    Points : 144
    Points
    144
    Par défaut
    Bien vu, j'étais complètement passé à coté O_O


    Merci pour l'info, c'est bon a prendre pour l'avenir

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 08/08/2005, 20h52
  2. [DEBUTANT]Le fichier spécifié est introuvable
    Par Battosaiii dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/04/2005, 16h36
  3. [langage] Ajout en debut de fichier
    Par WetzlarMan dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2004, 11h01
  4. [LG]Ecrire le contenu d'un fichier dans un autre
    Par lucke dans le forum Langage
    Réponses: 10
    Dernier message: 26/04/2003, 20h48
  5. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54

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