reference

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
reference [2026/04/03 12:26] rootreference [2026/07/27 20:44] (Version actuelle) – [Fonctions] root
Ligne 46: Ligne 46:
  
 ==== call ==== ==== call ====
-Cette instruction permet d'appeler un sous-programme externe au source en cours, de type //bibliothèque//. C'est un binaire au format W (en p-code) en mode compilé, ou un source W en mode interprété, chargé à la volée lors de l'appel.\\  + 
-La syntaxe est => ''call <identifiant>(params...)'' : appel d'un autre programme W de type //bibliothèque//, présent soit dans le répertoire des sources WSRC en mode interprété, soit celui des binaires WBIN en mode p-code.\\+Cette instruction permet d'appeler un sous-programme externe au source en cours, de type //bibliothèque//. C'est un binaire au format W (en p-code) en mode compilé, ou un source W en mode interprété, chargé à la volée lors de l'appel.\\ 
 +La syntaxe est ⇒ ''call <identifiant>(params)'' : appel d'un autre programme W de type //bibliothèque//, présent soit dans le répertoire des sources WSRC en mode interprété, soit celui des binaires WBIN en mode p-code.\\
 Le passage des paramètres est facultatif et variable ; le contrôle est fait uniquement à l'exécution lors de l'utilisation des variables. Les paramètres en trop sont ignorés. Ceux manquant forceront la variable paramètre associée à l'état //non-déclarée//.\\ Le passage des paramètres est facultatif et variable ; le contrôle est fait uniquement à l'exécution lors de l'utilisation des variables. Les paramètres en trop sont ignorés. Ceux manquant forceront la variable paramètre associée à l'état //non-déclarée//.\\
