Probleme VB6

lory -  
 lory -
bonjour forum,

j'ai plusieurs fichiers nommés comme suit:

fichier1,fichier2,............

je voudrais les ouvrir en méme temps, j'ai fait
for index=1 to ..
open "C:fichier&index.txt" for input as #1

mais a chaque fois j'ai le message fichier non trouvé

est ce vous avez une idée?
merci d'avance

32 réponses

  • 1
  • 2
Résumé de la discussion

Problème central: ouvrir en même temps plusieurs fichiers nommés fichier1.txt, fichier2.txt, etc., mais une boucle d’ouverture renvoie le message fichier non trouvé. Des réponses expliquent que le souci vient d’une mauvaise gestion des ouvertures, chemin ou concaténation incorrecte, ou d’ouverture en input et en output sur le même fichier. Des solutions visent à fusionner les contenus dans un fichier unique en lisant chaque fichier d’entrée et en écrivant dans le fichier de sortie, avec fermeture fiable des fichiers. En complément, il est recommandé d’éviter les ouvertures simultanées et d’ajouter une gestion d’erreurs et des tests d’ouverture.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Salut :o)

    bonjour forum Original ;o)

    Pour répondre à ta question, il faudrait que tu fasses:

    Open "C:\Fichier" & index & ".txt"
    


    Je pense que ça devrait marcher ...

    0
  2. Lory
     
    salut teebo

    pour vérifier si sa marche, j'ai ajouter

    Open "C:\Rfichier & index & ".txt" For Output As #2

    mé je ne vois pas de fichier rfichier dans C

    vous avez une idée?
    0
  3. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Tu as mal recopié ce que j'ai mis, j'ai mis fichier et non pas Rfichier et il manque des " .

    Qui plus est j'ai supposé que les fichiers fichier1 fichier2 ,... .txt existaient sur C:\ puisque c'est là que tu cherchais à les ouvrir...
    0
  4. lory
     
    Re

    non j'ai pas mal recopié

    il ouvre seulement le premier fichier et il affiche une erreur fichier deja ouvert
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Tu refermes bien les fichiers aussi?

    0
  7. lory
     
    Re

    oui j'ai fait close#2 mais ca ne marche pas
    0
  8. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Bon si tu me mettais tout ton code et si tu me disais ce que tu avais comme fichiers sur C:\ ?
    0
  9. lory
     
    Re
    private sub commmand1_click()
    Dim y1 as double
    Dim index as integer

    for index = 1 To 500
    Open "C:\Fichier" & index & ".txt" For Input As #1

    Open "C:\RFichier" & index & ".txt" For Output As #2

    Do While Not EOF(1)

    Line Input #1, Y1

    Write #2, Y1

    Loop
    Next index
    Close#2

    end Sub

    j'ai au niveau de C des fichiers de nom "Fichier1, fichier2,....
    0
  10. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Tu ne peux pas ouvrir deux fois le même fichier 8-)
    0
  11. lory
     
    re

    a chaque index il ouvre le fichier correspodant

    j'ai pas vu ce que vous dites; est ce que vous pouvez m'expliquer?
    0
  12. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Open "C:\Fichier" & index & ".txt" For Input As #1

    Open "C:\RFichier" & index & ".txt" For Output As #2

    Tu ouvres le fichier fichier1.txt deux fois, une fois en input une fois en output...

    Normal que ça plante :o)
    0
  13. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Hello lory,

    Si je pige bien, tu veux fusionner en un seul fichier tes fichiers 1,2,etc.
    Est-ce que ça ne serait pas quelque chose comme ça :
    Private Sub commmand1_click()
    
      Dim y1
      Dim index As Integer
      
      Open "C:\RFichier1.txt" For Output As #2
      For index = 1 To 500
        Open "C:\Fichier" & index & ".txt" For Input As #1
        Do While Not EOF(1)
          Line Input #1, y1
          Write #2, y1
        Loop
        Close #1
      Next index
      Close #2
    
    End Sub
    0
  14. lory
     
    Re

    le Open "C:\Fichier" & index & ".txt" For Input As #1

    c'est pour ouvrir le fichier qui a les donnée et le

    Open "C:\RFichier" & index & ".txt" For Output As #2
    c'est por crée un fichier de non RFichier ou on met les donnée du premier fichier
    0
    1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      Oui pardon j'ai mélangé avec python (je crois,...)

      Armojax a raison par contre...
      0
  15. lory
     
    Re

    armojax, je veux pas fusionner mes fichiers.

    je vais vous expliquer:

    j'ai plusieurs fichier nommée fichier1, fichier2,.....

    le programme que j'ai fait traite seulement un fichier et mettre le resultat dans RFichier; jusqu'a la ca va.

    puissque mes fichiers se différent par les indexs, je voudrais que le programme traite tous les fichiers en meme temps
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      Re, lory

      Ce que j'avais cru comprendre, c'est que tu voulais lire, dans une même macro, Fichier1 et le copier dans Rfichier, puis lire Fichier2 et l'écrire à la suite dans Rfichier, et ainsi de suite jusqu'à FichierN, pour avoir dans Rfichier tous les fichiers mis bout à bout.
      Hébé si c'est pas ça, remets une couche d'explications, je pige pas...
      0
  16. lory
     
    non c'est pas ce que vous avez crue.

    ce que je veux c'est:

    j'ouvre le fichier1 et le met dans RFichier1, Fichier2 dans Rfichier2,........., fichierN dans RfichierN
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      OK, pigé.
      Dans ce cas, réintègre à l'intérieur de la boucle l'Open et le Close de #2, couplés avec ceux de #1.
      0
    2. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      Tu ne peux pas faire une copie du fichier directement ? 8-)

      Bon, tu n'as pas un éditeur de texte d'ouvert sur un des fichiers en plus?
      0
  17. lory
     
    armojax

    c'est ce aue je faisait, mais tjrs l'erreurs fichier deja ouvert persiste
    0
  18. lory
     
    merci teebo, armojax et forum j'ai regler l'erreur
    0
  19. lory
     
    bonjour forum,

    j'ai un petit soucis sur mon programme car s'il trouve pas le premier fichier , j'ai un message d'erreur
    est ce que quelqu'un a une idée comme quoi que s'il trouve pas le premier fichier, il exécute les autres
    merci

    Private Sub commmand1_click()

    Dim y1
    Dim index As Integer
    For index = 1 To 500

    Open "C:\Fichier" & index & ".txt" For Input As #1
    Open "C:\RFichier"&index&".txt" For Output As #2
    Do While Not EOF(1)
    Line Input #1, y1
    Write #2, y1
    Loop
    Close #1
    Next index
    Close #2

    End Sub
    0
    1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      Private Sub commmand1_click()
      OnError resume prochain

      Dim y1
      Dim index As Integer
      index=1
      While index<501
      Open "C:\Fichier" & index & ".txt" For Input As #1
      Open "C:\RFichier"&index&".txt" For Output As #2
      Do While Not EOF(1)
      Line Input #1, y1
      Write #2, y1
      Loop
      Close #1
      Next index
      Close #2
      :prochain
      index=index+1
      End Sub

      Bon j'ai pas compilé donc y'a peut être des ajustements à faire mais l'idée est là...Tu pourrais aussi placer le :prochain devant la fermeture des fichiers mais tu risque de reavoir une erreur si le fichier n'est pas ouvert, ou alors il faut tester l'ouverture du fichier avant de les fermer...
      0
  20. lory
     
    Re

    ca ne marche pas, a chaque fois qu'il ne trouve pas le premier fichier
    0
  • 1
  • 2