Funciones
A continuación se describen las sentencias de función comunes utilizadas por el lenguaje DelphiScript. El conjunto de funciones de DelphiScript se presenta en secciones para rutinas FileIO, rutinas matemáticas, rutinas de cadenas y rutinas de extensión.
Cálculo de expresiones con la función Evaluate
La función integrada EvaluateEvaluate(ProcNames[ProcIndex]);ProcNames[ProcIndex]
Para calcular una expresión de este tipo, puede usar el método EvaluateExpr
Evaluate('2+5'); Evaluate('((10+15)-5)/2*5'); Evaluate('sin(3.1415926/2)*10'); Evaluate('2.5*log(3)');
Paso de parámetros a funciones y procedimientos
Tanto las funciones como los procedimientos definidos en un script pueden declararse para aceptar parámetros. Además, las funciones se definen para devolver un valor. Los tipos de los parámetros en las declaraciones de procedimientos/funciones se ignoran y pueden omitirse. Por ejemplo, este código es correcto:
Function sum(a, b) : integer; Begin Result := a + b; End;
Salida de un procedimiento
DelphiScript proporciona las sentencias ExitBreak
Procedure DisplayName (s); Begin If s = '' Then Begin ShowMessage('Please enter a name'); Exit; End; ShowMessage(S + ' is shown'); End;
Rutinas de E/S de archivos
DelphiScript tiene las siguientes rutinas de E/S:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DelphiScript le permite escribir información en un archivo de texto y, como DelphiScript es un lenguaje no tipado, primero todos los valores deben convertirse en cadenas.
Aquí, las rutinas ReadReadLnWriteln(String)Write(S)Write(LineFeed + CarriageReturn)
Para escribir un archivo de texto, utilice los procedimientos 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;
Rutinas matemáticas
DelphiScript tiene las siguientes rutinas matemáticas:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rutinas de cadenas
DelphiScript tiene las siguientes rutinas de cadenas, que pueden manipular cadenas o caracteres. En la tabla siguiente solo se muestra un subconjunto de las rutinas de cadenas (la mayoría de las rutinas de cadenas utilizadas por DelphiScript se importan desde la unidad SysUtils de Embarcadero Delphi):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Las rutinas de cadenas que
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rutinas de extensión
Las rutinas de extensión se utilizan al trabajar con procesos del servidor (un comando es un proceso del servidor empaquetado con parámetros, si los hubiera) en scripts, especialmente si necesita extraer o establecer cadenas para los parámetros de los procesos. Algunas de las rutinas se enumeran a continuación.
Para ejecutar parámetros de procesos en un script, pueden ser necesarias las siguientes funciones:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Uso de conjuntos en DelphiScript
Las palabras clave SetIn+, -, *, <= >=
DelphiScript no tiene tipos de conjunto. Para usar conjuntos en scripts de DelphiScript, utilice las funciones integradas: MkSetMkSetRangeInSetSetUnionSetDifferenceSetIntersectionSubSet
Operadores de conjuntos
|
|
- |
|
* |
|
|
|
|
|
|
|
|
|
Función MkSet
La función MkSet
Font.Style = MkSet(fsBold,fsItalic);
Aquí, MkSet(fsBold,fsItalic) fsBoldfsItalic
Función MkSetRange
La función MkSetRange
LayerSet := MkSetRange(eTopLayer,eBottomLayer);
La función MkSetRange(eTopLayer,eBottomLayer)eTopLayereBottomLayer
Función InSet
Esta función InSetInA in BInSet(A, B)
If InSet(A,B) then ShowMessage('A is in B set') Else ShowMessage('A not in B set');
Función SetUnion
La función SetUnion + A + BSetUnion(A, B)
ASet := BSet + CSet; // should be changed to: ASet := SetUnion(BSet,CSet); // in order to achieve the desired script result.
Función SetDifference
La función SetDifference - A - BSetDifference(A, B)
Función SetIntersection
La función SetIntersection * A * BSetIntersection(A, B)
Función SubSet
La función SubSet<=A <= BSubSet(A, B)
Uso de controladores de excepciones
La palabra clave Try
Try-Finally
Con Try-Finally, las sentencias del bloque Finally siempre se ejecutan independientemente de si ocurre una excepción en el bloque Try, Exit o Break. Utilice el bloque Try-Finally para liberar objetos temporales y otros recursos y para realizar actividades de limpieza.
Normalmente, solo se necesita una sentencia Try-Finally en una subrutina.
Reset(F); Try // process file F Finally CloseFile(F); End;
Try-Except
Use Try-Except para manejar casos excepcionales. Por ejemplo, para capturar excepciones específicas y hacer algo útil con ellas, como registrarlas en un registro de errores o crear un cuadro de diálogo amigable. Dado que la palabra clave OnRaiseExcept
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Raise
La palabra clave RaiseTryRaise
Raise(Format('Invalid Value Entered : %d', [Height]));
Tenga en cuenta que, dado que la palabra clave OnException