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

VB.NET Discussion :

remplacer nombre fichier text


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut remplacer nombre fichier text
    bonjour j'aimerai avoir votre aide
    En faite j'ai un fichier txt a l'interieur se trouve +/-100 lignes

    Groupe 1
    ligne_numero_00000
    ligne_numero_00000
    Groupe 2
    ligne_numero_00000
    ligne_numero_00000
    ...
    Groupe 20
    ligne_numero_00000
    ligne_numero_00000


    j'ai voulu faire une (boucle ?) qui permet de remplacer les 0 en 1 2 3 comme ceci :

    Groupe 1 :
    ligne_numero_00001
    ligne_numero_00002
    Groupe 2
    ligne_numero_00003
    ligne_numero_00004
    ...
    Groupe 20
    ligne_numero_00099
    ligne_numero_00100

    sans pour autant changer "ligne_numero_" mais vu ma connaissance ça va être compliqué, enfin dites le moi si vous n'avez pas compris ^^
    si c'est possible merci beaucoup !

  2. #2
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Tu as plusieurs solutions.

    Si tu as un petit fichier, comme c'est le cas à priori, alors tu peux utiliser la méthode ReadAllLines de la classe System.IO.File.
    (Si tu avais un gros fichier alors il est conseillé de travailler en streaming via un StreamReader et un FileStream pour la sortie.)

    Puis en effet il suffit de faire une boucle et de modifier les lignes qui se terminent par "00000", en remplaçant ce suffixe par la valeur d'un compteur.
    Pour faciliter le formatage sur 5 caractères tu as la méthode PadLeft du type String.

    Ensuite tu peux réécrire le tout dans le fichier via la méthode File.WriteAllLines.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    D'accord merci beaucoup pour ces indices
    je vais essayer ça !

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Citation Envoyé par seriousme Voir le message
    Si tu as un petit fichier, comme c'est le cas à priori, alors tu peux utiliser la méthode GetAllLines de la classe System.IO.File.
    Il me semble que c'est la méthode ReadAllLines.

    Et tu peux utiliser une List(Of String) pour traiter tes lignes
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Bonjour,


    Il me semble que c'est la méthode ReadAllLines.

    Et tu peux utiliser une List(Of String) pour traiter tes lignes
    Oui exact je ne trouvais pas cette méthode merci
    pouvez vous me faire un exemple je débutes avec le vb.net
    merci beaucoup !!

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Pour apprendre il vaut mieux essayer par soit même, on retient mieux

    Voici ce que tu pourrais faire (avec les mot du langage à utiliser)
    'traitement
    pour chaque ligne lu dans le fichier - For Each - File.ReadAllLines.
    - si elle contient la chaîne de caractère - Contains.
    -- i+1.
    -- Ajoute la ligne dans la List(of string) en remplaçant la chaîne - Add - Replace - ToString - PadLeft.
    - sinon.
    -- ajoute la ligne - Add.
    sauvegarde - File.WriteAllLines.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'ai fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim lines As String() = System.IO.File.ReadAllLines("C:\Users\Admin\Desktop\mylist.txt")
     
            For i = 0 To lines.Length - 1
                lines(i) = lines(i).Replace("00000", i.ToString.PadLeft(5, "0"))
            Next
     
            System.IO.File.WriteAllLines("C:\Users\Admin\Desktop\mylist.txt", lines)
    Mais quand il y a la ligne Groupe 1 par exemple la numerotation saute une fois au lieu de 10, 11, 12... c'est 10, 12,13

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    C'est normal avec un for, il aurait fallut utiliser un while et incrémenter un compteur

    Voici la solution par rapport à mon post précédant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub btnModifieLigne_Click(sender As System.Object, e As System.EventArgs) Handles btnModifieLigne.Click
            Const KCHAINE As String = "00000" ' chaîne à rechercher
            Dim i As Integer = 0
            Dim ListeLignes As List(Of String) = New List(Of String) ' la nouvelle liste
            'traitement de chaque ligne du fichier
            For Each ligne As String In File.ReadAllLines("D:\data\fichiers\groupe.txt")
                If ligne.Contains(KCHAINE) Then i += 1
                ListeLignes.Add(ligne.Replace(KCHAINE, i.ToString.PadLeft(5, "0"))) ' formate et ajoute la ligne
            Next ligne
            'sauvegarde
            File.WriteAllLines("D:\data\fichiers\groupemodif.txt", ListeLignes)
        End Sub
    J'ai simplifié par rapport à l'algo, il suffit de tester la présence pour le compteur
    Mais tu peux corriger ta méthode pour obtenir le même résultat.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  9. #9
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Bonjour,


    Il me semble que c'est la méthode ReadAllLines.

    Et tu peux utiliser une List(Of String) pour traiter tes lignes
    Oui en effet, c'est corrigé, merci.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci infiniment !
    c'est ce qu'il me fallait

    encore merci de votre aide !

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

Discussions similaires

  1. [AC-2003] Graphique, remplacer nombres par texte
    Par Siegfried7 dans le forum IHM
    Réponses: 1
    Dernier message: 22/09/2009, 06h48
  2. remplace contenu fichier texte
    Par schumi101 dans le forum C
    Réponses: 20
    Dernier message: 23/06/2006, 15h49
  3. Réponses: 5
    Dernier message: 25/01/2005, 14h26
  4. [Fichier] Nombre de ligne dans un fichier texte
    Par NewSer dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2004, 16h58
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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