Chgt de pages... qui n'en sont pas et c'est la panique

cs_rocknroll2 Messages postés 100 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 22 janvier 2010 - 20 mars 2004 à 03:08
cs_rocknroll2 Messages postés 100 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 22 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

NbCases = 7
ChoixCase = 0
Fichier$ = "D:\Compétitions\PROGRAMMES\vb_prog_compet\test1.txt"

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
;)

2 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
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
0
cs_rocknroll2 Messages postés 100 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 22 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

bye

Ouais, je serais un Pro du VB6 dans 10/15 ans
;)
0
Rejoignez-nous