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 출력 정렬과 접두사에 영향을 줍니다: - + 0 space #

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

.Precision: 문자열의 최대 개수, 십진 자리수, 또는 출력될 유효 자리를 제어하는 십진 정수. 출력 유형에 따라 달라집니다. 앞에 반드시 십진 소수점이 있어야 합니다. 정밀도를 지정하면 값이 잘려 나가거나 올림 내림 처리됩니다.

  • f, e, E: Precision는 십진 소수점 다음의 자리수를 지정합니다. 기본 값은 6입니다.
  • g, G: Precision는 유효 자리의 최대 개수를 지정합니다. 기본 값은 6입니다.
  • s: Precision는 인쇄될 문자의 최대 개수를 지정합니다. 이 값을 초과하는 문자들은 인쇄되지 않습니다.
  • 정수 유형에 대하여 (d, i, u, x, X, o), Precision는 접두사가 0인 너비(Width)처럼 행동하고 기본 값은 1입니다.

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

Type: 입력 값을 어떻게 번역할지 나타내는 문자. 생략하면, 기본값은 s입니다.

플래그의미기본 행위
- 주어진 필드 너비 안에서 결과를 왼쪽 정렬합니다 (필요하면 스페이스를 오른쪽에 삽입합니다). 오른쪽 정렬.
+ 출력 결과가 부호 있는 유형이면 부호 (+ 또는 -)를 앞에 둘 수 있습니다. 부호는 음의 부호 값일 경우에만 나타납니다 (-).
0 width 앞에 0이 있으면, 최소 너비에 도달할 때까지 앞쪽에 0이 추가됩니다. 0-가 모두 나타나면, 0이 무시됩니다. 0이 정수 형식으로 지정되고 (i, u, x, X, o, d) 그리고 정밀도도 지정되어 있으면 - 예를 들어, {:04.d} - 이 0은 무시됩니다. 패딩 없음.
space 스페이스 하나를 사용하면 출력 결과가 양의 값일 경우 앞에 스페이스를 하나 둘 수 있습니다. 스페이스와 + 플래그가 모두 나타나면 그 스페이스는 무시됩니다. . 스페이스 나타나지 않음.
#

o, x, or X 형식과 사용될 때, # 플래그는 0이 아닌 출력 값 앞에 0, 0x, 또는 0X를 사용합니다.

e, E, f, a 또는 A 형식과 사용될 때, # 프래그는 강제로 출력 값이 소수점을 가지도록 만듭니다.

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

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

문자인자출력 형식
d 또는 i Integer 부호 있는 십진 정수.
u Integer 부호 없는 십진 정수.
x or X Integer 부호 없는 십육진 정수; x의 격에 따라 "abcdef" 또는 "ABCDEF"를 사용합니다. 0x 접두사는 # 플래그가, {:#x}처럼 사용되어야 포함됩니다. SetFormat과 일관성이 있게 십육진 형식을 지정하려면, 0x{:x} 비슷한 형식을 사용하십시오.
o Integer 부호 없는 팔진 정수.
f Floating-point 부호 있는 값. 형태가 [ - ]dddd.dddd입니다. 여기에서 dddd는 하나 이상의 십진 자리입니다. 십진 소수점 앞의 자리수는 숫자의 크기에 따라 다릅니다. 그리고 십진 소수점 뒤의 자리수는 요청한 정밀도에 따라 달라집니다.
e Floating-point 부호 있는 값. 형태가 [ - ]d.dddd e [sign]dd[d] 입니다. 여기에서 d는 하나의 십진 자리이고, dddd는 하나 이상의 십진 자리이며, dd[d]는 두 세 개의 십진 자리로서 출력 형식과 지수의 크기, 그리고 부호가 +인가 - 인가에 따라 달라집니다.
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는 지수를 위한 하나 이상의 자리입니다. 정밀도는 소수점 다음의 자리 수를 지정합니다.
A Floating-point a 형식과 동일합니다. 단, p 말고 P는 지수를 초래합니다.
p Integer 메모리 주소로서의 인자를 십육진 자리수로 표시합니다.
s String 문자열을 지정합니다. 입력 값이 숫치이면, 스크립트의 현재 숫자 형식을 사용하여 자동으로 문자열로 변환됩니다. 그 다음에 WidthPrecision 인자가 적용됩니다.
c Character code 서수 값으로 문자 하나를 지정합니다. Chr(n)과 비슷합니다. 입력 값이 예상 범위를 벗어나면, 반올림 됩니다.

논평

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

관련 항목

SetFormat, FormatTime

예제

; 간단한 교체
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
선택 | 내려받기