Format() [v1.1.17+]

가변 개수의 입력 값을 형식 문자열에 맞추어 포맷합니다.

String := Format(FormatStr , Values...)

매개변수

FormatStr

{Index:Format}의 형태로 기호 텍스트와 위치보유자로 구성된 형식 문자열 .

Index는 사용할 입력 값을 가리키는 정수입니다. 1이면 첫 번째 값입니다.

Format은, 아래에 기술하는 바와 같이, 선택적 형식 지정자입니다..

(이전에 문자열에 사용되었을지라도) 다음 입력 값을 연속열로 사용하려면 인덱스를 생략하십시오. 예를 들어, "{2:i} {:i}"는 두 번째와 세 번째 입력 값을 십진 정수로, 스페이스로 분리하여, 포맷합니다. Index를 생략하더라도, Format은 여전히 : 앞에 와야 합니다. 빈 활괄호를 지정하면 다음 입력 값을 기본 형식으로 사용할 수 있습니다: {}

{{}{}}를 사용하면 문자열에 문자 그대로의 활괄호를 포함할 수 있습니다. 다른 무효한 위치보유자는 결과에 있는 그대로 포함됩니다.

공백은 활괄호 안에 허용되지 않습니다 (플래그로서 나타나는 것은 예외).

Values

포맷되어 최종 문자열에 삽입될 입력 값들. 각 값은 별도의 매개변수입니다. 첫 값은 인덱스가 1입니다.

값 배열을 건네려면, 가변 함수 호출을 사용하십시오:

arr := [13, 240]
MsgBox % Format("{2:x}{1:02x}", arr*)

형식 지정자

각 형식 지정자는 (스페이스 없이) 순서대로 다음 구성요소를 포함할 수 있습니다:

Flags Width .Precision ULT Type

Flags: Zero or more flags from the flag table below to affect output justification and prefixes.

Width: 포맷 값의최소 너비를, 문자단위로 제어하는 십진 정수. 기본으로, 값들은 오른쪽에 정렬되고 스페이스가 패딩에 사용됩니다. 이것은- (왼쪽-정렬) 그리고 0 (zero prefix) 플래그를 사용하여 오버라이드 할 수 있습니다.

.Precision: 문자열의 최대 개수, 십진 자리수, 또는 출력될 유효 자리를 제어하는 십진 정수. 출력 유형에 따라 달라집니다. 앞에 반드시 십진 소수점이 있어야 합니다. 정밀도를 지정하면 값이 잘려 나가거나 올림 내림 처리됩니다. Output types and how each is affected by the precision value are as follows (see table below for an explanation of the different output types):

ULT [v1.1.20+]: 문자열 값에 적용할 대소문자 변환을 지정합니다 -- Upper, Lower 또는 Title. 유형이 s인 경우에만 유효합니다. 예를 들어 {:U} 또는 {:.20Ts}. 소문자 lt로 지원하지만, u는 부호없는 정수를 위해 예약되어 있습니다.

Type: A character from the type table below indicating how the input value should be interpreted. 생략하면, 기본값은 s입니다.

Flags

Flag의미
-

주어진 필드 너비 안에서 결과를 왼쪽 정렬합니다 (필요하면 스페이스를 오른쪽에 삽입합니다). For example, Format("{:-10}", 1) returns 1 .

If omitted, the result is right aligned within the given field width.

+

출력 결과가 부호 있는 유형이면 부호 (+ 또는 -)를 앞에 둘 수 있습니다. For example, Format("{:+d}", 1) returns +1.

If omitted, a sign appears only for negative signed values (-).

0

width 앞에 0이 있으면, 최소 너비에 도달할 때까지 앞쪽에 0이 추가됩니다. For example, Format("{:010}", 1) returns 0000000001. 0-가 모두 나타나면, 0이 무시됩니다. 0이 정수 형식으로 지정되고 (i, u, x, X, o, d) 그리고 정밀도도 지정되어 있으면 - 예를 들어, {:04.d} - 이 0은 무시됩니다.

If omitted, no padding occurs.

 

Use a space to prefix the output value with a single space if it is signed and positive. The space is ignored if both   and + flags appear. For example, Format("{: 05d}", 1) returns 0001.

If omitted, no space appears.

#

o, x, or X 형식과 사용될 때, # 플래그는 0이 아닌 출력 값 앞에 0, 0x, 또는 0X를 사용합니다. For example, Format("{:#x}", 1) returns 0x1.

