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
A voir également:

32 réponses

lory
 
j'ai un autre probléme

si le nombre de fichier est inférieur a index(while index<501), il m'affiche une erreur comme

t'as pas une idée
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Whle index<501 AND Fichier+index existe), tu dois avoir le moyen de faire ça, je ne sais plus bien comment mais il y a forcément un moyen...
0
lory
 
donc il faut tester l'existance du fichier?
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
C'est plus propre et ça évite ce genre de problèmes :o)
0
lory
 
daccord, je vais chercher
0
lory
 
salut Teebo

est t'il pas plus facile d'automatiser ces opérations en récupérant l'argument de la ligne de commande dans une variable Command$
Si l'on lance
MonProg toto.log
dans MonProg, la variable Command$ contiendra "toto.log".
cela permettra de traiter tous les fichier.log se trouvant dans le répertoir
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Je n'ai pas saisi...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lory
 
Re

je voudrais dire creer un exécutable qui porte le nom parexemple
(exo)
exo fichier1.txt
exo fichier2.txt
....................
....................

à chaque fichier on recupére son argument et puis exécuté

comme en C main(arg1,arg2)
0
lory
 
Re

Autrement dit je voudrais automatisé l'exécution cad faire un programme pour un fichier et l'appliquer sur plusieurs fichier
0
Armojax Messages postés 1860 Date d'inscription   Statut Membre Dernière intervention   1 528
 
Hello lory,

Après quelques jours d'éclipse... as-tu résolu ton PB ?
En fait, ce que tu veux, c'est copier tous les fichiers textes de "C:" qui s'appellent FichierN, et que les copies s'appellent RfichierN.

Essaie cette petite chose ci-dessous :
Sub ManieFic()
    
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set Dossier = Fso.GetFolder("C:\")
    Set Fichiers = Dossier.Files

    For Each fic In Fichiers
        If Left(fic.Name, 7) = "Fichier" _
        And Right(fic.Name, 4) = ".txt" Then
        index = Mid(fic.Name, 8, 1)
            Fso.CopyFile fic, "C:\Rfichier" & index & ".txt"
       End If
    Next
        
End Sub
Tous tes fichiers de C: correspondant au critère de nom sont copiés en RFichier...
0
lory
 
bonjour Armojax et forum

Non j'ai pas encore régler le probléme; mais je crois que le programme que tu m'as proposé reglera le probléme

mais est ce que à la place de

Fso.CopyFile fic, "C:\Rfichier" & index & ".txt"

on peut mettre


Fso.openFile fic, "C:\Rfichier" & index & ".txt" for input as #1
Fso.openFile fic, "C:\Rfichier" & index & ".txt" for output as #2

dans tous les cas je vais tester.

merci pour ton aide
0
lory
 
re

apparament il n'accepte pas for input et for output
0
Armojax Messages postés 1860 Date d'inscription   Statut Membre Dernière intervention   1 528
 
Lory,

Exécute la macro telle que je te l'ai indiquée, sans rien changer.
0
lory
 
Re

oui ca marche ton programme mais je voudrais l'adapter a ce que j'ai commencé.c'est pourquoi je t'ai poser la question du fso.open


Private sub command1_click()
Dim nligne As Integer
Dim ndata As Integer
Dim cp As Integer
Dim moyenne1 As Double
Dim moyenne2 As Double
Dim moyenne1() As Double
ReDim moyenne1(1 To N)
Dim moyenne2() As Double
ReDim moyenne2(1 To N)
Dim tab1(1 To 100) As Double
Dim tab2(1 To 100) As Double
Dim var1, var2, v1, v2, var3, var4 As Double
Dim i As Integer
Dim ligne As String

N = Cint(Text1.Text)
'Ouverture Fichier Source et Destination
On Error GoTo Suite

Open "C:Fichier.txt" For Input As #1
Open "C:toto.txt" For Output As #2

'Copie des 100 premiers lignes
ndata = 1

Do While ((Not EOF(1)) And (ndata <= 101))

If (ndata = 1) Then
'Line Input #1, v1
Input #1, v1
Write #2, v1
ndata = ndata + 1

Else

Input #1, v1, v2
Tab1(ndata) = v1
Tab2(ndata) = v2
Write #2, tab1(ndata), tab2(ndata)

ndata = ndata + 1
End If

Loop

nligne = Cint(Text1.Text)
cp = ndata

'Copie par groupe de N valeurs
' Puis calcul moyenne
Do While (Not EOF(1))


cp = cp + nligne
i = 1
Do While ((Not EOF(1)) And (ndata < cp))

Input #1, var1, var2, var3, var4
Moyenne1(i) = var1
Moyenne2(i) = var2

ndata = ndata + 1
i = i + 1
Loop


Moyenne1 = 0
Moyenne2 = 0


For i = 1 To Cint(Text1.Text)
Moyenne1 = moyenne1+ moyenne1(i)
Moyenne2 = moyenne2 + moyenne2(i)
Next i

Moyenne1 = (moyenne1 / Cint(Text1.Text))
Moyenne2 = (moyenne2 / Cint(Text1.Text))


Write #2, moyenne1, moyenne2

Loop

Close #1
Close #2

Suite:
End Sub

Private Sub Text1_Change()
If Text1.Text <> "" Then
Text1.Text = Cint(Text1.Text)
End If

End Sub
0
lory
 
re

il faut remplacé

Open "C:Fichier.txt" For Input As #1
Open "C:toto.txt" For Output As #2

par

Open "C:\Fichier" & index & ".txt" For Input As #1
Open "C:\Rfichier" & index & ".txt" For Output As #2
0
lory
 
Bonjour forum

j'ai pas encore régler mon probléme

est ce que quelqu'un a une idée svp

merci
0