Aller à la dernière ligne d'un fichier texte et recherche une chaine de caractér

Résolu
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005 - 25 oct. 2005 à 14:14
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005 - 25 oct. 2005 à 15:09
Bonjour à tous,

Voila je suis un gros débutant en VB alors excusez mes questions qui peuvent sembler triviales à certains
Voila j'ai ouvert un fichier texte en lecture et je cherche à aller à la dernière ligne de celui ci et y rechercher ensuite la chaîne de caractère "défaut". Si la chaîne défaut est trouvée il faudra alors lancer une fonction.
Quelle est la manière la plus simple de faire ça ?

Quelqu'un m'a suggéré d'utiliser le fileobjectsystem et l'object textstream mais ceux ci ne sont pas présents sur VB 6.0 à moins que je me trompe...

Merci

A+

3 réponses

NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
25 oct. 2005 à 14:34
Essaye ce code :

Open fichier For Input As 1 'fichier : nom du fichier
Do While EOF(1) = False
Line Input #1, DernierLigne
Loop
Close 1

For i = 1 To Len(DernierLigne)
If Mid$(DernierLigne, 1, 6) = "défaut" Then
Call Fonction
Exit Sub 'si tu ne veux rien ajouter après
End If
Next i


N.B: Dans ce code "défaut" ne doit pas être orthographié "Défaut" ou "dÉfAut" par exmple
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 oct. 2005 à 14:44
salut,
[VB6]
tu lis tout le fichier dans une variable.
tu cherches le dernier retour chariot (donc début de la dernière ligne)
tu cherches la position de ton mot.
si la position est > 0, alors il existe.


Option Explicit
'
'
Private Sub Command1_Click()
Dim FF As Integer, sMonFichier As String, sDerniereLigne
FF = FreeFile

' reçoit fichier complet
Open "C:\truc.txt" For Input As #FF
sMonFichier = Input (LOF(FF), 1)
Close #FF

' retourne la dernière ligne
' ATTENTION, on cherche pas au 1er carac, car souvent fichier terminé par VbCrLf
' donc... ligne vide
sDerniereLigne = Right$(sMonFichier, Len(sMonFichier) - InStrRev(sMonFichier, vbCrLf, 2) - 1)

' cherche "défaut"
If InStr(1, sDerniereLigne, "défaut") > 0 Then
MsgBox "ouaip, trouvé", 32
Else
MsgBox "nan, y'a pas...", 32
End If
End Sub



<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


++
PCPT [AFCK]
0
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005
25 oct. 2005 à 15:09
Merci pour vos réponses aussi rapides :D

Je teste vos solutions tout de suite

A+
0
Rejoignez-nous