Création de fichier pour débutant

tosu Messages postés 28 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 20 août 2004 - 20 juil. 2004 à 22:43
tosu Messages postés 28 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 20 août 2004 - 21 juil. 2004 à 22:24
Ma question est simple, est - il possible de créer un fichier texte (indexé) périodiquement en fonction par exemple de la date

ex:

le 11 oct 2002 00h01 create file text[001].txt (ou dat)
le 12 oct 2002 00h01 create file text[002].txt (ou dat)
le 13 oct 2002 00h01 create file text[003].txt (ou dat)

etc..

Si oui avec quel outil ou/et comment sous vb6 svp

est-ce réalisable?
thony

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 juil. 2004 à 23:03
Salut tosu
Oh le petit gaté ! il va avoir un code tout fait !
D'après ce que je vois, tu va créer un fichier pour chaque jour.
Je te conseil de lui donner un nom qui rappellera la date du fichier, ce sera plus pratique, en inversant l'ordre classique, en mettant l'année suivie du mois et du jour :
Text[2004-12-11].txt
Ceci permettra de les avoir dans l'ordre lorsque tu chercheras parmi les fichiers.

Dans ta forme, tu installes un objet Timer
Dans la propriété Interval du timer, tu mets 60000 (ms), soit 60 sec, et dans le code de Timer_Timer (double-clique sur le timer), tu mets ceci :
Dim NomFichier As String, ff As Integer
' Par défaut, on va créer le nom du fichier
MonFichier = App.Path & "\Text[" & Format(Now, "yyyy") & _
                     "-" & Format(Now, "mm") & "-" & _
                     Format(Now, "dd") & "].TXT"
' Ensuite, on va vérifier si c'est la bonne heure
If Format(Now, "hh:nn") = "00:01" Then
    ff = FreeFile
    Open NomFichier For Output As #ff
    ' Ecrit une donnée, histoire de dire
    Print #ff, Now   ' la date
    Close #ff   ' et referme
EndIf

Vala
Jack
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
20 juil. 2004 à 23:24
Salut, jack a raison mais si tu t'en tiens au format "text001.txt", tu peux mettre ça (toujours ds un timer avec l'interval = 60000 :

If Format(Now, "hh:nn") = "00:01" Then
Dim f As String
Dim cpt As Integer

f = Dir("c:\temp\text???.txt")

If f <> "" Then

Do
If CInt(Mid$(f, 5, 3)) > cpt Then
cpt = CInt(Mid$(f, 5, 3))
End If
MsgBox f
f = Dir
Loop While f <> ""

End If

cpt = cpt + 1

Open "c:\temp\text" & Format(cpt, "000" & ".txt") For Output As #1
Print #1, cpt ' là tu mets ce que tu veux
Close #1

endif

Cordialement

CanisLupus
0
tosu Messages postés 28 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 20 août 2004
20 juil. 2004 à 23:44
hé heu ho mais c'est génial ce site apeine inscrit et voilà des réponses qui pleuvent je vais tester tous cela si je peut vous aider je suis pas mal calé en interface PC à µP

@+ je m'enale les tester!!!
thony
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
21 juil. 2004 à 01:03
Bon, ok, c'est bien tout ça, mais ça nécéssite que le programme tourne tout le temps. Si ça te va tosu, alors c'est parfait.
Mais sinon, il y a moyen, en passant par les bases de registres, d'exécuter ce code une fois par jour, puis d'arreter l'application.
Si ça t'intèresses tosu, demande moi.
0

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

Posez votre question
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
21 juil. 2004 à 01:09
Ah, et puis, autre chose : votre truc crée le fichier à 00h01.
Imaginons que le programme soit démarrer à 00h02, et ben ça fait déjà sauter le premier jour.

On pourrait faire comme ça :

Private CreateToday As boolean

Private Sub Form_Load()

CreateToday = False

End Sub

Private Sub Timer_Time()

Dim NomFichier As String, ff As Integer

MonFichier = App.Path & "\Text[" & Format(Now, "yyyy") & _
"-" & Format(Now, "mm") & "-" & _
Format(Now, "dd") & "].TXT"
If Format(Now, "hh:nn") "00:01" Then createtoday False

If CreateToday = False Then
ff = FreeFile
Open NomFichier For Output As #ff

Print #ff, Now ' la date
Close #ff ' et referme

CreateToday = TRUE

EndIf

End sub

Voilà, ça permet d'éviter un bug... Mais bon, je chipote là aussi.
@+, Scalpweb
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
21 juil. 2004 à 18:39
On peut même éviter le timer en se servant du planificateur de tâches.

Cordialement

CanisLupus
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
21 juil. 2004 à 20:45
Oui, c'est une bonne idée...
0
tosu Messages postés 28 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 20 août 2004
21 juil. 2004 à 22:24
hello Jack,

ovilà j'ai testé le fichier mais j'ai une erreur (75), le problème est MonFichier = "" Qu'est ce à dire et alors oui aussi j'ai voulu créer le fichier directement dans c:\ en ajoutant "c:\ ou "c:" et cela me renvoie une erreur pourquoi??

thanks
thony
0
Rejoignez-nous