calimeria
Messages postés30Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention11 août 2009
-
26 août 2008 à 18:08
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
27 août 2008 à 19:21
bonjour à tous
voilà j'ai lu plein de choses sur cette conversion
notamment que la fonction Hex() permettait de le faire
seulement avec vb6 quand je fais :
Hex(1348) 'ou autre nombre
il me fait une erreur et me demande de mettre un tableau et pas un nombre
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 26 août 2008 à 20:08
Salut
Comme le suggère Ghuysmans99, si cette instruction ne fonctionne pas, c'est que VB ne reconnait pas le mot clé HEX.
Cela peut arriver, en général, sur des fonctions comme Left ou Right, mais bon.
Simplement enregistre ton projet, sors de VB6, éventuellement reboote puis relance le tout, ça va repartir comme en 40.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privésys
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
calimeria
Messages postés30Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention11 août 2009 27 août 2008 à 08:56
Salut
merci d'avoir repondu
msgbox Hex(1348) ne fonctionne pas : il me surligne Hex et me dit qu'il attend un tableau
en fait quand j'ecris hex ou HEX vb6 me le change en Hex, du coup j'ai cru qu'il le reconnaissait et comme l'entreprise ou je suis n'a pas de msdn je ne peux pas verifier
rebooter la machine non plus ne marche pas
si vous deux ou qqn d'autre ont des idees, dîtes-le moi
merci d'avance
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 27 août 2008 à 09:01
Tu peux peut-être essayer Hex$, qui fait la même chose mais retourne une String ...
On sait jamais !
_________________________________________________________________________
VB.NETis good ...VB6is better<
calimeria
Messages postés30Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention11 août 2009 27 août 2008 à 09:14
salut jrivet
j'ai pris un nouveau projet dans lequel il n'y a qu'une feuille dont le code ne contient que "msgbox hex(1348)" et en effet cela fonctionne !
mais dans mon projet, meme si je prends une nouvelle feuille, l'erreur se produit
voici le code de la seule feuille de mon projet (en fait je communique avec un automate omron CJM1 et je récupère des données grace à des afficheurs omron => sur ma feuille, il y a un control qui permet la communication avec CX-server, 7 afficheurs omron qui sont liés au control de communication, et 7 listBox.) :
Private Sub Form_Load()
Dim tempo As Integer
Dim heure As String
Dim datedoj As String
Dim enr_minut As Integer
Dim n_cycle1 As String
Dim n_cycle2 As String
Dim npas As Integer
Dim npas_prec As Integer
Dim t_cuve As Integer
Dim t_dech As Integer
Dim coeffste As Integer
Dim press As Integer
Dim i As Integer
Dim f As Byte
Comms1.ClosePLC
tempo = Second(Now)
Do Until Second(Now) = tempo + 5
Loop
Form1.Show
tempo = Second(Now)
Do Until Second(Now) = tempo + 5
Loop
Comms1.OpenPLC
tempo = Second(Now)
Do Until Second(Now) = tempo + 5
Loop
f = "0000000000000001"
recomm:
If (Comms1.CIO(117) And f) <> 1 Then
GoTo recomm
Else
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
List6.AddItem heure
List7.AddItem datedoj
boucle_pas:
If Display1.Value = 1234.5 Then
GoTo boucle_pas
Else
npas_prec = Display1.Value
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
List6.AddItem heure
List7.AddItem datedoj
List1.AddItem Display1.Value
List2.AddItem Display2.Value
List3.AddItem Display3.Value
List4.AddItem Display4.Value
List5.AddItem Display5.Value
Do While (Comms1.CIO(117) And 1) = 1
boucle:
Do While Display3.Value <= 120
Do Until Display1.Value <> npas_prec
tps_pas = Comms1.D(16)
Loop
List6.AddItem tps_pas
List7.AddItem ""
List1.AddItem ""
List2.AddItem ""
List4.AddItem ""
List3.AddItem ""
List5.AddItem ""
npas_prec = Display1.Value
Loop
Do While Display3.Value > 121
enr_minute = Minute(Now)
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
List6.AddItem heure
List7.AddItem datedoj
List1.AddItem Display1.Value
List2.AddItem Display2.Value
List3.AddItem Display3.Value
List4.AddItem Display4.Value
List5.AddItem Display5.Value
boucle_minute:
If Minute(Now) <> enr_minute + 1 Then
GoTo boucle_minute
End If
Loop
Loop
End If
End If
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
GoTo recomm
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Comms1.ClosePLC
tempo = Second(Now)
Do Until Second(Now) = tempo + 3
Loop
End
End Sub
voila. les temporisations servent à laisser du temps au programme sinon toute l'application bloque.
merci d'avance
calimeria
Messages postés30Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention11 août 2009 27 août 2008 à 09:23
re
Conversion.Hex(1348) marche !
je crois que je vais faire avec celle-là car deja il reconnait bien conversion (il me met un petit menu des que je mets le point et dans lequel il y a Hex et quand je tape Hex il me demande bien un nombre)
je vais aller essayer ça dans l'atelier (ça va prendre un peu de temps) avec l'automate et je vous dirait quoi (ce qu'il en est , pour ceux qui ne seraient pas du nord : [) )
mais je ne sais pas pourquoi Hex tout seul ne fonctionne pas
en tous cas merci à tous
calimeria
Messages postés30Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention11 août 2009 27 août 2008 à 09:28
Ooops pardon je l'ai retiré hier quand cela ne fonctionnait pas
alors en fait il est :
.....
boucle:
Do while display3.value <= 120
Do until display1.value<> npas_prec
tps_pas = Hex(Comms1.D(16))
Loop
List6.additem tps_pas
.....
encore désolée
c parce que la case memoire D(16) renvoie normalement un temps mn:ss
mais elle retourne une valeur decimale et c'est en hexa que l'on peut avoir les 4 chiffres du temps, il me faudra juste ajouter un ":" entre eux
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 27 août 2008 à 19:21
Re
Je n'ai pas tout lu les réponses, mais pense aussi à regarder si tu n'aurais pas créé une SUB, une FUNCTION ou une VARIABLE, n'importe où dans le code, portant le nom de HEX --> Dans ce cas, le compilateur ne saurait plus s'il a à faire avec ta Sub ou avec sa propre fonction
--> Attention de ne pas utiliser de mot clé dans les noms de fonction ou de variable
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)