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 6 et antérieur Discussion :

Comment chercher un mot dans un fichier texte et le modifier?


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 22
    Points : 22
    Points
    22
    Par défaut Comment chercher un mot dans un fichier texte et le modifier?
    Bonjour,

    Avant de poster ma questtion j'ai cherché dans la FAQ VB et les tutoriels VB mais ce j'ai trouvé c'était toujours comment modifier un fichier en lui ajoutant une nouvelle information.
    Alors que ce que je désire moi c'est en fait chercher un mot dans un fichier texte associé à une procédure VB, par exemple chercher le mot "NomChamp1" et la changer par "Num_Etudiant" vu que je travaille sur un générateur de code je dois modifier certaines valeurs.
    J'ai vraiment besoin de votre aide le plutôt possible.

    Et merci d'avance.

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    On ne paut pas modifier une partie d'un fichier texte.
    On peut le charger dans une chaine de caractère, faire la modification dans cette chaine, supprimer l'ancien fichier et un recréer un nouveau avec la chaine modifiée.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  3. #3
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    c'est mon jour de bonté

    cocher la référence Microsoft Scripting Runtime

    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
    Private Const ForReading = 1
    Private Const ForWriting = 2
    Private Const ForAppending = 8
     
    Private Sub Form_Load()
    Dim FSO As FileSystemObject
    Dim TxtStream As TextStream
    Dim strTextFile As String
     
        Set FSO = New FileSystemObject
        Set TxtStream = FSO.OpenTextFile("c:\Test.txt", ForReading)
        strTextFile = TxtStream.ReadAll
        Set TxtStream = Nothing
        strTextFile = Replace(strTextFile, "NomChamp1", "Num_Etudiant")
        FSO.DeleteFile "c:\Test.txt", True
        Set TxtStream = FSO.CreateTextFile("c:\Test.txt")
        TxtStream.Write strTextFile
        Set TxtStream = Nothing
        Set FSO = Nothing
    End Sub
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Citation Envoyé par Ange_1987 Voir le message
    Bonjour,

    Alors que ce que je désire moi c'est en fait chercher un mot dans un fichier texte associé à une procédure VB, par exemple chercher le mot "NomChamp1" et la changer par "Num_Etudiant"
    Bonjour,

    Il ne semble s'agir ici que de transformer une chaîne dans un fichier ...

    Il suffit alors de le lire d'un seul trait et d'utiliser la fonction Replace.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Open "d:\essai.txt" For Input As #1
          present = Replace(Input(LOF(1), 1), "NomChamp1", "Num_Etudiant")
        Close #1
        Open "d:\essai.txt" For Output As #1
          Print #1, present
        Close #1

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Merci a vous tous.
    C'est bon j'ai trouvé comment faire pour modifier une valeur dans un fichier texte.
    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
    Dim iFile As Integer
    Dim sBuffer As String
    Dim nPos As Long
        FileCopy "C:\ ........txt", "C:\......txt"
        iFile = FreeFile
        Open "C:\.........txt" For Input As iFile
            sBuffer = Input(LOF(iFile), iFile)
        Close iFile
         nPos = InStr(sBuffer, "NomChamp1")
        If nPos Then
            sBuffer = Left$(sBuffer, nPos - 1) & "Num_Etudiant" & Mid$(sBuffer, nPos + 9)
            Open "C:\.........txt" For Output As iFile
                Print #iFile, sBuffer;
            Close iFile
        End If

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Tu ne crois pas que Replace est quand-même plus simple ?

  7. #7
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    ucfoutu, tu as raison sur le fond !

    Sur la forme, avec mon idée (qui n'est peu-être pas la meilleure) on peut faire toutes les requêtes de modification que l'on veut avant enregistrement de la chaine finale

    perso : salut ucfoutu
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par Ange_1987 Voir le message
    Merci a vous tous.
    C'est bon j'ai trouvé comment faire pour modifier une valeur dans un fichier texte.
    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
    Dim iFile As Integer
    Dim sBuffer As String
    Dim nPos As Long
        FileCopy "C:\ ........txt", "C:\......txt"
        iFile = FreeFile
        Open "C:\.........txt" For Input As iFile
            sBuffer = Input(LOF(iFile), iFile)
        Close iFile
         nPos = InStr(sBuffer, "NomChamp1")
        If nPos Then
            sBuffer = Left$(sBuffer, nPos - 1) & "Num_Etudiant" & Mid$(sBuffer, nPos + 9)
            Open "C:\.........txt" For Output As iFile
                Print #iFile, sBuffer;
            Close iFile
        End If
    là, pour le coup c'est une usine à gaz pour rien et ucfoutu à raison !
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Oui, vous avez parfaitement raison.
    C'est beaucoup plus simple aves Replace.
    Je vous remercie infiniment.

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

Discussions similaires

  1. Comment chercher une valeur dans un fichier text?
    Par lili81 dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/06/2008, 16h18
  2. Réponses: 10
    Dernier message: 29/04/2006, 10h40
  3. Réponses: 5
    Dernier message: 25/01/2005, 14h26
  4. Comment faire une insertion dans un fichier texte ?
    Par Isa31 dans le forum Langage
    Réponses: 10
    Dernier message: 28/12/2004, 09h06
  5. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42

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