PB urgent en tp de VB

PB urgent en tp de VB - Programmation

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

Reply

Marsh Posté le 27-11-2001 à 11:32:32   

Reply

Marsh Posté le 27-11-2001 à 11:48:51    

Explicite un peu +...
Ca plante où éxactement ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

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

Reply

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]


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

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

Reply

Marsh Posté le 28-11-2001 à 12:49:43    

Dim f as integer
f=FreeFile
 
:bic:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

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 ?


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed