Programmation VB Script sous Mach3

Aller en bas

Programmation VB Script sous Mach3 Empty Programmation VB Script sous Mach3

Message  dh42 le Mer 13 Jan 2021 - 5:26

Salut Wink

Les variables

En programmation, une variable est une "mémoire" à laquelle on donne un nom et dans laquelle il est possible de stocker une valeur, qui peut être de différents types (entier, réel, texte, booléen, etc ...)

Cette valeur, une fois stockée, peut être rappelée, modifiée ; autrement dit son contenu peut varier, d’où le nom de variable.

Dans le cas d'une programmation "propre",  l'utilisation d'une variable se fait en 2 temps:

- 1) Déclaration de la variable: Il s'agit de dire au programme que tu veux utiliser une variable d'un certain type et dont tu vas aussi définir le nom.

ex:

Dim a As Long

déclare une variable nommée "a" qui sera du type "entier long signé" ; cette déclaration se fait une seule fois, généralement en début de programme ou de sous programme.

-2) affectation d'une valeur à cette variable.

ex:

a = 5000

la variable "a" contiendra donc 5000 une fois cette ligne exécutée.

la valeur affectée à la variable doit être compatible avec le type de variable, ici on a déclaré "a" comme une variable pouvant contenir un entier long, donc la valeur qu'on lui affecte doit être un entier et il ne doit pas dépasser les limites acceptables par ce type de variable ; Dans le cas d'un entier long signé, la valeur doit être comprise entre −2 147 483 648 et  +2 147 483 647)

Dans la cas de Mach3, il est possible de faire l'impasse sur la déclaration de variable, et dans ce cas, elle sera déclaré automatiquement lorsque tu l'utiliseras pour la 1ière fois. (ici quand le programme rencontrera le a = 5000) ..Par contre cette méthode ne permet pas de définir le type de variable, ce sera automatiquement une variable de type "variant", qui peut contenir tout type de donnée ... mais qui ralentis le fonctionnement et surtout, sur un programme complexe, peut induire le programmeur en erreur.

Si tu veux tester le fonctionnement sur Mach3, crée un bouton VB script et entre le code suivant:

Code:
Dim a As Long 'déclaration d'une variable de type "Long" nommée "a"
a = 5000 'affectation de la valeur 5000 à cette variable
message(a) 'écrit le contenu de la variable dans la ligne de message

lorsque tu cliquera sur le bouton, la fonction message() affichera le contenu de la variable "a" dans la ligne de message de Mach3, soit 5000

ici, un peu plus compliqué  Very Happy  .. on crée 3 variables de type "double précision" appelées a, b et c et on va faire des calculs avec ces variables et afficher des résultats.

on commence par déclarer les 3 variables de type réel en double précision (donc des nombres à virgules)

Dim a As Double
Dim b As Double
Dim c As Double


puis on affecte des valeurs à deux des variables (la 3ieme sera utilisée pour y stocker un résultat, donc pas besoin d'y mettre une valeur pour l'instant)

a = 12.5
b = 2


maintenant on va diviser a par b et afficher directement le résultat dans une boite de message

MsgBox(a/b)

on peut aussi utiliser une variable intermédiaire si on a besoin de conserver ce résultat pour autre chose.

ici on affecte le résultat du calcul "a puissance b" à la variable c, puis on affiche le contenu de la variable "c"

c = a^b
MsgBox(c)


le programme complet

Code:
Dim a As Double
Dim b As Double
Dim c As Double
a = 12.5
b = 2
MsgBox(a/b)
c = a^b
MsgBox(c)

On utilise très souvent des variables texte, qui seront affichées telles quelles.

par exemple pour déclarer une variable "nom" dans laquelle on stockera un nom

Dim mon_nom As String
mon_nom = "David"
MsgBox(mon_nom)


