Aller directement au contenu principal

Syntaxe et structure

Syntaxe Basic
Le système de scripts personnalisés d'IndySoft exécute du code écrit en syntaxe Basic. La syntaxe de base actuelle prend en charge :

·sous-section .. fin et fonction .. Déclarations de fin

· Directives byref et dim

· if .. ensuite... sinon... fin du constructeur

·for .. à... étape .. constructor suivant

·do .. pendant que... boucle et faire... boucle .. tandis que les constructeurs

·do .. jusqu'à ce que... boucle et faire... boucle .. jusqu'aux constructeurs

·^ , * , / , et , + , - , ou , <> , >=, <= , = , > , < , div , mod , xor , shl , shr opérateurs

·try .. sauf si et essayer... enfin, les blocs

·select case .. fin de sélection constructeur

·constructeurs de tableaux (x := [1, 2, 3];)

·instruction exit

·accès aux propriétés et méthodes d'un objet (NomObjet.SousObjet.Propriété)



de la structure du script La structure du script se compose de deux blocs principaux :

a) les déclarations de fonctions et de sous-programmes ainsi que l'

b) le bloc main.

Ces deux éléments sont facultatifs, mais au moins l'un d'entre eux doit figurer dans le script.

Quelques exemples :

SCÉNARIO 1 :

SUB DoSomething

CallSomething

END SUB

CallSomethingElse

SCÉNARIO 2 :

AppelerAutreChose

SCÉNARIO 3 :

FONCTION MyFunction

MyFunction = 'Ok!'

END FUNCTION

Comme en Basic standard, les instructions sur une seule ligne peuvent être séparées par le caractère « : ».

Identificateurs

Noms des identificateurs dans le script (noms de variables, noms de fonctions et de procédures, etc.) Respectez les règles les plus courantes en matière de bases :

  1. | doit commencer par une lettre (a..z ou A..Z) ou par le caractère « _ », et peut être suivi de caractères alphanumériques ou du caractère « _ ».2. | Ne peut contenir aucun autre caractère ni espace. Identificateurs valides :

VarName

_Some

V1A2 _____Some____

Identificateurs non valides :

2Var

Mon nom Autres

Ceci n'est pas valide

Instructions d'affectation

Les instructions d'affectation (qui consistent à attribuer une valeur ou le résultat d'une expression à une variable ou à une propriété d'objet) s'écrivent à l'aide du signe « = ».

Exemples :

MyVar = 2

Button.Caption = 'Ceci ' + 'est correct.'

Les chaînes de caractères

es (séquences de caractères) sont déclarées en Basic à l'aide de guillemets doubles (').

Quelques exemples :

A = « Ceci est un texte »

Str = « Texte » + « concat »

Commentaires

: il est possible d'insérer des commentaires dans le script. Vous pouvez utiliser des caractères ' ou REM. Le commentaire se termine à la fin de la ligne.

Exemples :

' Voici un commentaire avant ShowMessage

ShowMessage('Ok')

REM Voici un autre commentaire ShowMessage('Encore ok !')

' Et voici un commentaire

' sur deux lignes

ShowMessage('Fin des "ok")

Variables

Il n'est pas nécessaire de déclarer les types de variables dans le script. Ainsi, vous déclarez une variable simplement en utilisant la directive DIM et son nom.

Il n'est pas nécessaire de déclarer les variables si la propriété OptionExplicit du script est définie sur false. Dans ce cas, les variables sont déclarées de maniè

e implicite. Si vous souhaitez avoir davantage de contrôle sur le script, définissez la propriété OptionExplicit sur true. Cela provoquera une erreur d'

e de compilation si la variable est utilisée sans avoir été déclarée dans le script.

Exemples :

SCÉNARIO 1 :

SUB Msg

DIM S

S = 'Bonjour tout le monde !'

ShowMessage(S)

END SUB

SCÉNARIO 2 :

DIM A

A = 0

A = A+1

ShowMessage(A)

Notez que si la propriété OptionExplicit du script est définie sur « false », il n'est pas nécessaire de déclarer les variables dans aucun des scripts

ci-dessus.

Indexation

Les chaînes, les tableaux et les propriétés des tableaux peuvent être indexés à l'aide des caractères « [ » et « ] ». Par exemple, si Str est une variable de type chaîne, l'expression

Str[3] renvoie le troisième caractère de la chaîne désignée par Str, tandis que Str[I + 1] renvoie le caractère

situé immédiatement après celui indexé par I.

Autres exemples :

MyChar = MyStr[2]

MyStr[1] = 'A' MyArray[1,2] = 1530

Lines.Strings[2] = 'Some text'

Tableaux

Script prend en charge les constructeurs de tableaux et les tableaux de types variés. Pour créer un tableau, utilisez les caractères « [ » et « ] ». Vous pouvez utiliser <br /> <br /> pour créer des tableaux à indices multiples imbriqués à l'aide de constructeurs de tableaux. Vous pouvez ensuite accéder aux tableaux à l'aide d'index. Si le tableau est à indices multiples,

séparez les indices par une virgule (« , »).

Si la variable est un tableau de variantes, le script prend automatiquement en charge l'indexation de cette variable. Une variable est un tableau de type Variant si elle a été définie à l'aide d'un constructeur de tableau (

), s'il s'agit d'une référence directe à une variable Delphi qui est un tableau de type Variant (voir plus loin l'intégration de Delphi et d'

) ou si elle a été créée à l'aide de la procédure VarArrayCreate.

