서브루틴 및 함수
VBScript 서브루틴 및 함수
이 섹션에서는 Altum Designer VisualBasic 스크립트에서 서브루틴과 프로시저를 사용하는 방법을 개괄적으로 설명합니다.
프로시저에 매개변수 전달
매개변수를 받을 수 있는 함수 또는 서브루틴(프로시저/메서드)이 스크립트에 정의되어 있을 때, 변수는 ByRef 또는 ByVal를 사용하여 각각 참조에 의한 전달(by reference) 또는 값에 의한 전달(by value) 두 가지 방식으로 함수/서브루틴에 전달할 수 있습니다.
매개변수가 전달될 메서드를 선언하려면, Sub 또는 Function 문에서 함수/서브루틴을 정의할 때 매개변수 목록에 ByRef 또는 ByVal 키워드를 사용합니다. 예를 들어, 다음 코드 조각은 두 개의 매개변수를 받는 서브루틴을 정의합니다. 첫 번째는 값으로 전달되고 두 번째는 참조로 전달됩니다:
Sub Test (ByVal Param1 As Integer , ByRef B As String)
두 방식의 차이는 ByRef가 변수에 대한 참조를 전달하여, 서브루틴/함수가 매개변수로 전달된 실제 변수를 변경할 수 있게 한다는 점입니다. 이는 매개변수 전달의 기본 방식이며, 메서드가 명시적으로 선언되지 않은 경우 이 방식이 사용됩니다.
ByVal는 변수의 값만 전달합니다. 서브루틴 또는 함수는 이 값을 사용할 수 있지만, 전달된 원래 변수는 변경되지 않습니다.
다음 예제는 두 방식의 차이를 보여줍니다. 메인 프로시저는 다음과 같습니다:
Sub Main
Dim X, Y
X = 45 : Y = "Number"
Test X, Y ' Call to a subprocedure called Test.
MsgBox X
MsgBox Y
End Sub
위 프로시저에는 서브프로시저 Test 호출이 포함되어 있습니다 — 아래를 참조하세요.
서브루틴이 다음과 같이 정의되어 있다면:
Sub Test (ByRef A, ByRef B)
B = B & " = " & A : A = 10*A
End Sub
메인 프로시저의 변수 X 및 Y는 서브루틴에서 직접 참조됩니다. 그 결과 X 및 Y의 값이 서브루틴에 의해 변경되며, Test 실행 후에는 X = 450이고 Y = "Number = 45"가 됩니다. 이는 메서드가 명시적으로 선언되지 않았을 때의 기본 동작입니다.
하지만 서브루틴이 다음과 같이 정의되어 있다면:
Sub Test (ByVal A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Test 실행 후 메인 프로시저는 X = 45 및 Y = "Number"를 보고합니다 — 즉, 값이 변경되지 않은 채로 유지됩니다.
또는 서브루틴이 다음과 같이(혼합 방식으로) 정의되어 있다면:
Sub Test (ByRef A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Test 실행 후 X = 450이고 Y = "Number"가 됩니다. Y는 값으로 전달되었기 때문에 변경되지 않습니다.
호출 문에서 변수 이름을 괄호로 감싸면 함수 또는 서브루틴의 ByRef 설정을 재정의할 수 있습니다.
다음 문으로 Test를 호출하면:
Test (X), Y
...프로시저 정의에서 해당 매개변수에 대해 어떤 방식이 정의되어 있든 상관없이 변수 X는 값으로 전달됩니다.
날짜 및 시간 루틴
VBScript 언어는 아래에 요약된 날짜/시간 루틴 집합을 지원합니다:
|
|
|
|
|
|
|
|
|
|
|
|
파일 IO 루틴
VBScript 언어는 다음과 같은 파일 IO 루틴 집합을 지원합니다:
|
|
|
|
|
|
|
|
|
수학 루틴
VBScript 언어는 다음과 같은 수학 루틴 집합을 지원합니다:
|
|
|
|
|
|
|
|
|
|
|
|
문자열 루틴
VBScript 언어는 아래에 요약된 다양한 문자열 루틴을 지원합니다:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
서버 프로세스 루틴
서버 프로세스 루틴은 스크립트에서 프로세스를 다룰 때 사용되며, 특히 프로세스 매개변수에 대한 문자열을 추출(가져오기)하거나 설정해야 하는 경우에 사용됩니다.
스크립트에서 프로세스와 매개변수를 실행하려면 다음 함수를 사용합니다:
|
|
|
|
|
|
|
|
|
Useful functions
|
|
|
|
|
|
|
|
|
Useful Dialogs
|
|
|
|
|
|