Chgt de pages... qui n'en sont pas et c'est la panique
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010
-
20 mars 2004 à 03:08
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010
-
22 mars 2004 à 16:48
Slt à tous,
Je suis en train de me casser les dents sur un bleme que je n'arriva pas à résoudre, même aprsè de grosses recherches sur le forum:
En résumé:
J'ai 1 fichier TXT d'où j'extrais des données. Bon d'accord pour l'instant rien d'extra !
Chaque donnée est mise dans un tableau "fabriqué" avec des textbox (7 colonnes * 16 lignes).
Le blème c'est que mon fichier a un nombre de lignes variable (qui correspondent aux nb de ligne de mon pseudo tableau)
Je voudrais pouvoir passer d'une "feuille" à l'autre (aller et/ou retour) genre page suivante / page précédente.
Ci-dessous code de ma SUB, créée avec mes moyen de débutant et beaucoup d'infos trouvées ici. Mais y a certainement plus pro!
Private Sub cmdToto_Click()
Dim dossard As String * 14
Dim note1 As String * 14
Dim note2 As String * 14
Dim note3 As String * 14
Dim note4 As String * 14
Dim note5 As String * 14
Dim note6 As String * 14
Dim total As String * 14
Dim Num As Integer
Dim NbLigne As Integer
Dim NbCases As Integer
Dim ChoixCase As Integer
Dim nextline As String
canal = FreeFile
Open Fichier$ For Input As #canal
Do Until EOF(canal)
Line Input #canal, nextline
NbLigne = NbLigne + 1 'compte le nombre de lignes du fichier
Loop
Close canal
Start = 1 'Octet de lecture du départ
Numfich = FreeFile
Open Fichier$ For Binary As #Numfich
debut:
For L = 1 To NbLigne
For j = 0 To NbCases
Select Case j
Case 0
Get #Numfich, Start, dossard
noteX = dossard
Case 1
Get #Numfich, Start, note1
noteX = note1
Case 2
Get #Numfich, Start, note2
noteX = note2
Case 3
Get #Numfich, Start, note3
noteX = note3
Case 4
Get #Numfich, Start, note4
noteX = note4
Case 5
Get #Numfich, Start, note5
noteX = note5
Case 6
Get #Numfich, Start, note6
noteX = note6
Case 7
Get #Numfich, Start, total
noteX = total
End Select
x = x + Len(noteX) 'longueur du champ
'Recherche des caractères significatifs
For I = 1 To x If Asc(Mid(noteX, I, 1)) 32 Or Asc(Mid(noteX, I, 1)) 13 Then
K = Left(noteX, I - 1)
Exit For
End If
Next I
Text1(ChoixCase) = K 'Ecriture des caractères significatifs dans la bonne case
ChoixCase = ChoixCase + 1
'Tentative d'essai si la 128 eme et dernière case est écrite
If ChoixCase = 128 Then
GoTo Continue
Else
GoTo Suite
End If
Continue:
For continuer = 0 To 127
Text1(continuer) = ""
Next continuer
ChoixCase = 0
Suite:
'Si première ligne remplie recherche du champ suivant dans le TXT
If j < 7 Then
Start = Start + 14
Else
Start = Start + I + 1 ' Nouveau start pour attaquer la ligne suivante
End If
Next j
Next L
Fin:
Close #Numfich
End Sub
Ouais, je serais un Pro du VB6 dans 10/15 ans
;)
A voir également:
Chgt de pages... qui n'en sont pas et c'est la panique
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 22 mars 2004 à 14:17
Bonjour
Je suggère :
Type Bidule
dossard As String * 14
note1 As String * 14
note2 As String * 14
note3 As String * 14
note4 As String * 14
note5 As String * 14
note6 As String * 14
total As String * 14
End Type
puis un fichier à accès direct :
Fichier$ = "D:\Compétitions\PROGRAMMES\vb_prog_compet\test1.txt"
canal = FreeFileOpen Fichier$ For Random As #canal Len 112 ' 8 x 14
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010 22 mars 2004 à 16:48
Merci rene38
Mais là, d'un coup je me sens vieux, très vieux! et ce n'est pas dans 10/15 que je serais un pro du VB6 mais dans 100 ans!
Je vais triturer ta solution, mais j'avoue que je n'y pige rien, mais rien du tout.
Po grave! Jusqu'ici, j'ai tout appris en parcourant les forum et avec l'aide de personnes comme toi. Je vais donc aller me documenter sur ta réponse car je ne sais pas comment traiter tout cela.
Encore merci, mais si tu as des eclaircissement... n'hésite pas