Transform
다양한 수학 기능과 비트별 연산 그리고 ASCII/Unicode 변환 같은 작업을 수행합니다.
Transform, OutputVar, Cmd, Value1 [, Value2]
매개변수
- OutputVar
Cmd의 결과를 저장할 변수의 이름. SetFormat은 정수가 십육진수로 저장될지 아니면 십진수로 저장될지 결정합니다.
- Cmd, Value1/2
아래 리스트 참조.
Cmd, Value1, Value2
Cmd, Value1 그리고 Value2 매개변수는 서로 의존적입니다. 그리고 그 사용법은 아래에 기술합니다.
Unicode [, String]: (이 명령어는 유니코드 버전의 오토핫키에는 없습니다.) 클립보드의 유니코드 텍스트를 열람하거나 저장합니다. 주의: 전체 클립보드는 ClipboardAll을 사용하여 열람하고 저장할 수 있습니다. 이렇게 하면 클립보드의 원본 내용의 손실 없이 "Transform Unicode"가 작동할 수 있습니다.
다음 예제에 보여주는 바와 같이 두 가지 연산 모드가 있습니다:
Transform, OutputVar, Unicode ; 클립보드의 유니코드 텍스트를 UTF-8 문자열로 열람합니다. Transform, Clipboard, Unicode, %MyUTF_String% ; 유니코드 텍스트를 클립보드에 배치합니다.
위의 두 번째 예제에서 %MyUTF_String% 대신에, 기호 그대로의 UTF-8 문자열을 선택적으로 사용할 수 있습니다.
다음과 같은 핫키를 사용하면 주어진 유니코드 문자열에 상응하는 UTF-8 문자열을 알아낼 수 있습니다:
^!u:: ; Control+Alt+U 핫키. MsgBox 유니코드 텍스트를 클립보드에 복사한 다음, 이 창으로 돌아옵니다. 계속하려면 OK를 누르십시오. Transform, ClipUTF, Unicode Clipboard = Transform, Clipboard, Unicode, %ClipUTF%`r`n MsgBox 클립보드에 이제 다음 줄이 담겨 있습니다. 스크립트에 붙여 넣을 수 있습니다. 실행하면, 이 줄은 여러분이 복사한 원래의 유니코드 문자열을 클립보드에 배치합니다:`n`n%Clipboard% return
주의: Send {U+nnnn}
명령어는 유니코드 문자를 생산하는 또다른 방법입니다.
Asc, String: String의 첫 문자에 대하여 ASCII 코드를 열람합니다 (1부터 255 사이의 숫자). String이 비어 있으면, OutputVar도 비워집니다. 예를 들어: Transform, OutputVar, Asc, %VarContainingString%
. 상응하는 함수: Asc(String).
Chr, Value1: Value1로 지정한 ASCII 코드에 상응하는 문자 하나를 열람합니다. Value1이 1과 255 사이에 있지 않으면, OutputVar는 비워져서 문제가 있음을 나타냅니다. 예를 들어: Transform, OutputVar, Chr, 130
. 상응하는 함수: Chr(Number).
Deref, String: 변수 참조 그리고 다른 변수 안에 들어 있는 피신 연속열을 확대합니다. 형식이 나쁜 변수 참조는 확대 결과에서 생략됩니다. OutputVar가 자신으로 확대되는 경우에도 마찬가지입니다; 다른 말로, String의 변수 안에서 OutputVar를 참조하면 확대 결과로부터 제외됩니다 (그렇지만 String 자체는 %OutputVar%가 될 수 있습니다).
다음 예제에서, var1에 문자열 "test"가 담겨 있고 var2에 기호 그대로의 문자열 "%var1%"이 담겨 있다면, OutputVar는 문자열 "test"가 설정될 것입니다: Transform, OutputVar, deref, %var2%
.
함수 안에서, String 안의 각 변수는 언제나 지역 변수로 결정납니다. 단, 그런 변수가 없을 경우는 전역 변수로 결정됩니다 (또는 아무것도 없다면 비워집니다).
ANSI 실행파일에 대하여: 문자열(String)을 그의 HTML 동등물로 변환합니다. ASCII 값이 127이 넘는 문자를 상응하는 HTML 이름으로 변환합니다 (예, £는 £가 됩니다). 게다가, 다음 네 개의 "&<>
문자는 "&<>로 변환됩니다. 마지막으로, 각 라인피드(`n)는 <br>`n으로 변환됩니다 (즉, <br> 다음에 라인피드). Flags 매개변수는 무시됩니다.
유니코드 실행파일에 대하여: 위의 기능 말고도, Flags는 0이 되거나 아니면 다음 값들이 조합(합)이 될 수 있습니다. 생략하면, 기본값은 1입니다.
- 1: 어떤 문자들을 이름붙인 표현식으로 변환합니다. 예, €는
€
으로 변환됩니다 - 2: 어떤 문자들을 번호붙인 표현식으로 변환합니다. 예, €는
€
으로 변환됩니다
오직 비-ASCII 문자만 영향을 받습니다. Flags = 3이면, 번호붙인 표현식은 이름붙인 표현식이 사용 불가능할 경우에만 사용됩니다. 다음 문자들은 언제나 변환됩니다: <>"&
그리고 `n
(라인피드).
FromCodePage / ToCodePage: 비추천. 대신 StrPut() / StrGet()을 사용하십시오.
Mod, Dividend, Divisor: 나뉘는수(Dividend)를 나누는수(Divisor)로 나눈 나머지를 열람합니다. Divisor가 0이면, OutputVar는 비워집니다. Dividend와 Divisor가 모두 소수점을 담을 수 있습니다. 음수이면, Divisor는 계산을 위해 양수로 취급됩니다. 다음 예제에서, 결과는 2입니다: Transform, OutputVar, mod, 5, 3
. 상응하는 함수: Mod(Dividend, Divisor)
.
Pow, Base, Exponent: 밑수(Base)를 지수(Exponent) 제곱하여 열람합니다. Base와 Exponent 모두 소수점을 포함할 수 있습니다. Exponent가 음수이면, OutputVar는 부동 소수점 수로 포맷됩니다. Base와 Exponent 둘 다 정수라도 마찬가지입니다. 1.5와 같이 소수형 지수(Exponent)와 결합된 음의 Base는 지원하지 않습니다; 그러면 OutputVar가 비워집니다. 또 다음도 참조하십시오: ** operator.
Exp, N: e를 (대략 2.71828182845905) N 제곱해 열람합니다. N은 음수일 수 있으며 소수 점을 포함할 수 있습니다. 상응하는 함수: Exp(N).
Sqrt, Value1: Value1의 제곱근을 구합니다. Value1가 음수이면, OutputVar는 비워집니다. 상응하는 함수: Sqrt(Number).
Log, Value1: Value1의 (밑수가 10인) 상용 로그를 구합니다. Value1가 음수이면, OutputVar는 비워집니다. 상응하는 함수: Log(Number).
Ln, Vaue1: Value1의 (밑수가 e인) 자연 로그를 열람합니다. Value1이 음수이면, OutputVar는 비워집니다. 상응하는 함수: Ln(Number).
Round, Value1 [, N]: N을 생략하면, OutputVar는 Value1이 가장 가까운 정수로 반올림되어 설정됩니다. N이 양수이면, Value1은 N 소수점 자리에서 반올림됩니다. N이 음수이면, Value1는 N 자리만큼 소수점 왼쪽에서 반올림됩니다. 예를 들어, -1이면 첫 째 자리에서 반올림되고, -2이면 10이 자리에서, 그리고 -3이면 백의 자리에서 반올림됩니다. 주의: Round는 소수 자리에서 반올림할 때 뒤에 따르는 0을 제거하지 않습니다. 예를 들어, 12.333을 소수 첫 째 자리에서 반올림하면 12.300000이 됩니다. 이 행위는 연산을 하기 전에SetFormat, Float, 0.1
과 같이 설정하면 바꿀 수 있습니다 (실제로, SetFormat을 사용하면 첫 째 자리에서 Round를 사용할 필요조차 없습니다). 상응하는 함수: Round(Number [, N]).
Ceil, Value1: Value1을 가장 가까운 정수로 올림하여 열람합니다. 상응하는 함수: Ceil(Number).
Floor, Value1: Value1을 가장 가까운 정수로 내림하여 열람합니다. 상응하는 함수: Floor(Number).
Abs, Value1: Value1의 절대 값을 열람합니다. Value1에서 마이너스가 앞에 있다면 제거해 버리고 돌려줍니다. 상응하는 함수: Abs(Number).
Sin, Value1: Value1의 사인 값을 열람합니다. Value1은 호도로 표현되어야 합니다. 상응하는 함수: Sin(Number).
Cos, Value1: Value1의 코사인 값을 열람합니다. Value1은 호도로 표현되어야 합니다. 상응하는 함수: Cos(Number).
Tan, Value1: em>Value1의 탄젠트 값을 열람합니다. Value1은 호도로 표현되어야 합니다. 상응하는 함수: Tan(Number).
ASin, Value1: 호도 단위로 아크사인 값을 열람합니다 (Value1은 사인 값). Value1가 -1보다 작거나 1보다 크면, OutputVar는 비워집니다. 상응하는 함수: ASin(Number).
ACos, Value1: 호도 단위로 아크코사인을 열람합니다 (Value1은 코사인 값). Value1이 -1보다 작거나 1보다 크면, OutputVar는 비워집니다. 상응하는 함수: ACos(Number).
ATan, Value1: 호도 단위로 아크탄젠트를 열람합니다 (Value1은 탄젠트 값). 상응하는 함수: ATan(Number).
주의: 다음의 비트별 연산은 표현식에 사용하기 위해 더 간결한 비트별 연산자를 가지고 있습니다.
BitNot, Value1: Value1을 비트별로 뒤집어서 OutputVar에 저장합니다 (Value1이 부동 소수점 수이면, 계산 전에 정수로 잘라냅니다).
Value1이 0부터 4294967295 (0xffffffff) 사이이면, 부호 없는 32-비트 값으로 취급됩니다. 그렇지 않으면 부호 있는 64-비트 값으로 취급됩니다. 다음 예제에서, 그 결과는 0xfffff0f0 (4294963440)입니다: Transform, OutputVar, BitNot, 0xf0f
.
BitAnd, Value1, Value2: Value1과 Value2를 비트별-AND한 결과를 열람합니다 (부동 소수점 값은 계산 전에 정수로 잘려 나갑니다). 다음 예제에서, 그 결과는 0xff00 (65280)입니다: Transform, OutputVar, BitAnd, 0xff0f, 0xfff0
.
BitOr, Value1, Value2: Value1과 Value2를 비트별-OR한 결과를 열람합니다 (부동 소수점 값은 정수로 잘라 낸 다음 계산합니다). 다음 예제에서 그 결과는 0xf0f0 (61680)입니다: Transform, OutputVar, BitOr, 0xf000, 0x00f0
.
BitXOr, Value1, Value2:Value1고 Value2를 비트별-EXCLUSIVE-OR한 결과를 열람합니다 (부동 소수점 값은 정수로 잘라낸 다음 계산합니다). 다음 예제에서 그 결과는 0xff00 (65280)입니다: Transform, OutputVar, BitXOr, 0xf00f, 0x0f0f
.
BitShiftLeft, Value1, Value2: Value1을 왼쪽으로 Value2 비트 위치 만큼 이동한 결과를 열람합니다. 이 값은 Value1을 "Value2 제곱만큼 곱한" 것과 동등합니다.
(부동 소수점 값은 정수로 잘라낸 다음 계산합니다). 다음 예제에서 그 결과는 8입니다: Transform, OutputVar, BitShiftLeft, 1, 3
.
BitShiftRight, Value1, Value2: Value1을 오른쪽으로 Value2 비트 위치만큼 이동한 결과를 열람합니다. 이 값은 Value1을 " Value2 제곱만큼 나눈" 것과 동등합니다. 나머지는 잘라내 버립니다.
(부동 소수점 값은 정수로 잘라낸 다음 계산합니다). 다음 예제에서 그 결과는 2입니다: Transform, OutputVar, BitShiftRight, 17, 3
.
논평
숫치 매개변수를 받는 부-명령어는 그런 매개변수에 대하여 표현식도 받을 수 있습니다.
Value1 또는 Value2가 부동 소수점 수이면, 다음 명령어(Cmd)들은 정수가 아니라 부동 소수점 수를 열람합니다: Mod, Pow, Round, 그리고 Abs. 열람된 소수 부분의 자리수는 SetFormat으로 결정됩니다.
호도 값을 각도로 변환하려면, 180/pi (대략 57.29578)를 곱하십시오. 각도를 호도로 변환하려면 pi/180 (대략 0.01745329252)를 곱하십시오.
pi의 값은 (대략 3.141592653589793) 1 아크탄젠트의 4 배입니다.
관련 항목
SetFormat, 표현식, EnvMult, EnvDiv, StringLower, if var is type
예제
Transform, OutputVar, Asc, A ; 기호 A의 ASCII 코드를 얻습니다.