le texte qui doit être stocké dans la variable texte DOIT être entouré de double cotes (") .. il peut bien entendu contenir des espaces des chiffres et autres signes de ponctuation.

Les noms de variables ne doivent pas contenir d'espaces, elles ne doivent pas commencer par un chiffre (mais peuvent en contenir) et ne doivent pas avoir le même nom qu'une fonction ou qu'un mot clef du langage. (par exemple, tu ne peux pas nommer une variable "if" car c'est un mot clef du basic) elles ne doivent contenir que des caractères ANSI (pas de caractères accentués, mais uniquement les 26 lettres de l'alphabet, en minuscule ou majuscule) elles ne doivent pas contenir de symboles de ponctuation, seul l'underscore est autorisé (_)

Il n'y a pas de différentiation entre les majuscules et les minuscules, donc les noms de variables suivants font référence à une même variable.

MaVariable, mavariable, Mavariable, MAVARIABLE, etc ....

mais MaVariable et Ma_Variable sont bien deux variables différentes.

C'est du ressort du programmeur de choisir sa méthode pour nommer les variables en fonction de ses gouts et de sa façon de s'organiser pour s'y retrouver ..

les types de variables du VB Script sont listées sur la Doc du Basic Cypress, page 8

Les plus utilisées sont Double, String et Boolean

Voila pour une première approche.

suite au prochain épisode Wink

++
David


Dernière édition par dh42 le Sam 16 Jan 2021 - 23:59, édité 3 fois

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  jp1973 le Ven 15 Jan 2021 - 22:19

salut david Cool

variables ok !  ( j'ai fait ma petite fiche pense bête  sourire02 )
jp1973
jp1973
posteur Régulier
posteur Régulier

Messages : 116
Points : 122
Date d'inscription : 26/10/2020
Age : 47
Localisation : 46

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Ven 15 Jan 2021 - 22:34

Ok, la suite tout à l'heure Wink

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Ven 15 Jan 2021 - 23:43

Salut

Ok, donc on va passer aux branchements conditionnels.

Dans un programme simple comme vu sur le message à propos des variables, le programme se déroule de manière séquentielle, c.a.d. ligne après ligne.

Parfois (souvent même) il est nécessaire de prendre une décision en fonction d'un résultat, ou d'une saisie utilisateur, et d'exécuter un code plutôt qu'un autre.

Le plus utilisé des branchements conditionnels, c'est le If/Then/Else (Si/Alors/Sinon)

On va écrire un code qui demandera une valeur numérique à l'utilisateur, qui testera si une valeur a bien été fournie par l'utilisateur, et qui, en fonction de cette valeur, affichera si elle est inférieure à 10 ou supérieur ou égale à 10. Si aucune valeur n'est donnée, on aura une gestion d'erreur qui affichera "pas de valeur !"

Ce bout de programme introduit aussi la notion de Sub ; c.a.d de "sous programme". Dans le cas présent, il n'y a que le programme principal, représenté par la Sub main(). Ce programme principal DOIT s'appeler main() afin que VB sache que c'est la Sub à exécuter en 1ier (la il n'y en a qu'une, donc il ne peut pas se tromper)

Cette Sub principale doit se terminer par un End Sub ; dans ce cas, le programme se termine donc quand il rencontre le End Sub

J'introduis aussi la notion de conversion de type de donnée et la fonction permettant de demander une valeur à l'utilisateur.

Code:
Sub main()

   Dim a As Double
   Dim mavaleur As String

   mavaleur = InputBox("entrez une valeur")

   If(mavaleur = "") Then
      MsgBox("pas de valeur !")
      Exit Sub
   End If

   a = Val(mavaleur)
   
   If (a < 10) Then
      MsgBox("a < 10")
   Else
      MsgBox("a >= 10")
   End If
   
End Sub

Dim a As Double
Dim mavaleur As String


Jusque la, rien de bien nouveau ; on déclare 2 variables ; "a" comme variable permettant de stocker une valeur numérique décimale et "mavaleur" permettant de stocker une chaine de caractère.

mavaleur = InputBox("entrez une valeur")

La fonction InputBox() affiche une boite de dialogue à l'écran et permet de saisir n'importe quel texte dans la ligne. Elle fournit aussi 2 boutons OK et Cancel permettant de valider ou d'annuler la saisie.

Le texte "entrez une valeur" sera affiché dans la boite comme libellé.

Une fois que l'on aura cliqué sur OK ou Cancel, la fonction retournera le résultat de la saisie dans la variable texte "mavaleur"

Si on ne saisit rien dans la boite de dialogue, ou si on clique sur Cancel, "mavaleur" contiendra une chaine vide (autrement dit, ne contenant aucun caractère)

On passe maintenant au 1ier test IF

If(mavaleur = "") Then
MsgBox("pas de valeur !")
Exit Sub
End If


L'expression entre les parenthèses du If() est tout d'abord évaluée ; elle retournera vrai ou faux ; ici on teste si la variable mavaleur vaut "" (chaine vide) ; le but étant de gérer le Cancel (qui renvoi une chaine vide) ; si on clique sur Cancel, le programme devra se terminer.

Tout ce qui se trouve entre la ligne If(mavaleur = "") Then et la ligne End If sera exécuté si le résultat du test est vrai, sinon, on sautera directement à ce qui se trouve après le End If sans exécuter le code entre le If et le End If

Donc dans le cas ou mavaleur = chaine vide (""), on exécutera:

MsgBox("pas de valeur !") ' affiche un message disant qu'il n'y a pas de valeur
Exit Sub ' on sort de la Sub en cours, ce qui, dans ce cas, met fin au programme.

Conversion du type de donnée

a = Val(mavaleur)

On veut faire un test sur une valeur numérique, mais la fonction InputBox() retourne obligatoirement une valeur texte ; on va donc devoir convertir cette valeur texte en valeur numérique.

C'est le travail de la fonction Val() ; elle prend un texte (ou une variable texte) en argument, ici la variable mavaleur et retourne son équivalent numérique en analysant les caractères qu'elle contient. La valeur de retour est affectée à "a"

On se retrouve donc avec "a" qui contient une valeur numérique.

Ensuite, on effectue un nouveau test If() pour savoir si "a" est < à 10 ou supérieur ou égal à 10

C'est le même principe que le If précédant, mais ici on ajoute un Else (sinon) qui va nous permettre de choisir entre deux options ; soit le test est vrai et on affiche a < 10, soit il est faux et on affiche a >= 10

If (a < 10) Then
MsgBox("a < 10")
Else
MsgBox("a >= 10")
End If


Si "a" est  < à 10, alors on exécute le code entre le If et le Else, puis on saute à la fin en ignorant ce qui est entre le Else et le End If et on continu donc le programme après le End If.

Si la condition du test n'est pas vérifié, c.a.d. si "a" n'est pas < à 10, alors on exécute la 2ieme "branche" de l'instruction, c.a.d le code qui se trouve entre le Else  et le End If

Le programme continu ensuite après le End If

Chaque "branche" du If/Then/Else peut bien sûr contenir plusieurs lignes de code.

à plus tard pour une autre instruction de branchement conditionnel permettant un plus grand nombre de choix

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  jp1973 le Sam 16 Jan 2021 - 0:21

ok ça va , je suis .......faut dire qu'un développement clair  y est pour beaucoup... Wink  Smile  

Chaque "branche" du If/Then/Else peut bien sûr contenir plusieurs lignes de code .

je suppose que l'on peut mettre autant de if que "l'on veut" en "cascade" ..

m'en vais quand même faire une autre fiche sourire02

PS : au fur et à mesure j’effacerais mes messages pour ne pas polluer et ainsi préserver l'intégrité de ce post pour les générations futures ....de programmateurs siffle Cool Wink
jp1973
jp1973
posteur Régulier
posteur Régulier

Messages : 116
Points : 122
Date d'inscription : 26/10/2020
Age : 47
Localisation : 46

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Sam 16 Jan 2021 - 0:45

je suppose que l'on peut mettre autant de if que "l'on veut" en "cascade" ..

Oui, tout à fait ; il y a même une syntaxe avec un ElseIf à la place du Else sur le VB (à vérifier si elle y est sur le VB Cypress)

Par contre ça peut vite devenir illisible, donc .... il y a mieux que le If/Then ; on verra ça au prochain épisode Wink

PS : au fur et à mesure j’effacerais mes messages pour ne pas polluer et ainsi préserver l'intégrité de ce post pour les générations futures ....de programmateurs

Pas si tu pose des questions, les questions font partie de l'apprentissage, donc elles sont utiles au sujet Wink

Ne t'inquiète pas, s'il y a des messages de "flood" sans intérêt pour la compréhension de la chose, je les effacerais ...

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  meles le Sam 16 Jan 2021 - 7:34

dh42 a écrit:il y a même une syntaxe avec un ElseIf à la place du Else sur le VB (à vérifier si elle y est sur le VB Cypress)

Ca sent le "case" tout ça ! Je trouve que Val() c'est pas très intuitif. Y'a un distingo entre les entiers et les flottant dans les types ?

_________________
meles
meles
Admin
Admin

Messages : 12500
Points : 19405
Date d'inscription : 13/05/2011
Age : 49
Localisation : Aubagne

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  jp1973 le Sam 16 Jan 2021 - 13:28

On veut faire un test sur une valeur numérique, mais la fonction InputBox() retourne obligatoirement une valeur texte ; on va donc devoir convertir cette valeur texte en valeur numérique.

C'est le travail de la fonction Val() ; elle prend un texte (ou une variable texte) en argument, ici la variable mavaleur et retourne son équivalent numérique en analysant les caractères qu'elle contient. La valeur de retour est affectée à "a"

peux tu développer " retourne son équivalent numérique en analysant les caractères qu'elle contient" .
si j'ai compris seuls les chiffres de la chaîne de caractères seront renvoyés , ou il y a transformation d'un texte en équivalent numérique ? scratch
jp1973
jp1973
posteur Régulier
posteur Régulier

Messages : 116
Points : 122
Date d'inscription : 26/10/2020
Age : 47
Localisation : 46

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Sam 16 Jan 2021 - 19:08

salut,

Ca sent le "case" tout ça !

Exact Wink

Y'a un distingo entre les entiers et les flottant dans les types ?

Oui ; Integer = entier courts (2 octets), Long = entiers longs (4 octets), Single = Réels courts (4 octets), Double = Réels longs (8 octets)
(Réels = valeurs contenant une partie décimale)

Dans le VB actuel (pas celui parlé par Mach3, qui date un peu), il y en a d'autres en plus, car on peut aussi avoir des entiers non signés, mais ils ne semblent pas exister sur le VB Cypress.


peux tu développer " retourne son équivalent numérique en analysant les caractères qu'elle contient" .
si j'ai compris seuls les chiffres de la chaîne de caractères seront renvoyés , ou il y a transformation d'un texte en équivalent numérique ?

La réaction diffère suivant le VB utilisé ; apparemment dans le VB de Mach3, si il y a autre chose que des chiffres et caractères numériques (- + .) dans la chaine de caractères, ça renvoi une erreur (en mode pas à pas), alors que sur le VB "normal" (ex: les script CamBam) la fonction tente de créer un nombre avec les caractères numériques, mais dès qu'un caractère non numérique est rencontré, la fonction ne vas pas plus loin.

ex, dans le VB de CamBam: Val("12G") renvoi 12 ; Val("12H3") renvoi aussi 12, Val("K12") renvoi 0

Il existe une fonction IsNumeric() qui renvoi True (vrai) ou False (faux) en fonction du contenu de la chaine de caractère ; si elle peut être entièrement convertie en nombre, ça renvoi vrai, sinon faux. (si chaine vide, c'est considéré comme numérique = 0)

un exemple pour tester si la valeur saisie est convertible en valeur numérique

Code:
Sub main()
   
   Dim txt As String
   Dim a As Double

   txt = InputBox("entrez une valeur")
   
   If(txt = "") Then Exit Sub 'sortir si chaine vide (= cancel ou pas de saisie)

   If IsNumeric(txt) Then 'si convertible en numérique
          MsgBox("numérique")
          a = Val(txt)
   Else 'non convertible sortir de la sub
          MsgBox("non numérique")
          Exit Sub
   End If

   MsgBox(a)

End Sub

Note la version courte du If/Then dans If(txt = "") Then Exit Sub ; une instruction peut être mise après le Then, et pas besoin de End If dans ce cas.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  jp1973 le Sam 16 Jan 2021 - 23:27

Oui ; Integer = entier courts (2 octets), Long = entiers longs (4 octets), Single = Réels courts (4 octets), Double = Réels longs (8 octets)
(Réels = valeurs contenant une partie décimale)

besoin là aussi d'une remise à niveau avec les octets ,  j'en suis resté à mes acquis d'école  1 octets =8 bytes
 sourire02
jp1973
jp1973
posteur Régulier
posteur Régulier

Messages : 116
Points : 122
Date d'inscription : 26/10/2020
Age : 47
Localisation : 46

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Sam 16 Jan 2021 - 23:43

1 octets =8 bytes

Non, 1 Octet = 8 Bits

Byte = Octet en Anglais Wink (1 Byte = 8 Bits)

PS regarde page 8 de la doc pour la liste complète des types de données du Basic Cypress Wink

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Sam 16 Jan 2021 - 23:59

docs en ligne  

le Cypress Basic Script
https://www.machsupport.com/wp-content/uploads/2013/02/VBScript_Commands.pdf

Les fonctions spécifiques de Mach3
https://www.machsupport.com/wp-content/uploads/2013/02/Mach3_V3.x_Macro_Prog_Ref.pdf

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  jp1973 le Dim 17 Jan 2021 - 11:39

bonjour  David et meles .

Ce programme principal DOIT s'appeler main() afin que VB sache que c'est la Sub à exécuter en 1ier (la il n'y en a qu'une, donc il ne peut pas se tromper)

Cette Sub principale doit se terminer par un End Sub ; dans ce cas, le programme se termine donc quand il rencontre le End Sub ...............MsgBox("pas de valeur !") ' affiche un message disant qu'il n'y a pas de valeur
Exit Sub on sort de la Sub en cours, ce qui, dans ce cas, met fin au programme.


la différence entre les deux , c'est que exit sub  permet la continuité du programme si la condition est remplie , alors que End Sub stoppe/ferme le programme ?
comment se présente  l' arborescence entre  le Sub Main () (programme principal) et  les Sub()  (sous- programme ) ?
jp1973
jp1973
posteur Régulier
posteur Régulier

Messages : 116
Points : 122
Date d'inscription : 26/10/2020
Age : 47
Localisation : 46

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Dim 17 Jan 2021 - 23:58

Salut,

Exit Sub sort de la sub en cours sans attendre d'être arrivé à End Sub.

Si on est dans la sub main(), Exit sub ou End Sub termine le programme. Si on est dans une autre sub, ça termine la sub en cours et on continu le programme à l’instruction suivant l'appel de la sub dans la sub appelante.

ex:

Sub main()
....
....
Masub() 'appel de la sub Masub()
.... on continu ici une fois Masub() exécutée
...
End Sub

Sub Masub()
...
...
End Sub

dans la sub main(), quand le programme rencontre Masub(), il exécute ce qui se trouve entre Sub Masub() et son End Sub, puis une fois la sub Masub() terminée, il retourne dans la sub main() et continu avec l'instruction qui est juste après l'appel Masub() et ce jusqu'au End sub de la sub main(), puis se termine.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  jp1973 le Lun 18 Jan 2021 - 12:23

salut , Very Happy
si j'ai bien compris un programme principal est " jalonné par des bornes " Sub main () et end sub . on y trouve ces déclarations et affectations de variables et ces instructions (fonctions) qui lui sont propres et éventuellement des appels de sous-programmes Sub xxx () . on peut aussi y inclure des sorties de programme exit Sub . Les sous-programmes sont eux aussi " jalonnés par des bornes " Sub xxx () et end Sub , et sont édités les uns aprés les autres à la suite du programme principal .
jp1973
jp1973
posteur Régulier
posteur Régulier

Messages : 116
Points : 122
Date d'inscription : 26/10/2020
Age : 47
Localisation : 46

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Mar 19 Jan 2021 - 0:21

Salut,

Oui, c'est ça, et chaque Sub (ou Fonction) peux avoir ses propres variables, indépendantes de celle des autres Sub/Fonctions ... on verra ça bientôt.

Note que le terme Sub est spécifique au Basic script (ainsi qu'au VB script et au VB) ; dans les autres langages on ne fait pas de distinction entre Sub et Fonction, les "sous programme" s’appellent tous des Fonctions.

En VB, la seule différence entre une Sub et une Fonction, c'est qu'une Sub ne retourne aucune valeur, alors qu'une fonction en retourne une.

Par exemple, InputBox() est une fonction (intégrée au langage) car elle retourne une valeur dans une variable ( a = InputBox(...) )

Un programme contient au moins une Sub principale et peux contenir un nombre indéfini de Sub/Fonctions qui peuvent être appelées par le programme principale mais aussi par d'autres Sub/Fonctions.

Les Sub/Fonctions peuvent être partie intégrante du langage, comme MsgBox(), InputBox, elle peuvent provenir de Windows, ou elles peuvent être créées par le programmeur.

Les fameuses .dll, ne sont ni plus ni moins que des "bibliothèques" de fonctions, sans programme principal, les fonctions de ces bibliothèques peuvent être appelées par ton programme, du moment que tu déclare la bibliothèque (dll) à utiliser en début de programme.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  jp1973 le Mar 19 Jan 2021 - 1:18

salut david
.......et chaque Sub (ou Fonction) peux avoir ses propres variables, indépendantes de celle des autres Sub/Fonctions ... .

là ça va ...

Par exemple, InputBox() est une fonction (intégrée au langage) car elle retourne une valeur dans une variable ( a = InputBox(...) )

là j'ai  pas vraiment  encore intégré   le concept  "retourne une valeur dans une variable" ...
il va me falloir des exemples . parce que j'suis  vraiment pas sûr mais  je crois  que tout peut être renvoyé comme valeur ( texte , nombre ,etc etc ) . je pédale dans la S'moule  ..


Un programme contient au moins une Sub principale et peux contenir un nombre indéfini de Sub/Fonctions qui peuvent être appelées par le programme principale mais aussi par d'autres Sub/Fonctions.

là çà va ....


Les Sub/Fonctions peuvent être partie intégrante du langage, comme MsgBox(), InputBox, .

là c'est oui /ouais  , en fait c'est le " peuvent " qui me déroute ...

Les fameuses .dll, ne sont ni plus ni moins que des "bibliothèques" de fonctions, sans programme principal, les fonctions de ces bibliothèques peuvent être appelées par ton programme, du moment que tu déclare la bibliothèque (dll) à utiliser en début de programme.

là ça va ...

je pourrais comparer  ma compréhension actuelle a ce que l'on peut voir au travers d'une vitre avec brise vue ..... je devine ou crois comprendre et puis je doute .... What a Face  Very Happy
jp1973
jp1973
posteur Régulier
posteur Régulier

Messages : 116
Points : 122
Date d'inscription : 26/10/2020
Age : 47
Localisation : 46

Revenir en haut Aller en bas

Programmation VB Script sous Mach3 Empty Re: Programmation VB Script sous Mach3

Message  dh42 le Mar 19 Jan 2021 - 1:56

La compréhension viendra au fur et à mesure que l'on avancera dans le tuto ; il ne faut pas bruler les étapes Wink .. pour l'instant on n'en est pas encore aux fonctions/sub ...

là j'ai  pas vraiment  encore intégré   le concept  "retourne une valeur dans une variable" ...

Et bien par exemple, la fonction Beep() fait quelque chose (elle produit un son "bip") , mais tu n'en attends pas un résultat en retour, donc elle s'écrit simplement

Beep()

(Beep sans les parenthèses dans le cas de Mach3 ; particularité de la syntaxe du Basic Cypress)

la fonction InputBox() par contre retourne une valeur, qui est ce que tu a saisi dans la boite de dialogue ... et il faut bien récupérer cette valeur retournée ; dans ce cas elle s'écrit

a = InputBox()

"a" contiendra la "réponse" de la fonction, donc la valeur saisie (sous forme d'une chaine de caractère dans le cas de cette fonction)

même chose avec une fonction sinus

a = Sin(90)

la fonction Sin() calculera le sinus de 90 et le résultat sera renvoyé par la fonction et sera stocké dans la variable "a"

là c'est oui /ouais  , en fait c'est le " peuvent " qui me déroute ...

Certaines fonctions font partie intégrante du basic, et donc elles seront utilisables dans tous les programmes basic script que se soit sous Mach3, CamBam, Excel, Word, etc, mais certaines fonctions ne font pas partie du basic et sont spécifiques à une application ; par exemple la fonction GetOEMDro() de Mach3 est spécifique à Mach3 et sera inconnue si tu tentais de l'utiliser sous CamBam ou sous Word.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 20276
Points : 32981
Date d'inscription : 21/06/2009
Age : 57
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum