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 안의 각 변수는 언제나 지역 변수로 결정납니다. 단, 그런 변수가 없을 경우는 전역 변수로 결정됩니다 (또는 아무것도 없다면 비워집니다).

HTML, String [, Flags]:

ANSI 실행파일에 대하여: 문자열(String)을 그의 HTML 동등물로 변환합니다. ASCII 값이 127이 넘는 문자를 상응하는 HTML 이름으로 변환합니다 (예, £는 &pound;가 됩니다). 게다가, 다음 네 개의 "&<> 문자는 &quot;&amp;&lt;&gt;로 변환됩니다. 마지막으로, 각 라인피드(`n)는 <br>`n으로 변환됩니다 (즉, <br> 다음에 라인피드). Flags 매개변수는 무시됩니다.

유니코드 실행파일에 대하여: 위의 기능 말고도, Flags는 0이 되거나 아니면 다음 값들이 조합(합)이 될 수 있습니다. 생략하면, 기본값은 1입니다.

  • 1: 어떤 문자들을 이름붙인 표현식으로 변환합니다. 예, €는 &euro;으로 변환됩니다
  • 2: 어떤 문자들을 번호붙인 표현식으로 변환합니다. 예, €는 &#8364;으로 변환됩니다

오직 비-ASCII 문자만 영향을 받습니다. Flags = 3이면, 번호붙인 표현식은 이름붙인 표현식이 사용 불가능할 경우에만 사용됩니다. 다음 문자들은 언제나 변환됩니다: <>"& 그리고 `n (라인피드).

FromCodePage / ToCodePage: 비추천. 대신 StrPut() / StrGet()을 사용하십시오.

Mod, Dividend, Divisor: 나뉘는수(Dividend)를 나누는수(Divisor)로 나눈 나머지를 열람합니다. Divisor가 0이면, OutputVar는 비워집니다. DividendDivisor가 모두 소수점을 담을 수 있습니다. 음수이면, Divisor는 계산을 위해 양수로 취급됩니다. 다음 예제에서, 결과는 2입니다: Transform, OutputVar, mod, 5, 3. 상응하는 함수: Mod(Dividend, Divisor).

Pow, Base, Exponent: 밑수(Base)를 지수(Exponent) 제곱하여 열람합니다. BaseExponent 모두 소수점을 포함할 수 있습니다. Exponent가 음수이면, OutputVar는 부동 소수점 수로 포맷됩니다. BaseExponent 둘 다 정수라도 마찬가지입니다. 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을 생략하면, OutputVarValue1이 가장 가까운 정수로 반올림되어 설정됩니다. N이 양수이면, Value1N 소수점 자리에서 반올림됩니다. N이 음수이면, Value1N 자리만큼 소수점 왼쪽에서 반올림됩니다. 예를 들어, -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: Value1Value2를 비트별-AND한 결과를 열람합니다 (부동 소수점 값은 계산 전에 정수로 잘려 나갑니다). 다음 예제에서, 그 결과는 0xff00 (65280)입니다: Transform, OutputVar, BitAnd, 0xff0f, 0xfff0.

BitOr, Value1, Value2: Value1Value2를 비트별-OR한 결과를 열람합니다 (부동 소수점 값은 정수로 잘라 낸 다음 계산합니다). 다음 예제에서 그 결과는 0xf0f0 (61680)입니다: Transform, OutputVar, BitOr, 0xf000, 0x00f0.

BitXOr, Value1, Value2:Value1Value2를 비트별-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 코드를 얻습니다.
선택 | 내려받기