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 :

[C# 2.0] Modifier un fichier texte: Écriture au début


Sujet :

C#

  1. #1
    Membre actif Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Points : 219
    Points
    219
    Par défaut [C# 2.0] Modifier un fichier texte: Écriture au début
    Bonjour,

    Je vous explique mon problème. J'ai un fichier texte très gros (plus de 1000 lignes), qui est en fait un fichier XML. Seulement voilà, l'en-tête du fichier XML est incorrect et je veux l'écrire moi-même.

    Donc, je dois faire 2 choses:

    1- Effacer la première ligne du fichier XML
    2- Remplacer cette ligne par 3 nouvelles lignes

    J'ai parcouru la doc et les forums, et il semble que lorsqu'un utilise un StreamWriter, on ne peut qu'écrire à la fin du fichier ou écraser le fichier... y a-t-il moyen d'écrire au début sans effacer le fichier?

    J'ai pensé aussi garder en mémoire les 1000 lignes de données XML, créer un nouveau fichier XML, écrire la bonne en-tête, puis finalement les 1000 lignes... mais ça implique une trop grande utilisation mémoire.

    Quelqu'un a une idée?

    Merci!
    .:: WOTC_MasterMind | Never Surrender | Warriors of The Cross ::.
    Il n'y a qu'une façon d'échouer, c'est d'abandonner avant d'avoir réussi.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 212
    Points : 125
    Points
    125
    Par défaut
    Bonsoir,

    Voici ma solution

    1. Créer un nouveau fichier texte
    2. Ecrire les 3 lignes d'entête
    3. Lire ligne par ligne le fichier original et les écrire au fur et à mesure dans le nouveau fichier texte (excepté pour la première ligne qui est à supprimer)

    @+

    Ludo

  3. #3
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Il y'a plus simple mais moins efficace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string fichier="C:\fichier.txt";
    string[] contenu = File.ReadAllLines(@fichier);
    contenu[0] = String.Concat(new string[] { "Ligne1", Environment.NewLine, "Ligne2", Environment.NewLine, "Ligne3" });
    File.WriteAllLines(@fichier, contenu);
    La solution de exclusif est pas mal à quelques details pres :il faut utiliser ReadToEnd au lieu de lire ligne par ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StreamReader rdr=File.OpenText(@fichier);
    rdr.ReadLine();
    string a_copier =rdr.ReadToEnd();
    Mehdi Feki : Modérateur .Net

  4. #4
    Membre actif Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Points : 219
    Points
    219
    Par défaut
    Merci!
    .:: WOTC_MasterMind | Never Surrender | Warriors of The Cross ::.
    Il n'y a qu'une façon d'échouer, c'est d'abandonner avant d'avoir réussi.

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

Discussions similaires

  1. Modifier un fichier texte à un endroit précis
    Par Christophe_ dans le forum C#
    Réponses: 2
    Dernier message: 29/04/2007, 17h48
  2. [VBA-E] modifier un fichier texte avant import
    Par hka75 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/04/2007, 21h13
  3. modifier un fichier texte
    Par gennydude99 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 20/10/2006, 22h54
  4. [vb.net] Modifier un fichier texte
    Par olbi dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/10/2006, 15h31
  5. comment utiliser Notepad pour modifier un fichier texte?
    Par moon13_698 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 06/05/2006, 15h41

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