e, E, f, a 또는 A 형식과 사용될 때, # 프래그는 강제로 출력 값이 소수점을 가지도록 만듭니다. For example, Format("{:#.0f}", 1) returns 1..

g 또는 G 형식과 사용될 때, # 플래그는 강제로 출력 값에 소수점을 포함하도록 만들고 뒤에 따르는 0을 자르지 못하도록 방지합니다.

c, d, i, u, 또는 s와 사용될 때는 무시됩니다.

Types

문자인자출력 형식
d 또는 i Integer 부호 있는 십진 정수. For example, Format("{:d}", 1.23) returns 1.
u Integer 부호 없는 십진 정수.
x or X Integer 부호 없는 십육진 정수; x의 격에 따라 "abcdef" 또는 "ABCDEF"를 사용합니다. 0x 접두사는 # 플래그가, {:#x}처럼 사용되어야 포함됩니다. SetFormat과 일관성이 있게 십육진 형식을 지정하려면, 0x{:x} 비슷한 형식을 사용하십시오. For example, Format("{:X}", 255) returns FF.
o Integer 부호 없는 팔진 정수. For example, Format("{:o}", 255) returns 377.
f Floating-point 부호 있는 값. 형태가 "[ - ]dddd.dddd"입니다. 여기에서 dddd는 하나 이상의 십진 자리입니다. 십진 소수점 앞의 자리수는 숫자의 크기에 따라 다릅니다. 그리고 십진 소수점 뒤의 자리수는 요청한 정밀도에 따라 달라집니다. For example, Format("{:.2f}", 1) returns 1.00.
e Floating-point Signed value that has the form [ - ]d.dddd e [sign]dd[d] where d is one decimal digit, dddd is one or more decimal digits, dd[d] is two or three decimal digits depending on the output format and size of the exponent, and sign is + or -. For example, Format("{:e}", 255) returns 2.550000e+002.
E Floating-point e 형식과 동일합니다. 단, e 말고 E는 지수를 초래합니다.
g Floating-point 부호 있는 값은 f 또는 e 형식으로 보여집니다. 어느 쪽이든 주어진 값과 정밀도에 대하여 더 간결합니다. e 형식은 값의 지수가 -4보다 작거나 precision 인자보다 크거나 같을 경우에만 사용됩니다. 뒤따르는 0은 잘려 나가고, 십진 소수점은 다음에 하나 이상의 자리가 따라올 때만 나타납니다..
G Floating-point g 형식과 동일합니다. 단, e말고 E이면 지수가 초래됩니다.
a Floating-point 부호 있는 십육진 배-정밀로 부동 소수점 값. 형태는 "[?]0xh.hhhh pdd"입니다. 여기에서 h.hhhh는 가수(mantissa)의 십육진 자리입니다 (소문자 기호 사용). 그리고 dd는 지수를 위한 하나 이상의 자리입니다. 정밀도는 소수점 다음의 자리 수를 지정합니다. For example, Format("{:a}", 255) returns 0x1.fe0000p+7.
A Floating-point a 형식과 동일합니다. 단, p 말고 P는 지수를 초래합니다.
p Integer 메모리 주소로서의 인자를 십육진 자리수로 표시합니다. For example, Format("{:p}", 255) returns 000000FF.
s String 문자열을 지정합니다. 입력 값이 숫치이면, 스크립트의 현재 숫자 형식을 사용하여 자동으로 문자열로 변환됩니다. 그 다음에 WidthPrecision 인자가 적용됩니다.
c Character code 서수 값으로 문자 하나를 지정합니다. Chr(n)과 비슷합니다. 입력 값이 예상 범위를 벗어나면, 반올림 됩니다. For example, Format("{:c}", 116) returns t.

논평

printf와 다르게, 크기 지정자는 지원되지 않습니다. 모든 정수와 부동 소수점 값은 64-비트입니다.

SetFormat, FormatTime

예제

Demonstrates different usages.

; 간단한 교체
s .= Format("{2}, {1}!`r`n", "World", "Hello")
; 스페이스로 덧댐
s .= Format("|{:-10}|`r`n|{:10}|`r`n", "Left", "Right")
; 십육진수
s .= Format("{1:#x} {2:X} 0x{3:x}`r`n", 3735928559, 195948557, 0)
; 부동-소수점 수
s .= Format("{1:0.3f} {1:.10f}", 4*ATan(1))

ListVars  ; 오토핫키의 메인 창을 사용하여 단일폭 텍스트를 보여줍니다.
WinWaitActive ahk_class AutoHotkey
ControlSetText Edit1, %s%
WinWaitClose