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 :

lire une ligne d'un fichier texte (et enregistrer le contenu non lu)


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 61
    Points : 30
    Points
    30
    Par défaut lire une ligne d'un fichier texte (et enregistrer le contenu non lu)
    bonjour,

    Je developpe une application qui a un moment donné doit cherché une ligne précise dans un fichier texte.

    Elle lit le fichier en boucle jusqu'a qu'elle trouve une certaine valeur.

    Je voudrais savoir comment enregistré dans 2 variables ce qui se trouve avant cette ligne et après cette ligne.

    (Ce qui me permettra en fait de pouvoir modifier la ligne en question et de réécrire tout le fichier: La partie avant / La ligne modifiée / La partie après)

    Voici le code qui cherche une ligne précise:


    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
     
     Try
                    Dim A As String
                    Dim SR As StreamReader = File.OpenText("Mon_Fichier.txt")
                    Dim AnalyseChaine As String
                    Dim Verification As Boolean = False
     
                    A = TextBoxA.Text
     
    'Lit le fichier ligne par ligne jus'à qu'il trouve, ou jusqu'à la fin
                    Do
                        UneLigne = SR.ReadLine()
                        If Not UneLigne Is Nothing Then
    'On recherche le text entré dans la textboxA
                            AnalyseChaine = UneLigne.IndexOf(";" + A + ";")
    'S'il trouve on quitte la boucle
                            If AnalyseChaine >= 0 Then
     
                                Verification = True
                                Exit Do
                            End If
                        End If
                    Loop Until UneLigne Is Nothing
                    SR.Close()
     
                              Catch ex As Exception
                End Try
    Car actuellement si j'écris la modification, soit j'efface tout, soit je rajoute a la fin mais l'ancienne ligne se trouve toujours dans le fichier (et je le veux pas car cela doublerais la variable A)

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Si ton fichier n'est pas trop important, voila comment tu peux faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim fichier As StreamReader
    Dim contenu As String
    Dim lignes As String()
    Dim index As Integer
     
    fichier = New StreamReader("MonFichier.txt")
    contenu = fichier.ReadToEnd()
    lignes = contenu.Replace(vbCrLf,Chr(13)).Split(Chr(13))
    For index = 0 To lignes.Length - 1
       If lignes(index) = MA_CONDITION Then
          lignePrecedente = lignes(index-1)
          ligneSuivante = lignes(index+1)
       End If
    Next
    Bon biensur, il faut rajouter quelques contrôles de début et fin de liste mais le grand principe est là.

    Bon courage

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 61
    Points : 30
    Points
    30
    Par défaut
    Pour info le fichier fait + 3000 lignes.

    Merci de ta réponse je vais essayer d'explorer un peu cela.

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    si je comprends bien ce que tu veux faire la variable ligne precedente prend la valeur de la ligne qui précède celle qui m'interesse.

    d'un point de vue méthode dois-je faire en sorte d'écrire cette variable jsuqu'à qu'il n'y ai plus de ligne avant

    Puis écrire ma ligne modifiée (LigneActuelle)

    Puis écrire ma ligneSuivante jusqu'à qu'il yen ai plus?

    (prendre en compte qu'il ya environs 3000 lignes, donc est ce raisonable de faire cela)

    PS: est il possible d'effacer la ligne en question? (ou une ligne précise d'un tableau)


    - A la limitte je pourrais mettre toutes les lignes du fichier dans un tableau
    contenu = fichier.ReadToEnd()
    tableau = contenu.Replace(vbCrLf,Chr(13)).Split(Chr(13))
    - J'efface la ligne en question (clear??????)

    - J'écris toutes les lignes du tableau dans un fichier texte qui ecrase l'ancien fichier

    - je réécris la ligne modifiée

    * skaraa = balabonov

Discussions similaires

  1. [WD14] Lire une ligne d'un fichier texte
    Par DanielB dans le forum WinDev
    Réponses: 6
    Dernier message: 23/03/2011, 12h22
  2. Lire une ligne dans un fichier texte
    Par stpaul04 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 28/07/2009, 14h06
  3. Lire une ligne et colonne fichier texte
    Par Naoli dans le forum Général Python
    Réponses: 4
    Dernier message: 24/11/2007, 12h56
  4. Réponses: 2
    Dernier message: 08/11/2007, 15h33
  5. [BATCH] lire chaque ligne d'un fichier texte
    Par bartmarley dans le forum Windows
    Réponses: 13
    Dernier message: 22/04/2005, 21h01

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