Opérateurs
m (1 revision) |
m (New page: Comme dans tous les langages de programmation et de script, les opérateurs du langage de script AviSynth permettent la performance des actions (opérations) sur des [[Script_variables|var...) |
||
(One intermediate revision by one user not shown) | |||
Line 1: | Line 1: | ||
− | Comme dans tous les langages de programmation et de script, les opérateurs du langage de script AviSynth permettent | + | Comme dans tous les langages de programmation et de script, les opérateurs du langage de script AviSynth permettent la performance des actions (opérations) sur des [[Script_variables|variables]]. Les opérateurs forment la base pour construire des expressions, qui sont les blocs essentiels des scripts AviSynth. |
Les opérateurs d'AviSynth suivent à peu près les mêmes règles que les opérateurs en langage C, en ce qui concerne leur signification, leur priorités et leur associativité. Par à peu près, nous voulons dire qu'il y a des exceptions, qui sont indiquées ci-dessous. | Les opérateurs d'AviSynth suivent à peu près les mêmes règles que les opérateurs en langage C, en ce qui concerne leur signification, leur priorités et leur associativité. Par à peu près, nous voulons dire qu'il y a des exceptions, qui sont indiquées ci-dessous. |
Revision as of 20:58, 1 July 2008
Comme dans tous les langages de programmation et de script, les opérateurs du langage de script AviSynth permettent la performance des actions (opérations) sur des variables. Les opérateurs forment la base pour construire des expressions, qui sont les blocs essentiels des scripts AviSynth.
Les opérateurs d'AviSynth suivent à peu près les mêmes règles que les opérateurs en langage C, en ce qui concerne leur signification, leur priorités et leur associativité. Par à peu près, nous voulons dire qu'il y a des exceptions, qui sont indiquées ci-dessous.
Opérateurs disponibles par Type
Pour tous les types d'opérandes (clip, int, float, string, bool) vous pouvez utiliser les opérateurs suivants:
== | est égal |
!= | n'est pas égal |
<> | pas égal (alternative à !=, v2.07) |
Pour les types numériques (int, float) vous pouvez utiliser les opérateurs suivants spécifiques aux int/float:
+ | addition |
- | soustraction |
* | multiplication |
/ | division |
% | modulo |
>= | supérieur ou égal à |
<= | inférieur ou égal à |
< | inférieur à |
> | supérieur à |
Des versions antérieures d'AviSynth analysaient les expressions de la droite à la gauche, ce qui donnait des résultats inattendus. Par exemple:
- a = 10 - 5 - 5 donnait 10 - (5 - 5) = 10 au lieu de (10 - 5) - 5 = 0 !
- b = 100. / 2. / 4. donnait 100. / (2. / 4.) = 200 au lieu de (100. / 2.) / 4. = 12.5 !
Ces "bugs" ont été corrigés dans la v2.53!
Pour les types string vous pouvez utiliser les opérateurs suivants spécifiques aux strings:
+ | concaténer |
>= | supérieur ou égal à (v2.07) |
<= | inférieur ou égal à (v2.07) |
< | inférieur à (v2.07) |
> | supérieur à (v2.07) |
Pour les types clip vous pouvez utiliser les opérateurs suivants spécifiques aux clips:
+ | identique à la fonction UnalignedSplice |
++ | identique à la fonction AlignedSplice |
Pour les types bool (true/false) vous pouvez utiliser les opérateurs suivants spécifiques aux bools:
|| | ou |
&& | et |
?: | exécution de code conditionnelle |
L'opérateur d'exécution conditionnel est utilisé dans l'exemple suivant:
b = (a==true) ? 1 : 2
Ce qui signifie en pseudo-basic:
si (a=true) alors b=1 sinon b=2
A partir de la version v2.07, AviSynth propose une fonction NOP() qui peut être utilisée à l'intérieur d'un bloc d'exécution conditionnelle dans les cas ou le "sinon" n'est pas souhaité (comme un Import conditionnel ou LoadPlugin).
Priorités des Opérateurs
La priorité des opérateurs d'AviSynth est présentée dans le tableau ci-dessous. Les opérateurs les plus importants en haut du tableau ont une priorité supérieure. Les opérateurs à l'intérieur de la même ligne on le même ordre de priorité.
* | / | % | ||||
+ | ++ | - | ||||
< | > | <= | >= | != | <> | == |
&& | ||||||
|| | ||||||
?: |
Retour à la Syntaxe d'AviSynth.