Lecture fichier [Résolu]

Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
- - Dernière réponse : cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
- 30 août 2006 à 12:25
bonjour a tous !

voila je vous explique mon souci :
je lit un fichier txt dont la structure est la suivante :

blabla
blabla

blabla

[Adresse IP]
192.168.0.1

blabla
blabl

je souhaiterai juste afficher dans un label l'adresse IP 192.168.0.1

mon code pour l'instant :

    numFic = FreeFile
    nomFichier = "C:\test.txt"

    Open nomFichier For Input Shared As #numFic
   
    trouve = False
   
    Do While Not EOF(numFic)
        Input #numFic, Valeur
        If trouve = True Then
            Label2.Caption = Valeur
            trouve = False
        End If
        If (InStr(Valeur, "[Adresse IP]")) Then
            trouve = True
        End If
    Loop

A l'affichage j'obtient dans label2 : 0

merci de votre aide !
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
3
Merci
A la place de Input ..., essaye plutot Line Input #numFic, Valeur

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_casy
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
0
Merci
yes thanks !

pour info : quelle est la différence ?
Commenter la réponse de cs_putch
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
La différence c'est que Input lit dans ton fichier jusqu'à remplir la ou les variables que tu a indiqué. Si tu passe une chaine de caractères de taille 60000, Input lira 60000 caractères dans le fichier sans distinction quant à la signification des caractères.

Alors que Line Input lit une ligne, càd lit jusqu'à rencontrer le caractère RetourChariot ou le couple de caractère Sautdeligne/Retourchariot, ces caractères étant exclus de la chaine retournée.
Avec Line Input, tu lis un fichier ligne par ligne. Ce qui me semble plus correspondre à ton traitement

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
24
0
Merci
salut,

Option Explicit 

Private Sub Form_Load() 
    Dim numFic As Integer 
    Dim nomFichier As String 
    Dim sBuffer As String 
    Dim aLines() As String 
    Dim i As Long 

    numFic =  FreeFile 
    nomFichier = "C:\test.txt" 

    Open nomFichier For Input As #numFic 
        sBuffer =  Input (LOF(numFic), #numFic) 
    Close #numFic 

    aLines  = Split(sBuffer, vbCrLf) 

    For i =  0 To  UBound (aLines) 
        If aLines(i)  = "[Adresse IP]" Then 
            Label2.Caption =  aLines(i + 1) 
            Exit For 
        End If 
    Next i 

    Erase aLines 
    sBuffer = vbNullString 
End Sub

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

++
PCPT   [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Commenter la réponse de PCPT
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
 Bonjour,

Je viens de testé cette possibilité:

Option Explicit
Dim Fso, Path, Fichier, Fic_Entree
Dim i, strtmpConst ForReading 1, ForWriting 2, ForAppending = 8


Path   = "d:"
Fichier  = "test1.txt"


Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fic_Entree = Fso.OpenTextFile(Path & Fichier, 1, False)


Do While Not Fic_Entree.AtEndOfStream


   strtmp = Split(Fic_Entree.ReadAll, vbCrLf)   'création tableau du fichier


   For i = 0 to Ubound(strtmp)
'      MsgBox strtmp(i)
       If strtmp(i) = "[Adresse IP]" Then MsgBox strtmp(i+1)
   Next
Loop


Call Fic_Entree.Close
 
Set Fic_Entree = Nothing
Set Fso = Nothing
MsgBox "Script terminé"

jean-marc
Commenter la réponse de cs_JMO