felina1
Messages postés15Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention24 septembre 2006
-
7 août 2006 à 22:53
sifflet_
Messages postés70Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention 2 mai 2007
-
10 août 2006 à 08:37
Voici mon code grace auquel le résultat du nombre de lettres contenues dans le fichier indiqué s'affiche d'un seul coup dans la zone liste. Je voudrais que le résultat s'affiche au fur et à mesure du traitement du fichier, et voir les chiffres évoluer.
Je pense à la fonction timer mais je ne sais où la placer dans mon code.
Pouvez-vous m'aider?
Function Compter(ByVal Fichier As String, ByVal Text As String) As Integer
Dim m As String
Dim Cpt As Integer
Dim n As Integer
Dim x As Integer
Cpt = 0
n = FreeFile
Open Fichier For Input As #n
Do While Not EOF(n)
Line Input #n, m
x = InStr(m, Text)
Do While Not x = 0
Cpt = Cpt + 1
x = InStr(x + 1, m, Text)
Loop
Loop
Close n
Compter = Cpt
End Function
Private Sub Traiter1_Click()
Dim Source As Integer
Dim i As Integer
Dim Ch As String
Source = FreeFile
Ch = Text1.Text
Open Ch For Input As #Source
For i = Asc("a") To Asc("z")
List1.AddItem " " & Chr$(i) & vbTab & Compter(Text1.Text, Chr$(i))
Next i
Close #Source
End Sub
felina1
Messages postés15Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention24 septembre 2006 8 août 2006 à 11:57
J'ai essayé mais mon vb6 ne prend pas en compte tickcount (environment.tickcont). J'ai fais une recherche dans l'aide de mon vb et il n'existe pas pour lui.
sifflet_
Messages postés70Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention 2 mai 2007 8 août 2006 à 14:02
Tu as visual basic ou tu fais depuis une application genre Excel ou Access (=> VBA)
Pour access, dans les proritiés de la form tu as timer interval, mets ce que tu veux exemple 200 pour 200 ms = 0.2sec
Et après dans les Evenements tu dois avoir "on timer" tu clique sur les
"..." et tu choisi le générateur de code et tu obtiens un truc du genre:
Private Sub Form_Timer()
End Sub
Après à toi de mettre ce que tu veux dedans. Tu peux éventuellement
déclarer une variable globale que t'incrémente à chaque passage dans la
procedure Form_Timer() et tu fais un case:
'Variable globale en dehors (à mettre tout en haut)
Dim intTemp as Integer
Private Sub Form_Timer()
intTemp = intTemp + 1
Select Case intTemp
Case 1:
<ton 1er code>
Case 2:
<la suite>
Case ...
Case Else
intTemp = 0
End Select
End Sub
Le autres corrigez-moi si c'est faux, je ne suis pas sûr à 100%
sifflet_
Messages postés70Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention 2 mai 2007 9 août 2006 à 07:39
Salut!
Tu presses F1 (= L'aide) sur select ou case et tu auras la réponse !
Partout où tu as un champ que tu sais pas à quoi il sert, clique dedans
et presse F1 et ta lanterne sera éclairée ! Je te remets le même code
que ci dessus, mais fait avec des IF, si tu préfères:
'Variable globale en dehors (à mettre tout en haut)
Dim intTemp as Integer
Private Sub Form_Timer()
intTemp = intTemp + 1
If (intTemp = 1) Then
<ton 1er code>
ElseIf (intTemp = 2) Then
<la suite>
felina1
Messages postés15Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention24 septembre 2006 9 août 2006 à 13:21
Voici mon code:
Option Explicit
Private Sub Text1_Change()
If Text1.Text = " " Then
Traiter1.Enabled = False
Else
Traiter1.Enabled = True
If Text1.Text = " " Then
Traiter2.Enabled = False
Else
Traiter2.Enabled = True
End If
End If
End Sub
Function Compter(ByVal Fichier As String, ByVal Text As String) As Integer
Dim m As String
Dim Cpt As Integer
Dim n As Integer
Dim x As Integer
Cpt = 0
n = FreeFile
Open Fichier For Input As #n
Do While Not EOF(n)
Line Input #n, m
x = InStr(m, Text)
Do While Not x = 0
Cpt = Cpt + 1
x = InStr(x + 1, m, Text)
Loop
Loop
Close n
Compter = Cpt
End Function
Private Sub Traiter1_Click()
Dim Source As Integer
Dim i As Integer
Dim Ch As String
Source = FreeFile
Ch = Text1.Text
Open Ch For Input As #Source
For i = Asc("a") To Asc("z")
List1.AddItem " " & Chr$(i) & vbTab & Compter(Text1.Text, Chr$(i))
Next i
Close #Source
End Sub
Cela donne ceci:
Cela affiche le nombre de lettres contenues dans le fichier indiqué. Mais je voudrais que le compteur de lettre s'actualise au fur et à mesure qu'il en trouve une.
Le top serait que je l'agrémente avec une progressbar.
Voilà, j'espère que je me suis bien expliquée.
Merci encore pour ton aide.