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 :

Ouverture de fichiers


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 149
    Points : 93
    Points
    93
    Par défaut Ouverture de fichiers
    Bonsoir à tous,

    J'essaye en ce moment de lister les fichiers d'un répertoire, puis de modifier chaque fichier. J'ai regardé la FAQ Vb et j'ai donc fait comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim rep As String
    'obtient le premier fichier ou répertoire qui est dans "c:\"
    rep = Dir("*.txt", vbDirectory)
    'boucle tant que le répertoire n'a pas été entièrement parcouru
    Do While (rep & lt > "")
     
    Open "entree.txt" For Input As #1
     
    Loop
    End Sub
    Voilà mon code est très simple : j'essaye d'ouvrir tous les fichiers .txt.
    Mais avec ce code, il m'indique : fichier déjà ouvert.

    Quelqu'un peut-il m'aider?

    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonsoir,(plutôt Bonne nuit)
    Pour lister tous les fichiers txt d'un réperoire, place d'abord 2 ListBox et un CommandButton sur ta Form
    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
     
    Private Sub Command1_Click()
    Dim rep As String, lt 'obtient le premier fichier ou répertoire qui est dans "c:\"
    List1.Clear
    List2.Clear
    rep = Dir("c:\*.txt", vbDirectory)
    'boucle tant que le répertoire n'a pas été entièrement parcouru
    Do While (rep & lt > "")
    'teste si c'est un fichier ou un répertoire
    If (GetAttr("c:\" & rep) And vbDirectory) = vbDirectory Then
    List1.AddItem rep
    Else
    List2.AddItem rep
    End If
    'passe à l'élément suivant
    rep = Dir
    Loop
    End Sub
    Ensuite avec le nom de fichiers et répertoire, tu peux faire ton code d'ouverture(un fichier à la fois) dans un TextBox(Multiligne) pour visionner le fichier et le modifier.
    Si tu ne parviens pas à faire ce code, post et demain je le préparerai.
    jpleroisse

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 149
    Points : 93
    Points
    93
    Par défaut
    Bonjour leroissejp et merci pour ta réponse si tardive,

    Suis-je obliger d'utiliser un form pour faire cette recherche : idéalement, le programme VB serait sans feuilles.
    Est-ce possible en réadaptant mon code?

    Merc d'avance.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par joquetino
    Bonjour leroissejp et merci pour ta réponse si tardive,

    Suis-je obliger d'utiliser un form pour faire cette recherche : idéalement, le programme VB serait sans feuilles.
    Est-ce possible en réadaptant mon code?

    Merc d'avance.
    ... ote moi d'un doute ton code n'est pas complet ... aprés le open tu fais bien .. un close ( aprés modif du fichier ou autre chose..) ?

    .. Ton probléme c'est la fonction Dir .. celle-ci semble "re-initialissé" .. si tu modifie un fichier de la liste ...

    il me semble que j'ai déjà donné une réponse à un probléme similaire sur ce forum ..
    - tout d'abords grâce à la fonction dir tu stocke les noms de fichiers à traiter dans une variable Tableau ...
    - Ensuite tu traite tous les éléments du dit tableau ..;
    voilà...

    PS : je fais une recherche rapide sur le forum voir si je retrouve le post ...
    .. tiens j'ai trouvé et adapté un peu de code :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    '
    '  Procédure File list permet "remplir" un tableau de String
    ' avec les noms de fichiers 
    '
    Sub FileList(tabFichier() As String, rep As String, filtre as string )
     Dim st As String
     Dim i As Integer
     st = Dir(rep & filtre )
     
     i = 0
     While st <> ""
        ReDim Preserve tabFichier(i)
        tabFichier(i) = st
        st = Dir
        i = i + 1
     Wend
    End Sub
     
    Sub Lst()
    Dim tabFic() As String
    Dim st As Variant
    Dim stRep As String
     
    stRep = "c:\" ' Répertoire
     
    FileList tabFic(), stRep , "*.*"
     
    For Each st In tabFic
        Debug.Print "Traite fichier : " & stRep & st
     
    Next
     
    End Sub

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Hello les hiboux qui vivent la nuit!
    Avec la fonction "Open", tu ouvres "virtuellement" les fichiers, pour les lire, ou pour écrire dedans avec VB(A). Si tu veux les visualiser, tu dois utiliser Notepad, par exemple.
    Donc, au lieu de Open dans ta boucle (qui te donne une erreur parce que tu veux ouvrir tous tes fichiers sous le même identifiant "#1"), appelle un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Shell("Notepad.exe LeRepertoireEtLeNomCompletDuFichierTexte")
    Pour la syntaxe, je ne suis pas sûr, mais un F1 te donnera ça.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 149
    Points : 93
    Points
    93
    Par défaut
    Ok merci bcp. Je testerai ça ce soir devant mon pc.

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

Discussions similaires

  1. ouverture de fichier txt
    Par juguul dans le forum MFC
    Réponses: 11
    Dernier message: 18/12/2003, 09h44
  2. Ouverture de fichier en api
    Par Michaël dans le forum Windows
    Réponses: 9
    Dernier message: 10/12/2003, 16h47
  3. Ouverture de fichier
    Par Ricou.13 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/10/2003, 08h59
  4. Réponses: 2
    Dernier message: 26/02/2003, 15h18
  5. [VBA-E] Evenement ouverture de fichier
    Par gjeff dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2002, 09h42

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