Petite gymnastique vb :)

Résolu
Signaler
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour,
je suis en train de créer un petit programme mais je "bug" sur une partie voilà mon problème : j'aimerais que quand je clic sur command1 l'application cherche dans le contenu d'un fichier txt un chaine de caractère si il trouve pas cette chaine alors il ne fait rien mais si il la trouve alors il garde en mémoire la ligne dans laquelle se trouve cette chaine de caractère et affiche dans une textbox le contenu de cette ligne et pour finir il faudrait lire le contenu de cette ligne après le séparateur ";"

un ligne ressemble à sa "Configuration1 =ok Visible=non ;
oui"

pour faire simple:
1formulaire
1boutton
1textbox

si clic sur boutton alors chercher dans fichier texte une chaine de caractère si chaine trouvée alors enregistrer dans la mémoire ou se trouve cette chaine (quelle ligne) lire la dîtes ligne et enfin lire le contenu de cette ligne après le séparateur ";"

vraiment j'arrive pas à finir mon application et sa me gène alors je demande de l'aide à la sainte communauté Vbfrance ;)

vraiment un gros merci d'avance
123

7 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

voilà :

Option Explicit
Private Sub ReadAllLines(ByVal sPath As String, ByRef aLines() As String)
Dim FF As Integer
Dim sBuffer As String
    FF = FreeFile
    On Error Resume Next
    Open sPath For Input As #FF
        sBuffer = Input(LOF(FF), #FF)
    Close #FF
    aLines = Split(sBuffer, vbNewLine)
End Sub

' exemple
d'utilisation
Private Sub Exemple()
Dim aMesLignes() As String, Dim MonMot() As String
Dim i As Long

    
    ReadAllLines "C:\chemin\tonfichier.txt", aMesLignes

    Me.Print (1 + UBound(aMesLignes)) & " lignes trouvées" & vbCrLf
    For i = LBound(aMesLignes) To UBound(aMesLignes)
        If Instr(1, aMesLignes(i), Text1.Text)
Then
            MonMot = Split(aMesLignes(i), ";")
            MsgBox MonMot(1)
            Exit For
        End If
    Next i
erase aMesLignes, erase MonMot
End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Voilà, ton exercice à rendre demain matin dernière limite est fait

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

je regarde sa si sa marche tu gère mon cher mortalino :)

123
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Bah, je gère.. disons que c'est pas compliqué. Regarde : un coup de Open ..for Input, 2 coups de Split, et un coup d'Instr  et voilà !

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

j'ai limpression que sa fonctionne bien :) MERCI

123
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

et par hasard tu sais pas comment faire pour vérifier si la chaine de caractère fais plus de 5-6 lettre ?

123
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Si, vois la fonciton Len, elle te renvoie le nombre de caractère de ta chaine

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA