Các hàm
Các câu lệnh hàm thông dụng được sử dụng trong ngôn ngữ DelphiScript sẽ được trình bày dưới đây. Các hàm của DelphiScript được chia thành các phần riêng biệt dành cho các hàm xử lý tệp (FileIO), các hàm toán học (Math), các hàm chuỗi (String) và các hàm mở rộng (Extension).
Tính toán biểu thức bằng hàm Evaluate
Hàm tích hợp EvaluateEvaluate(ProcNames[ProcIndex]);ProcNames[ProcIndex]
Để tính toán biểu thức như vậy, bạn có thể sử dụng EvaluateExpr
Evaluate('2+5'); Evaluate('((10+15)-5)/2*5'); Evaluate('sin(3.1415926/2)*10'); Evaluate('2.5*log(3)');
Truyền tham số cho hàm và thủ tục
Cả hàm và thủ tục được định nghĩa trong tập lệnh đều có thể được khai báo để chấp nhận tham số. Ngoài ra, các hàm được định nghĩa để trả về một giá trị. Các kiểu tham số trong khai báo thủ tục/hàm sẽ bị bỏ qua và có thể được bỏ qua. Ví dụ, đoạn mã sau đây là đúng:
Function sum(a, b) : integer; Begin Result := a + b; End;
Thoát khỏi thủ tục
DelphiScript cung cấp ExitBreak
Procedure DisplayName (s); Begin If s = '' Then Begin ShowMessage('Please enter a name'); Exit; End; ShowMessage(S + ' is shown'); End;
Các hàm xử lý tệp
DelphiScript có các hàm IO sau:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DelphiScript cho phép bạn ghi thông tin vào tệp văn bản, và vì DelphiScript là ngôn ngữ không phân loại, tất cả các giá trị phải được chuyển đổi thành chuỗi trước tiên.
Ở đây, ReadReadLnWriteln(String)Write(S)Write(LineFeed + CarriageReturn)
Để ghi ra một tệp văn bản, hãy sử dụng hàm 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;
Các hàm toán học
DelphiScript có các hàm toán học sau:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hàm chuỗi
DelphiScript có các hàm xử lý chuỗi sau đây, cho phép thao tác với chuỗi hoặc ký tự. Chỉ một phần nhỏ các hàm xử lý chuỗi (hầu hết các hàm xử lý chuỗi được DelphiScript sử dụng đều được nhập từ đơn vị SysUtils của Embarcadero Delphi) được liệt kê trong bảng dưới đây:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Các hàm xử lý chuỗi được
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Các hàm mở rộng
Các hàm mở rộng được sử dụng khi xử lý các quy trình máy chủ (một lệnh là một quy trình máy chủ được đóng gói kèm theo các tham số, nếu có) trong các tập lệnh, đặc biệt là khi bạn cần trích xuất hoặc thiết lập các chuỗi cho các tham số của quy trình. Một số hàm được liệt kê dưới đây.
Để thực thi các tham số của quy trình trong tập lệnh, có thể cần đến các hàm sau:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sử dụng tập hợp (Sets) trong DelphiScript
Embarcadero Delphi's SetIn+, -, *, = >=
DelphiScript không có kiểu tập hợp. Để sử dụng tập hợp trong các tập lệnh DelphiScript, hãy sử dụng các hàm tích hợp sẵn; MkSetMkSetRangeInSetSetUnionSetDifferenceSetIntersectionSubSet
Các toán tử tập hợp
|
|
- |
|
* |
|
|
|
|
|
|
|
|
|
Hàm MkSet
Hàm MkSet
Font.Style = MkSet(fsBold,fsItalic);
Dấu MkSet(fsBold,fsItalic) fsBoldfsItalic
Hàm MkSetRange
Hàm MkSetRange
LayerSet := MkSetRange(eTopLayer,eBottomLayer);
Hàm MkSetRange(eTopLayer,eBottomLayer)eTopLayereBottomLayer
Hàm InSet
Hàm InSetInA in BInSet(A, B)
If InSet(A,B) then ShowMessage('A is in B set') Else ShowMessage('A not in B set');
Hàm SetUnion
Hàm SetUnion + A + BSetUnion(A, B)
ASet := BSet + CSet; // should be changed to: ASet := SetUnion(BSet,CSet); // in order to achieve the desired script result.
Hàm SetDifference
Hàm SetDifference - A - BSetDifference(A, B)
Hàm SetIntersection
Hàm SetIntersection * A * BSetIntersection(A, B)
Hàm SubSet
Hàm SubSet=A = BSubSet(A, B)
Sử dụng trình xử lý ngoại lệ
Từ khóa Try
Try-Finally
Với Try-Finally, các câu lệnh trong khối Finally luôn được thực thi bất kể có xảy ra ngoại lệ từ khối Try, lệnh Exit hay Break hay không. Sử dụng khối Try-Finally để giải phóng các đối tượng tạm thời và các tài nguyên khác, cũng như thực hiện các hoạt động dọn dẹp.
Thông thường, chỉ cần một câu lệnh Try-Finally trong một hàm con.
Reset(F); Try // process file F Finally CloseFile(F); End;
Try-Except
Sử dụng Try-Except để xử lý các trường hợp ngoại lệ. Ví dụ: để bắt các ngoại lệ cụ thể và thực hiện các thao tác hữu ích với chúng, chẳng hạn như ghi chúng vào nhật ký lỗi hoặc tạo một hộp thoại thân thiện. Vì OnRaiseExcept
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Raise
Từ RaiseTryRaise
Raise(Format('Invalid Value Entered : %d', [Height]));
Lưu ý rằng vì OnException