Fonctions
Les déclarations de fonctions couramment utilisées dans le langage DelphiScript sont présentées ci-dessous. L'ensemble des fonctions DelphiScript est réparti en plusieurs sections : routines FileIO, routines mathématiques, routines de chaînes de caractères et routines d'extension.
Calcul d'expressions avec la fonction Evaluate
La fonction intégrée EvaluateEvaluate(ProcNames[ProcIndex]);ProcNames[ProcIndex]
Pour calculer une telle expression, vous pouvez utiliser la EvaluateExpr
Evaluate('2+5'); Evaluate('((10+15)-5)/2*5'); Evaluate('sin(3.1415926/2)*10'); Evaluate('2.5*log(3)');
Passage de paramètres aux fonctions et procédures
Les fonctions et les procédures définies dans un script peuvent être déclarées pour accepter des paramètres. De plus, les fonctions sont définies pour renvoyer une valeur. Les types de paramètres dans les déclarations de procédures/fonctions sont ignorés et peuvent être omis. Par exemple, ce code est correct :
Function sum(a, b) : integer; Begin Result := a + b; End;
Sortie d’une procédure
DelphiScript fournit ExitBreak
Procedure DisplayName (s); Begin If s = '' Then Begin ShowMessage('Please enter a name'); Exit; End; ShowMessage(S + ' is shown'); End;
Routines d'E/S de fichiers
DelphiScript dispose des routines d'E/S suivantes :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DelphiScript vous permet d'écrire des informations dans un fichier texte ; DelphiScript étant un langage non typé, toutes les valeurs doivent d'abord être converties en chaînes de caractères.
Ici, ReadReadLnWriteln(String)Write(S)Write(LineFeed + CarriageReturn)
Pour écrire un fichier texte, utilisez la AssignFileReWriteWritelnCloseFileAssignFileResetReadlnCloseFileTry / Finally / End
Var InputFile : TextFile; OutputFile : TextFile; I : Integer; Line : String; Begin AssignFile(OutputFile,eConvertedFile.Text); Rewrite(OutputFile); AssignFile(InputFIle,eOriginalFIle.Text); Reset(InputFile); Try While not EOF(InputFile) do Begin Readln(InputFile,Line); For I := 1 to Length(Line) Do Line[I] := UpperCase(Line[I]); Writeln(Outputfile, Line); End; Finally CloseFile(InputFile); CloseFile(OutputFile); End; End;
Fonctions mathématiques
DelphiScript dispose des routines mathématiques suivantes :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fonctions de traitement des chaînes
DelphiScript dispose des routines de chaînes suivantes, qui permettent de manipuler des chaînes ou des caractères. Seul un sous-ensemble de ces routines (la plupart de celles utilisées par DelphiScript sont importées de l'unité SysUtils d'Embarcadero Delphi) est présenté dans le tableau ci-dessous :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Les routines de chaînes de caractères
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Routines d’extension
Les routines d'extension sont utilisées lors de la gestion de processus serveur (une commande est un processus serveur encapsulé avec des paramètres, le cas échéant) dans les scripts, en particulier si vous devez extraire ou définir des chaînes de caractères pour les paramètres de ces processus. Certaines de ces routines sont répertoriées ci-dessous.
Pour exécuter les paramètres des processus dans un script, les fonctions suivantes peuvent être nécessaires :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Utilisation des ensembles dans DelphiScript
Embarcadero Delphi SetIn+, -, *, = >=
DelphiScript ne dispose pas de types d'ensembles. Pour utiliser des ensembles dans les scripts DelphiScript, utilisez les fonctions intégrées ; MkSetMkSetRangeInSetSetUnionSetDifferenceSetIntersectionSubSet
Opérateurs d'ensembles
|
|
- |
|
* |
|
|
|
|
|
|
|
|
|
Fonction MkSet
La MkSet
Font.Style = MkSet(fsBold,fsItalic);
Le MkSet(fsBold,fsItalic) fsBoldfsItalic
Fonction MkSetRange
La MkSetRange
LayerSet := MkSetRange(eTopLayer,eBottomLayer);
La MkSetRange(eTopLayer,eBottomLayer)eTopLayereBottomLayer
Fonction InSet
Cette InSetInA in BInSet(A, B)
If InSet(A,B) then ShowMessage('A is in B set') Else ShowMessage('A not in B set');
Fonction SetUnion
La SetUnion + A + BSetUnion(A, B)
ASet := BSet + CSet; // should be changed to: ASet := SetUnion(BSet,CSet); // in order to achieve the desired script result.
Fonction SetDifference
La SetDifference - A - BSetDifference(A, B)
Fonction SetIntersection
La SetIntersection * A * BSetIntersection(A, B)
Fonction SubSet
La SubSet=A = BSubSet(A, B)
Utilisation des gestionnaires d’exceptions
Le Try
Try-Finally
Avec Try-Finally, les instructions du bloc Finally sont toujours exécutées, qu’une exception du bloc Try, une instruction Exit ou une instruction Break se produise ou non. Utilisez le bloc Try-Finally pour libérer des objets temporaires et d’autres ressources, ainsi que pour effectuer des opérations de nettoyage.
En règle générale, une seule instruction Try-Finally est nécessaire dans une sous-routine.
Reset(F); Try // process file F Finally CloseFile(F); End;
Try-Except
Utilisez Try-Except pour gérer les cas d'exception. Par exemple, pour intercepter des exceptions spécifiques et en tirer parti, par exemple en les consignant dans un journal d'erreurs ou en affichant une boîte de dialogue conviviale. Étant donné que le OnRaiseExcept
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Raise
Le RaiseTryRaise
Raise(Format('Invalid Value Entered : %d', [Height]));
Notez que, le OnException