Dans les scripts, l'indexation des tableaux commence à 0. Quelques exemples :

NewArray = [ 2,4,6,8 ]

Num = NewArray[1] //Num prend la valeur « 4 »

MultiArray = [ ['vert','rouge','bleu'] , ['pomme','orange','citron'] ]

Str = MultiArray[0,2] //Str prend la valeur « bleu »

MultiArray[1,1] = 'nouvelle orange'

Instructions if

Il existe deux formes d'instructions if : if...then...end if et if...then...else...end if. Comme dans le langage Basic standard, si l'expression conditionnelle

est vraie, les instructions sont exécutées. S'il y a une branche « else » et que l'expression est fausse, les instructions qui suivent « else » sont exécutées.

Exemples :

IF J <> 0 THEN

Result = I/J

END IF

IF J = 0 THEN

Exit Sub

ELSE

Result = I/J

END IF

IF J <> 0 THEN

Result = I/J

Count = Count + 1

ELSE

Done = True

END IF

Les boucles « while »

Une boucle « while » sert à répéter des instructions tant qu'une condition de contrôle (expression) est évaluée comme vraie. La condition de l'

e de contrôle est évaluée avant les instructions. Par conséquent, si la condition de contrôle est fausse lors de la première itération, la séquence d'instructions «

» n'est jamais exécutée. La boucle « while » exécute la instruction qui la compose de manière répétée, en vérifiant l'expression avant l'

e à chaque itération. Tant que l'expression renvoie « True », l'exécution se poursuit.

Exemples :

WHILE (Data[I] <> X)

I = I + 1

END WHILE

WHILE (I > 0)

IF Odd(I) THEN

Z = Z * X

END IF

X = Sqr(X)

END WHILE

WHILE (not Eof(InputFile))

Readln(InputFile, Line)

Process(Line)

END WHILE

Instructions de boucle

Script prend en charge les instructions de boucle. Les syntaxes possibles sont les suivantes :

Instructions DO WHILE expr LOOP

Instructions DO UNTIL expr LOOP

Instructions DO LOOP WHILE expr

Instruction DO LOOP UNTIL expr

Les instructions seront exécutées TANT QUE l'expression est vraie, ou JUSQU'À CE QUE l'expression soit vraie. Si l'expression se trouve avant les instructions, la condition de l'

e de contrôle sera évaluée avant l'itération. Sinon, la condition de contrôle sera vérifiée après l'itération.

Exemples :

FAIRE

K = I mod J

I = J

J = K

BOUCLE JUSQU'À CE QUE J = 0

FAIRE JUSQU'À CE QUE I >= 0

Écrire('Entrez une valeur (0..9) : ') Lire(I)

BOUCLE

DO

K = I mod J

I = J

J = K

LOOP WHILE J <> 0

DO WHILE I < 0

Write('Entrez une valeur (0..9) : ')

Readln(I)

LOOP

Pour les instructions

Scripter prend en charge les instructions présentant la syntaxe suivante : FOR compteur = valeurInitiale TO valeurFinale STEP incrément

NEXT.

Pour une instruction, le compteur est initialisé à la valeur initiale ; l'exécution de l'instruction est répétée jusqu'à ce que l'on atteigne « next », et la valeur du compteur est incrémentée d'une valeur de pas, jusqu'à ce que le compteur atteigne la valeur finale. La partie « step » est facultative ; si elle est omise, la valeur « stepValue » est considérée comme égale à 1 (

).

Exemples :

SCÉNARIO 1 :

FOR c = 1 TO 10 STEP 2

a = a + c

NEXT

SCÉNARIO 2 :

POUR i = a À b

j = i²

sum = sum + j

SUIVANT

Instructions SELECT CASE

Scripter prend en charge les instructions SELECT CASE selon la syntaxe suivante :

SELECT CASE expressionSelectrice

CASE expressionCas1

instruction1

CASE expression_case

instruction_case

CASE ELSE

instruction_else

END SELECT

Si l'expression de sélection correspond au résultat de l'une des expressions de case, les instructions correspondantes seront exécutées.

Sinon, l'instruction « else » sera exécutée. Le reste de l'instruction « case » est facultatif.

Exemple :

SELECT CASE uppercase(Fruit)

CASE 'lime' ShowMessage('vert')

CASE 'orange' ShowMessage('orange')

CASE 'apple' ShowMessage('rouge')

CASE ELSE ShowMessage('noir')

END SELECT |