Compréhension de code

damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 - 19 avril 2005 à 11:59
pastis51forever Messages postés 172 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 8 septembre 2006 - 19 avril 2005 à 15:12
Bonjour à tous,

je travaille actuellement sur un projet et je dois retravailler un morceau de code.seulement ya une ligne que je narrive pas a comprendre (je débute en VB)

Voici la ligne qui me pose pb :

eda_err = eda_get_one_float(Node, Tagname, Field, FValue)

Si quelqu'un sait à quoi sert cette ligne........

Merci d'avance.++

8 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 avril 2005 à 12:05
c'est l'appel d'une fonction qui concerne un Treeview apparemment,
mais faudrait mettre le code de la fonction.

Daniel
0
damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 1
19 avril 2005 à 13:37
ok . voila l'ensemble du code (g mis les lignes que je ne comprends pas en rouge) :

Node = "FIX"
Field = "F"
Tagname = "INDICATEUR"
eda_err = eda_get_one_float(Node, Tagname, Field, FValue)
IndicateurHC.Text = FiltrageChaine(Str$(FValue))
DoEvents

La fonction :

Function FiltrageChaine(ChaineDepart As String) As String


Dim tmp As String
Dim i As Integer

On Error GoTo Erreur

tmp = ""
For i = 1 To Len(ChaineDepart)
If Mid$(ChaineDepart, i, 1) <> " " Then tmp = tmp & Mid$(ChaineDepart, i, 1)
Next i


FiltrageChaine = tmp

Exit Function

Erreur:
FiltrageChaine = ChaineDepart

End Function
0
damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 1
19 avril 2005 à 13:41
et concernant la declaration de la fonction il y a juste ca :

Declare Function eda_get_one_float% Lib "vdba.dll" (ByVal n$, ByVal t$, ByVal f$, V!)

Je sui pomé là, SOS
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 avril 2005 à 14:07
c'est une fonction externe "vdba.dll"
étant donné que j'ai pas vba, je connais pas.
tout ce que je peux dire c'est que c'est fait pour aller une valeur réelle "V!", en fonction de trois paramètres Node, Field et Tagname
cette fonction doit renvoyer un Integer comme le laisse suggérer le % qui doit surement être un code d'erreur:

ça devrait être équivalent à ça:

Declare Function eda_get_one_float Lib "vdba.dll" (ByVal n$, ByVal t$, ByVal f$, V!) As Integer

donc la valeur reçue (si pas d'erreur) qui est ici FValue doit être définie en réelle (Sigle ou double).
ensuite elle est convertie en chaîne avec Str$() ce qui a pour désavantage de mettre un espace devant, d'où l'utilité de FiltrageChaine.
mais est-ce vraiment utile puisqu'il existe CStr() qui ne met pas d'espace devant, à moins qu'il y ait des espaces à l'intérieur du réel, non impossible il y aurait plantage à la conversion !
donc si tu peux remplace Str$() par CStr() et supprime FiltrageChaine()

tout ce que je peux te dire.

Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 1
19 avril 2005 à 14:15
ok. je comprends déjà mieu tout ca. j'ai regardé pour Str$() et
CStr() . jvai déjà commencé par supprimer FiltrageChaine() comme tu l'as suggéré, ca va simplifier les choses ...

Merci pour ton aide Daniel. bonne journée . ++
0
damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 1
19 avril 2005 à 14:20
FValue est bien définie en réelle :
Global FValue As Single

Donc si g bien compris je remplace :
IndicateurHC.Text = FiltrageChaine(Str$(FValue))
par :
IndicateurHC.Text = CStr$(FValue)

et jobtiens la meme chose et ca permet de virer le FiltrageChaine
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 avril 2005 à 14:25
voila c'est ça, ça devrait marcher.
maintenant à toi de savoir d'où provient cette donnée en Single et à quoi correspondent ces critères Node, Field et Tagname.

Daniel
0
pastis51forever Messages postés 172 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 8 septembre 2006 1
19 avril 2005 à 15:12
doevents sert à laisser la main au système pour executer une action ou une tâche en cours en parallèle de ton application.
ex: si tu mets une boucle dans ton prog qui permet d'attendre qu'une valeur passe à true, utilise doevents pour permettre au sytème de continuer ses taches de fond.

do
doevents
loop until La_Valeur = true

Sans ca, aucune autre opération parallèle ne s'effectue.
0
Rejoignez-nous