-Les paramètres sont obligatoirement des variables simples ([[#variables_nombres_et_chainessyntaxe|identifiant]] simple), passées par //référence// (PAS d'expression).\\ +Les paramètres sont obligatoirement des variables simples ou composées, passées par //référence// (PAS d'expression). Les variables chaînées avec indirection, de type ''var.var2!var3'' etc., sont interdites et provoqueront une erreur de compilation si utilisées comme paramètre. Les variables chaînées sans indirection, de type ''var1.var2.var3'' sont autorisées s'il n'y a pas de recouvrement : ''function(var1.var2, var1)'' provoquera une erreur de compilation, ''function(var1, var1)'' également, etc.
-**A préciser** les variables chaînées, de type ''var.var2!var3'' etc., sont interdites et provoqueront une exception si utilisées comme paramètre.\\+
 <code wlang> <code wlang>
 call calculerRacineCarre(nombre, resultat) call calculerRacineCarre(nombre, resultat)
 +
 </code> </code>
 +
  
 ==== catch ==== ==== catch ====
Ligne 156: Ligne 158:
  
 ==== do ==== ==== do ====
 +
 Cette instruction permet d'appeler un sous-programme interne au source en cours. La subroutine doit être déclarée au préalable, sous peine de générer une exception.\\ Cette instruction permet d'appeler un sous-programme interne au source en cours. La subroutine doit être déclarée au préalable, sous peine de générer une exception.\\
-La syntaxe est => ''do <var>(params...)'' : appel d'un sous-programme ''sub'' déjà déclaré dans le programme en cours (ou d'une méthode de classe/objet).\\ +La syntaxe est ⇒ ''do <var>(params)'' : appel d'un sous-programme ''sub'' déjà déclaré dans le programme en cours (ou d'une méthode de classe/objet).\\ 
-Le passage des paramètres est facultatif et variable ; le contrôle est fait uniquement à l'exécution lors de l'utilisation des variables. Les paramètres en trop sont ignorés. Ceux manquant forceront la variable paramètre associée à l'état //non-déclarée//.\\ Les paramètres sont obligatoirement des variables simples ([[#variables_nombres_et_chainessyntaxe|identifiant]] simple), passées par //référence// (PAS d'expression).\\ +Le passage des paramètres est facultatif et variable ; le contrôle est fait uniquement à l'exécution lors de l'utilisation des variables. Les paramètres en trop sont ignorés. Ceux manquant forceront la variable paramètre associée à l'état //non-déclarée//.\\ 
-**A préciser** les variables chaînées, de type ''var.var2!var3'' etc., sont interdites et provoqueront une exception si utilisées comme paramètre.+Les paramètres sont obligatoirement des variables simples ou composées, passées par //référence// (PAS d'expression). Les variables chaînées avec indirection, de type ''var.var2!var3'' etc., sont interdites et provoqueront une erreur de compilation si utilisées comme paramètre. Les variables chaînées sans indirection, de type ''var1.var2.var3'' sont autorisées s'il n'y a pas de recouvrement : ''function(var1.var2, var1)'' provoquera une erreur de compilation, ''function(var1, var1)'' également, etc.
 <code wlang> <code wlang>
 do complexe.calculer(operation, nombre1, nombre2) do complexe.calculer(operation, nombre1, nombre2)
 +
 +
 </code> </code>
 +
 +
 ==== echo ==== ==== echo ====
 Cette instruction permet d'afficher sur la sortie standard (la console) le contenu d'une [[#varsys|variable]] ou une chaine (PAS d'expression ici).\\ Cette instruction permet d'afficher sur la sortie standard (la console) le contenu d'une [[#varsys|variable]] ou une chaine (PAS d'expression ici).\\
Ligne 199: Ligne 206:
  
 ==== endfor ==== ==== endfor ====
 +
 Cette instruction marque la fin du bloc [[#foreach|for each]] correspondant : récupération de la valeur suivante et //saut// à la ligne qui suit l'instruction //foreach//. S'il n'y a plus de valeur à récupérer, le programme continue après //endfor//. Cette instruction marque la fin du bloc [[#foreach|for each]] correspondant : récupération de la valeur suivante et //saut// à la ligne qui suit l'instruction //foreach//. S'il n'y a plus de valeur à récupérer, le programme continue après //endfor//.
 <code wlang> <code wlang>
-foreach compteur in debut,fin+foreach compteur in debut,fin,increment
    echonl compteur    echonl compteur
 endfor                ; saute à la suite de foreach pour chaque valeur comptee entre debut et fin inclus endfor                ; saute à la suite de foreach pour chaque valeur comptee entre debut et fin inclus
 +
 </code> </code>
 +
  
 ==== endif ==== ==== endif ====
Ligne 236: Ligne 246:
  
 ==== except ==== ==== except ====
 +
 Cette instruction marque le début du bloc exception et la fin du bloc de traitement du programme ou d'un sous-programme.\\ Cette instruction marque le début du bloc exception et la fin du bloc de traitement du programme ou d'un sous-programme.\\
 Si l'exécuteur de traitement arrive à l'instruction //except// sans exception, le programme //saute// à l'instruction [[#endsub|endsub]] ou [[#end|end]], retourne à l'appelant, et se termine dans le cas du programme principal.\\ Si l'exécuteur de traitement arrive à l'instruction //except// sans exception, le programme //saute// à l'instruction [[#endsub|endsub]] ou [[#end|end]], retourne à l'appelant, et se termine dans le cas du programme principal.\\
-Si une exception survient dans le bloc de traitement, due à une autre instruction ou [[#throw|throw]], le programme saute automatiquement à la première ligne qui suit //except//. Une exception qui survient dans le bloc exception fait réagir le programme de la même manière que l'instruction [[#throw|throw]] : le code de la nouvelle exception est pris en compte et le programme saute à l'instruction [[#endsub|endsub]] ou [[w:instr:end|end]]. L'exception //remonte// dans le programme appelant et le fait arriver dans son bloc exception, etc. Enfin, uniquement dans le bloc exception, l'instruction [[#catch|catch]] permet d'annuler l'exception, et de revenir à l'appelant sans erreur.\\+Si une exception survient dans le bloc de traitement, due à une autre instruction ou [[#throw|throw]], le programme saute automatiquement à la première ligne qui suit //except//. Une exception qui survient dans le bloc exception fait réagir le programme de la même manière que l'instruction [[#throw|throw]] : le code de la nouvelle exception est pris en compte et le programme saute à l'instruction [[#endsub|endsub]] ou [[:w:instr:end|]]. L'exception //remonte// dans le programme appelant et le fait arriver dans son bloc exception, etc. Enfin, uniquement dans le bloc exception, l'instruction [[#catch|catch]] permet d'annuler l'exception, et de revenir à l'appelant sans erreur.\\
 Dans les bloc exceptions, la variable système [[#varsys|@except]] donne le numéro de l'exception en cours (de 1 à 16 777 215). Mais attention, lors du retour au shell appelant, le code attendu par le shell est sur 8 bits : le code retour envoyé risque ne pas être celui voulu. Dans les bloc exceptions, la variable système [[#varsys|@except]] donne le numéro de l'exception en cours (de 1 à 16 777 215). Mais attention, lors du retour au shell appelant, le code attendu par le shell est sur 8 bits : le code retour envoyé risque ne pas être celui voulu.
 +
 <code wlang> <code wlang>
 begin test begin test
Ligne 246: Ligne 258:
    <instructions>   ; gestion des exceptions    <instructions>   ; gestion des exceptions
 end end
 +
 </code> </code>
 +
  
 ==== foreach in like ==== ==== foreach in like ====
Ligne 325: Ligne 339:
  
 ==== invoke ==== ==== invoke ====
 +
 Cette instruction permet d'appeler un sous-programme de type //module//. Ce sont des sous-programmes écrits en C, compilé et appelés ici sous forme de binaire de l'OS (.o sous Linux, .dll sous Windows).\\ Cette instruction permet d'appeler un sous-programme de type //module//. Ce sont des sous-programmes écrits en C, compilé et appelés ici sous forme de binaire de l'OS (.o sous Linux, .dll sous Windows).\\
-La syntaxe est => ''invoke <module>&<fonction>(param1, param2, param3)'' : appel d'un module, plugins du langage, écrit en C. Le fichier <module>.o (ou <module>.dll) doit se trouver dans le répertoire des exécutables WBIN.  +La syntaxe est ⇒ ''invoke <module>&<fonction>(param1, param2, param3)'' : appel d'un module, plugins du langage, écrit en C. Le fichier <module>.o (ou <module>.dll) doit se trouver dans le répertoire des exécutables WBIN. Le passage des paramètres est facultatif et variable, avec un maximum de 3 paramètres ; le contrôle est fait uniquement à l'exécution lors de l'utilisation des variables. Les paramètres en trop sont ignorés. Ceux manquant forceront la variable paramètre associée à l'état //non-déclarée//.\\ 
-Le passage des paramètres est facultatif et variable, avec un maximum de 3 paramètres ; le contrôle est fait uniquement à l'exécution lors de l'utilisation des variables. Les paramètres en trop sont ignorés. Ceux manquant forceront la variable paramètre associée à l'état //non-déclarée//.\\ +Comme avec [[#do|do]] et [[#call|call]], Les paramètres sont obligatoirement des variables simples ou composées, passées par //référence// (PAS d'expression). Les variables chaînées avec indirection, de type ''var.var2!var3'' etc., sont interdites et provoqueront une erreur de compilation si utilisées comme paramètre. Les variables chaînées sans indirection, de type ''var1.var2.var3'' sont autorisées s'il n'y a pas de recouvrement : ''function(var1.var2, var1)'' provoquera une erreur de compilation, ''function(var1, var1)'' également, etc.
-Comme avec [[#do|do]] et [[#call|call]],  Les paramètres sont obligatoirement des variables simples ([[#variables_nombres_et_chainessyntaxe|identifiant]]), passées par //référence// (PAS d'expression).\\ +
-**A préciser** les variables chaînées, de type var.var2!var3 etc., sont interdites et provoqueront une exception si utilisées comme paramètre.+
 <code wlang> <code wlang>
 invoke math&racinecarre(nombre, resultat) invoke math&racinecarre(nombre, resultat)
 +
 </code> </code>
 +
  
 ==== let ==== ==== let ====
Ligne 417: Ligne 432:
  
 ==== Opérateurs ==== ==== Opérateurs ====
 +
 Les opérateurs du langage sont divisés selon 5 priorités, de la plus faible à la plus forte : Les opérateurs du langage sont divisés selon 5 priorités, de la plus faible à la plus forte :
-  * or and + 
-  * ''  <'''' >=   >'' (''#'' pour //différent//+  ''or and'' 
-  * '':'' (concaténation)+  * ''= # <nowiki><=</nowiki> >= < >''  (''#''  pour //différent//
 +  * '':''  (concaténation)
   * ''+ -''   * ''+ -''
-  * ''* / \ %'' (multiplication, division, ''\'' division entière, ''%'' modulo) +  * ''* / \ %''  (multiplication, division, ''\''  division entière, ''%''  modulo) 
-Les parenthèses ''( )'' permettent d'isoler une expression de l'opération en cours.\\ +Les parenthèses ''( )''  permettent d'isoler une expression de l'opération en cours. \\ Les opérations sont exécutées de la priorité la plus forte à la plus faible (//or//  //and//  en dernier, donc) 
-Les opérations sont exécutées de la priorité la plus forte à la plus faible (//or// //and// en dernier, donc)+
 <code wlang> <code wlang>
 declare a,b,c,d declare a,b,c,d
Ligne 432: Ligne 449:
 let a = b = 1 or b = 0 and c + d % 2 = 0 let a = b = 1 or b = 0 and c + d % 2 = 0
 ; autre syntaxe de la même expression pour montrer les priorités ; autre syntaxe de la même expression pour montrer les priorités
-let a = ( (b = 1) or ((b = 0) and ((c + (d % 2)) = 0) ) ) +let a = ( (b = 1) or ((b = 0) and ((c + (d % 2)) = 0) ) )
 ; a reçoit la valeur numérique associée à @true ou @false, selon le résultat de l'expression ; a reçoit la valeur numérique associée à @true ou @false, selon le résultat de l'expression
 ; lisible ; lisible
 let a = (b = 1) or (b = 99 and (c + d % 2 = 0)) let a = (b = 1) or (b = 99 and (c + d % 2 = 0))
 +
 +
 </code> </code>
 +
  
 ==== part ==== ==== part ====
Ligne 554: Ligne 574:
 Leur présence dans l'instruction [[#let|let]] à gauche du signe ''='' provoquera une erreur à la compilation.\\ Leur présence dans l'instruction [[#let|let]] à gauche du signe ''='' provoquera une erreur à la compilation.\\
 Les noms des variables @xxx est sensible à la casse ; elles sont toutes en minuscule. Les noms des variables @xxx est sensible à la casse ; elles sont toutes en minuscule.
-^ Nom ^ Libellé ^ Numéro pour instruction [[instrpcode|PSHA]] ^+^ Nom ^ Libellé ^ Numéro pour instruction [[referencepcode|PSHA]] ^
 | @varnull| Code du type de variable Null, retour de [[#typeof|typeof()]] => 1 | 1 | | @varnull| Code du type de variable Null, retour de [[#typeof|typeof()]] => 1 | 1 |
-| @varnumber| Code du type de variable Number, retour de [[w:instr:function#typeof|typeof()]] => 2 | 2 | +| @varnumber| Code du type de variable Number, retour de [[#typeof|typeof()]] => 2 | 2 | 
-| @vardynamic | Code du type de variable Dynamic, retour de [[w:instr:function#typeof|typeof()]] => 5 | 5 | +| @vardynamic | Code du type de variable Dynamic, retour de [[#typeof|typeof()]] => 5 | 5 | 
-| @varhashtable| Code du type de variable Hashtable, retour de [[w:instr:function#typeof|typeof()]] => 6 | 6 | +| @varhashtable| Code du type de variable Hashtable, retour de [[#typeof|typeof()]] => 6 | 6 | 
-| @varsubroutine| Code du type de variable Subroutine (sub et méthode de classes/objets), retour de [[w:instr:function#typeof|typeof()]] => 3 | 3 | +| @varsubroutine| Code du type de variable Subroutine (sub et méthode de classes/objets), retour de [[#typeof|typeof()]] => 3 | 3 | 
-| @varparam| Code du type de variable //paramètre//, retour de [[w:instr:function#typeof|typeof()]] => 4 | __**A preciser**__ 4 | +| @varparam| Code du type de variable //paramètre//, retour de [[#typeof|typeof()]] => 4 | __**A preciser**__ 4 | 
-| @varobjet| Code du type de variable classe/objet, retour de [[w:instr:function#typeof|typeof()]] => 7 | 7 |+| @varobjet| Code du type de variable classe/objet, retour de [[#typeof|typeof()]] => 7 | 7 |
 | @varbuffer| Code du type de variable buffer, réservé à un usage interne de W (piles...) => 8 | 8 | | @varbuffer| Code du type de variable buffer, réservé à un usage interne de W (piles...) => 8 | 8 |
 | @part| Valeur du tag de portion de code source en cours, 0 par défaut | 21 | | @part| Valeur du tag de portion de code source en cours, 0 par défaut | 21 |
Ligne 580: Ligne 600:
 | @endian | Endianess de l'architecture en cours d'exécution : 0 big-endian, 1 little-endian | 27 | | @endian | Endianess de l'architecture en cours d'exécution : 0 big-endian, 1 little-endian | 27 |
 | @os | Code de l'OS d'exécution du binaire : 10 Unix, 20 autre | 23 | | @os | Code de l'OS d'exécution du binaire : 10 Unix, 20 autre | 23 |
-| @number | Valeur de retour possible pour la fonction [[w:instr:function#type|type()]] => 2 | 40 | +| @number | Valeur de retour possible pour la fonction [[#type|type()]] => 2 | 40 | 
-| @dynamic | Valeur de retour possible pour la fonction [[w:instr:function#type|type()]] => 5 | 41 | +| @dynamic | Valeur de retour possible pour la fonction [[#type|type()]] => 5 | 41 | 
-| @empty | Valeur de retour possible pour la fonction [[w:instr:function#type|type()]] => 0 | 42 | +| @empty | Valeur de retour possible pour la fonction [[#type|type()]] => 0 | 42 | 
-| @trim | Paramètre pour la fonction [[w:instr:function#format|format()]] => 1 | 50 | +| @trim | Paramètre pour la fonction [[#format|format()]] => 1 | 50 | 
-| @left | Paramètre pour la fonction [[w:instr:function#format|format()]] => 2 | 51 | +| @left | Paramètre pour la fonction [[#format|format()]] => 2 | 51 | 
-| @right | Paramètre pour la fonction [[w:instr:function#format|format()]] => 3 | 52 | +| @right | Paramètre pour la fonction [[#format|format()]] => 3 | 52 | 
-| @center | Paramètre pour la fonction [[w:instr:function#format|format()]] => 4 | 53| +| @center | Paramètre pour la fonction [[#format|format()]] => 4 | 53| 
-| @surround | Paramètre pour la fonction [[w:instr:function#format|format()]] => 5 | 54 | +| @surround | Paramètre pour la fonction [[#format|format()]] => 5 | 54 | 
-| @asc | Paramètre pour la fonction [[w:instr::function#sortedsearch|sortedsearch]] => 1 | 55 | +| @asc | Paramètre pour la fonction [[#sortedsearch|sortedsearch]] => 1 | 55 | 
-| @desc | Paramètre pour la fonction [[w:instr::function#sortedsearch|sortedsearch]] => 2 | 56 |+| @desc | Paramètre pour la fonction [[#sortedsearch|sortedsearch]] => 2 | 56 |
 | @fm | Caractère séparateur de champ, par défaut => ''"0xFE"'' | 31 | | @fm | Caractère séparateur de champ, par défaut => ''"0xFE"'' | 31 |
 | @vm | Caractère séparateur de sous-champ, par défaut => ''"0xFD"'' | 32 | | @vm | Caractère séparateur de sous-champ, par défaut => ''"0xFD"'' | 32 |
 | @svm | Caractère pouvant servir de séparateur complémentaire => ''"0xFC"'' | 33 | | @svm | Caractère pouvant servir de séparateur complémentaire => ''"0xFC"'' | 33 |
 | @tm | Caractère pouvant servir de séparateur complémentaire => ''"0xFB"'' | 34 | | @tm | Caractère pouvant servir de séparateur complémentaire => ''"0xFB"'' | 34 |
-| @currfm | Caractère séparateur de champ en cours (modifiable avec l'instruction [[w:instr:setsep|setsep]]) | 35 | +| @currfm | Caractère séparateur de champ en cours (modifiable avec l'instruction [[#setsep|setsep]]) | 35 | 
-| @currvm | Caractère séparateur de sous-champ en cours (modifiable avec l'instruction [[w:instr:setsep|setsep]]) | 36 |+| @currvm | Caractère séparateur de sous-champ en cours (modifiable avec l'instruction [[#setsep|setsep]]) | 36 |
 | @cr | Caractère retour chariot, utilisé pour les saut de lignes Windows en complément de @lf (ascii 13) | 37 | | @cr | Caractère retour chariot, utilisé pour les saut de lignes Windows en complément de @lf (ascii 13) | 37 |
 | @lf | Caractère saut de ligne (ascii 10) | 38 | | @lf | Caractère saut de ligne (ascii 10) | 38 |
Ligne 606: Ligne 626:
 Attention : le signe ''-'' unaire n'est pas défini dans les expressions W. Pour utiliser un nombre négatif, il convient d'utiliser la fonction ''neg()''.\\ Attention : le signe ''-'' unaire n'est pas défini dans les expressions W. Pour utiliser un nombre négatif, il convient d'utiliser la fonction ''neg()''.\\
 **__A préciser__** comment utiliser les paramètres régionaux\\ **__A préciser__** comment utiliser les paramètres régionaux\\
-Lors des calculs, le résultat final, affecté à la variable, est arrondi à la précision courante, de 0 à 5 décimales, 5 étant la valeur par défaut. L'instruction [[w:instr:precision|precision]] permet de changer la précision.+Lors des calculs, le résultat final, affecté à la variable, est arrondi à la précision courante, de 0 à 5 décimales, 5 étant la valeur par défaut. L'instruction [[#precision|precision]] permet de changer la précision.
 Les chaines de caractères sont entourées soit par des quotes ''''' soit des double-quotes ''"''. A l'intérieur, un caractère peut être mis avec son code hexadécimal selon la forme ''#FF'' FF étant la valeur hexa du code, en majuscule (gamme 0-9A-F).\\ Les chaines de caractères sont entourées soit par des quotes ''''' soit des double-quotes ''"''. A l'intérieur, un caractère peut être mis avec son code hexadécimal selon la forme ''#FF'' FF étant la valeur hexa du code, en majuscule (gamme 0-9A-F).\\
 **__A préciser__** avec la prise en charge d'UTF8\\ **__A préciser__** avec la prise en charge d'UTF8\\
Ligne 664: Ligne 684:
  
 ===== Fonctions ===== ===== Fonctions =====
-Dans les expressions, utilisées lors des [[w:instr:let|affectations]] de variable et des tests ([[w:instr:ifthen|if then]]), un certain nombre de fonctions sont disponibles.+ 
 +Dans les expressions, utilisées lors des [[#let|affectations]] de variable et des tests ([[#ifthen|if then]], [[#breakon|breakon]], [[#continueon|continueon]], [[#returnon|returnon]]), un certain nombre de fonctions sont disponibles. 
 + 
 ==== abs ==== ==== abs ====
 Renvoie la valeur absolue de son paramètre. Le paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique. Renvoie la valeur absolue de son paramètre. Le paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique.
Ligne 720: Ligne 743:
 </code> </code>
 ==== format ==== ==== format ====
-Formate la valeur passée en 1er paramètre, selon le [[w:instr:varsys|format]] donné en 2ème paramètre. D'éventuels 3ème et 4ème paramètres sont à passer selon le format demandé.\\+Formate la valeur passée en 1er paramètre, selon le [[#varsys|format]] donné en 2ème paramètre. D'éventuels 3ème et 4ème paramètres sont à passer selon le format demandé.\\
 Si l'expression ne peut pas être convertie au format chaine (//Dynamic//), ou si un des paramètres attendus n'est pas au bon type, une exception est générée.\\ Si l'expression ne peut pas être convertie au format chaine (//Dynamic//), ou si un des paramètres attendus n'est pas au bon type, une exception est générée.\\
 Lorsqu'un caractère est attendu, c'est le premier qui est pris en compte si une chaine trop longue est donnée.\\ Lorsqu'un caractère est attendu, c'est le premier qui est pris en compte si une chaine trop longue est donnée.\\
Ligne 787: Ligne 810:
 ==== not ==== ==== not ====
 Renvoie le booléen contraire du paramètre. Le paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique.\\ Renvoie le booléen contraire du paramètre. Le paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique.\\
-En W, le booléen [[w:instr:varsys|@false]] vaut 0 et le booléen [[w:instr:varsys|@true]] vaut 1 (tout nombre différent de 0 est évalué à //vrai// dans les expressions).+En W, le booléen [[#varsys|@false]] vaut 0 et le booléen [[#varsys|@true]] vaut 1 (tout nombre différent de 0 est évalué à //vrai// dans les expressions).
 <code wlang> <code wlang>
 declare v declare v
Ligne 805: Ligne 828:
 ==== round ==== ==== round ====
 Arrondit le 1er paramètre à l'entier le plus proche, sur le nombre de décimales donné en 2ème paramètre. Le 1er paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique.\\ Arrondit le 1er paramètre à l'entier le plus proche, sur le nombre de décimales donné en 2ème paramètre. Le 1er paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique.\\
-Le 2ème paramètre, nombre de décimales, est optionnel. S'il est omis, c'est la valeur de la [[w:instr:precision|précision]] en cours qui est utilisée.+Le 2ème paramètre, nombre de décimales, est optionnel. S'il est omis, c'est la valeur de la [[#precision|précision]] en cours qui est utilisée.
 <code wlang> <code wlang>
 declare v declare v
Ligne 828: Ligne 851:
 </code> </code>
 ==== sortedsearch ==== ==== sortedsearch ====
-Fonction similaire à //search// si ce n'est qu'elle ne renvoie jamais //non trouvé// (0). Dans le cas où l'élément n'est pas trouvé, la fonction renvoie la position, en négatif, dans le champ/sous-champ ou il faudrait insérer l'élément cherché, pour conserver les champs/sous-champs triés, soit en croissant avec le paramètre [[w:instr:varsys|@asc]], soit décroissant avec [[w:instr:varsys|@desc]].\\+Fonction similaire à //search// si ce n'est qu'elle ne renvoie jamais //non trouvé// (0). Dans le cas où l'élément n'est pas trouvé, la fonction renvoie la position, en négatif, dans le champ/sous-champ ou il faudrait insérer l'élément cherché, pour conserver les champs/sous-champs triés, soit en croissant avec le paramètre [[#varsys|@asc]], soit décroissant avec [[#varsys|@desc]].\\
 Cette fonction permet de créer des listes triées, au fur et à mesure.\\ Cette fonction permet de créer des listes triées, au fur et à mesure.\\
 <code wlang> <code wlang>
Ligne 864: Ligne 887:
 ==== type ==== ==== type ====
 Renvoie le type de l'expression en paramètre : Renvoie le type de l'expression en paramètre :
-  * [[w:instr:varsys|@number]] si numérique +  * [[#varsys|@number]] si numérique 
-  * [[w:instr:varsys|@dynamic]] si chaine de caractère +  * [[#varsys|@dynamic]] si chaine de caractère 
-  * [[w:instr:varsys|@empty]] si valeur //vide//+  * [[#varsys|@empty]] si valeur //vide//
 <code wlang> <code wlang>
 declare v declare v
Ligne 875: Ligne 898:
 </code> </code>
 ==== typeof ==== ==== typeof ====
-Renvoie le type de la variable en paramètre (PAS d'une expression), valeurs [[w:instr:varsys|@varxxx]].\\+Renvoie le type de la variable en paramètre (PAS d'une expression), valeurs [[#varsys|@varxxx]].\\
 Si la variable est une imbrication de hashtable, seule la dernière sera évaluée. Si la variable est une imbrication de hashtable, seule la dernière sera évaluée.
 <code wlang> <code wlang>
  • reference.1775219201.txt.gz
  • Dernière modification : 2026/04/03 12:26
  • de root