PB urgent en tp de VB - Programmation
Marsh Posté le 27-11-2001 à 11:48:51
Explicite un peu +...
Ca plante où éxactement ?
Marsh Posté le 27-11-2001 à 12:09:13
je pense que si tu declares phrase ca devrait deja aller mieux
ptite astuce
dim toto,titi as string :
seul toto est string
titi est en fait un variant
Marsh Posté le 27-11-2001 à 20:45:36
Ton erreur est ...
nickola a écrit a écrit : Private Sub Visu_Click() Dim num, type1 As Integer Dim nom, comment, way As String If Tchoix.Text <> "" Then Open Tchoix.Text For Input As #1 While Not EOF(Tchoix.Text) <-là cptr = cptr + 1 If cptr > 3 Then cpt = cpt + 1 Line Input #1, phrase Call decortique(phrase, num, type1, nom, comment, way) <-ou là tabDec(cpt).numéro = num tabDec(cpt).name = nom tabDec(cpt).typ = type1 tabDec(cpt).com = comment tabDec(cpt).chem = way End If Wend Close #1 txtchoix.Text = "le nombre de traitmeent est de " + cpt End Sub voilà la procédure qui plante et lorsque je compile il me dit : Type d'argument byref incompatible. DES IDEES ??? C'est urgent |
Type d'argument byref incompatible signifie que tu doit passer un paramètre par adresse et que avec le param que tu donnes c'est pas possible, donc il faut que tu vois dans les procédures EOF et decortique laquelle a un paramètre qui doit passer byref.
Pour moi, c'est le EOF(TChoix.Text), essaiye de le remplacer par EOF(1), histoire de pas avoir utilisé open pour rien
[edtdd]--Message édité par ciler--[/edtdd]
Marsh Posté le 28-11-2001 à 12:48:18
Si on fait
Open Tchoix.Text For Input As #X, X étant le numéro de buffer,
le test de fin de fichier est
While Not EOF(X)
Quand on ouvre plus d'un fichier en même temps, il me semble qu'il existe une fonction qui retourne le numéro du buffer dispo, ça évite de jongler avec les #1, #2, #3 qui peuvent déja être utilisés dans un autre "coin" du programme (=> erreur).
Marsh Posté le 28-11-2001 à 12:49:43
Dim f as integer
f=FreeFile
Marsh Posté le 28-11-2001 à 15:08:48
Open Tchoix.Text For Input As #1
Je croyais que la commande open ouvrait un fichier séquentiel ! or une zone de texte n'est pas un fichier !
Qui peux m'expliquer ?
Marsh Posté le 27-11-2001 à 11:32:32
Private Sub Visu_Click()
Dim num, type1 As Integer
Dim nom, comment, way As String
If Tchoix.Text <> "" Then
Open Tchoix.Text For Input As #1
While Not EOF(Tchoix.Text)
cptr = cptr + 1
If cptr > 3 Then
cpt = cpt + 1
Line Input #1, phrase
Call decortique(phrase, num, type1, nom, comment, way)
tabDec(cpt).numéro = num
tabDec(cpt).name = nom
tabDec(cpt).typ = type1
tabDec(cpt).com = comment
tabDec(cpt).chem = way
End If
Wend
Close #1
txtchoix.Text = "le nombre de traitmeent est de " + cpt
End Sub
voilà la procédure qui plante et lorsque je compile il me dit :
Type d'argument byref incompatible.
DES IDEES ??? C'est urgent