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

Windows Forms Discussion :

[VB.NET]Ecrire à la première ligne d'un fichier texte


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut [VB.NET]Ecrire à la première ligne d'un fichier texte
    Bonjour à tous,

    J'ai un fichier A.txt qui contient

    PAUL
    JACQUES
    LUC

    je voudrais créer un fichier B.TXT qui contient

    COMPTAGE 3
    PAUL
    JACQUES
    LUC

    En gros, je rajoute une première ligne qui résume des infos de mon fichier A.txt.

    Pour ce faire j'utilise

    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
    Dim strLine As String
            Dim SR As System.IO.StreamReader
            Dim comptage As Integer
     
            'récupère le fichier sélectionné
     
            SR = System.IO.File.OpenText("\\BIG\AuraToTest\" & MyTxt)
     
            Do Until SR.Peek = -1
                comptage += 1
                strLine = SR.ReadLine
     
            Loop
     
            Dim SW = New System.IO.StreamWriter("\\BIG\AuraTested\" & MyTxt)
            SW.writeline("Comptage " & comptage)
            SW.write(SR.ToString)
            SW.close()
            SR = Nothing
            SW = Nothing
    Il me compte donc bien mon nombre d'enregistrement qu'il met dans la variable comptage.

    Le problème c'est qu'il ne me rajoute pas
    PAUL
    JACQUES
    LUC
    après la première ligne, mais j'obtiens

    Comptage 3
    System.IO.StreamReader

    Comment réécrire tout le contenu de mon fichier après la ligne d'entête ?
    Ou alors dois-je utiliser une autre technique qui consisterait à copier l'entièreté du fichier A.Txt dans B.txt et aller écrire mon entête en première position?

    Merci de votre aide

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    ce que tu peux faire c'est ajouter chaque ligne de ton fichier dans un listbox intermédiaire par exemple :

    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
     
     SR = System.IO.File.OpenText("\\BIG\AuraToTest\" & MyTxt)
     
            Do Until SR.Peek = -1
                comptage += 1
                listbox.items.add(SR.ReadLine)
            Loop
    sr.close()
     
     Dim sw As StreamWriter = New StreamWriter("c:\fichierComptage.txt")
    sw.writeline("Comptage " & i.tostring)
    for each item as object in listbox.item
    sw.writeline(listbox.item)
    Next
    sw.close()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Merci Hulk pour cette réponse,

    Je dois reconnaître que j'avais pensé à ce genre de solution, mais j'espérais qu'on puisse vraiment coller l'ensemble du fichier (que j'ai bien été mettre dans mon objet SR) à la suite de mon premier enregistrement. J'aurais trouvé ça plus propre. Et quid de la solution de copier A.txt dans B.txt et d'arriver à écrire ma première ligne au début de B.txt ?

  4. #4
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    écrire à la suite on sait faire, mais au début je sais pas.

    Il existe une surcharge permettant de ne pas écraser mais d'ajouter à la fin du fichier:

    Dim SW As New StreamWriter ("MonFichier.txt", True) ' crée ou si existe ajoute

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Bon il ya beacoup plus simple, voila ce que je propose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      Dim rdr As StreamReader = File.OpenText("source.txt")
            While Not rdr.EndOfStream
                rdr.ReadLine()
                Index += 1
            End While
            rdr.Close()
            File.WriteAllLines("dest.txt", New String() {"Comptage " & Index.ToString, File.ReadAllText("source.txt")})
    J'espere que ca va t'aider.
    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Salut mehdi_tn,

    Tu n'as pas de me faire à une heure pareille !

    J'ai testé, c'est pile ce qu'il me fallait. Alors je dis et aussi et je marque

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

Discussions similaires

  1. Supprimer les deux premières lignes du dernier fichier texte créé
    Par Speedoumitic dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/07/2013, 16h22
  2. [Batch] Extraction de la première ligne d'un fichier texte?
    Par brolon dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 12/05/2010, 14h35
  3. [Débutant] Ne pas lire la première ligne d'un fichier texte à son ouverture
    Par Mlezen dans le forum MATLAB
    Réponses: 14
    Dernier message: 11/02/2009, 17h39
  4. Ecrire à la première ligne d'un fichier texte
    Par jappa1482 dans le forum Langage
    Réponses: 1
    Dernier message: 26/12/2007, 10h54
  5. Supprimer la première ligne d'un fichier texte
    Par n@n¤u dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 13/07/2006, 08h38

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