PRACTICE script에서 문자열(string)을 변형하고 조작하는 기능을 사용할 수 있다.
문자열에 대한 정보
STRing.CHAR
Extract a character
syntax | STRing.CHAR("<string>",<index>)
|
return type | Hex |
"<string>"
내에서 <index>
위치의 character 하나를 반환한다.
만약 <index>
가 "<string>"
의 길이를 넘어간다면 0xFFFFFFFFFFFFFFFF
(=-1
)를 반환한다.
PRINT STRing.CHAR("abcdef",2.) // 0x63 (=> 'c')
|
STRing.LENgth
Length of string
syntax | STRing.LENgth("<string>")
|
return type | Decimal |
"<string>"
의 문자열 길이를 반환한다.
PRINT STRing.LENgth("abcdef") // 6
|
문자열 변형
STRing.CUT
Cut string from left or right
syntax | STRing.CUT("<string>",<length>)
|
return type | String |
"<string>"
의 앞/뒤를 <length>
길이만큼 자른다. <length>
가 양수일 경우 앞을 자르고, 음수일 경우 뒤를 자른다.
PRINT STRing.CUT("abcdef",2.) // "cdef"
PRINT STRing.CUT("abcdef",-2.) // "abcd"
|
STRing.MID
Extract part of string
syntax | STRing.MID("<string>",<start_at>,<length>)
|
return type | String |
"<string>"
을 <start_at>
위치부터 <length>
길이만큼 자른다.
PRINT STRing.MID("abcdef",2.,2.) // "cd"
PRINT STRing.MID("abcdef",6.,6.) // ""
|
STRing.LoWeR
String to lowercase
syntax | STRing.LoWeR("<string>")
|
return type | String |
"<string>"
을 소문자로 모두 변형한 문자열을 반환한다.
PRINT STRing.LoWeR("AbCdEf") // "abcdef"
|
STRing.UPpeR
String to uppercase
syntax | STRing.UPpeR("<string>")
|
return type | String |
"<string>"
을 대문자로 모두 변형한 문자열을 반환한다.
PRINT STRing.UPpeR("AbCdEf") // "ABCDEF"
|
STRing.TRIM
String without leading and trailing whitespaces
syntax | STRing.TRIM("<string>")
|
return type | String |
"<string>"
앞뒤의 모든 공백을 제거한 문자열을 반환한다.
PRINT STRing.TRIM(" abcdef ") // "abcdef"
|
STRing.Replace
Modified string after search operation
syntax | STRing.Replace("<source_string>","<search_string>", |
return type | String |
"<source_string>"
내 등장하는 "<search_string>"
을 "<replace_string>"
로 대체한다. <no_replaces>
는 대체하는 횟수를 지정한다.
- 0일 때에는 모든
"<search_string>"
을 대체한다. - 양수일 때에는
"<search_string>"
이"<source_string>"
의 앞에서부터 등장하는 순서대로<no_replaces>
횟수만큼 대체한다. - 음수일 때에는 반대로 뒤에서부터 등장하는 순서대로 대체한다.
PRINT STRing.Replace("abcd_abcd_abcd_abcd","ab","12",0.)
// 12cd_12cd_12cd_12cd
PRINT STRing.Replace("abcd_abcd_abcd_abcd","ab","",2.)
// cd_cd_abcd_abcd
PRINT STRing.Replace("abcd_abcd_abcd_abcd","acb","abc",0.)
// abcd_abcd_abcd_abcd
PRINT STRing.Replace("abcd_abcd_abcd_abcd","cd","34",-2.)
// abcd_abcd_ab34_ab34
|
문자열와의 비교
STRing.ComPare
Check if string matches pattern
syntax | STRing.ComPare("<string>","<pattern>")
|
return type | Boolean |
"<string>"
이 "<pattern>"
에 부합하는지 여부를 반환한다. 이때 "<pattern>"
은 '*
'와 '?
' string wildcard를 포함할 수 있는 string이다.
- '
*
'은 0개 이상의 character, - '
?
'은 어떤 1개의 character를 의미한다.
PRINT STRing.ComPare("one two three", "*two*") // TRUE
|
STRing.COUNT
Substring occurrences
syntax | STRing.COUNT("<string>","<substring>")
|
return type | Decimal |
"<string>"
내에서 "<substring>"
이 확인되는 횟수를 반환한다.
PRINT STRing.COUNT("hello world", "l") // 3
PRINT STRing.COUNT("hello world", "ll") // 1
|
STRing.FIND
Check if search characters are found within string
syntax | STRing.FIND("<string1>","<string2>")
|
return type | Boolean |
"<string1>"
와 "<string2>"
간 공유되는 문자가 존재하는지 여부를 반환한다.
PRINT STRing.FIND("abcdef","alphabet") // TRUE
PRINT STRing.FIND("abcdef","xyz") // FALSE
|
예를 들어, STRing.FIND
는 어떤 파일 이름에 포함되지 않아야 할 문자가 포함되는지 파악하는데 유용하게 쓰인다.
ENTRY &filename
&blackList="\/:*?""<>| -"
IF STRing.FIND("&filename","&blacklist")==TRUE()
(
PRINT "filename contains illegal characters"
)
|
STRing.SCAN
Offset of the found string
syntax | STRing.SCAN("<source_string>","<search_string>", |
return type | Hex |
"<source_string>"
의 <start_at>
위치부터 "<search_string>"
이 처음으로 등장하는 위치를 반환한다. 만약 "<search_string>"
이 등장하지 않는다면 -1
이 반환된다.
PRINT STRing.SCAN("abcdefabcdef","def",6.) // 9
PRINT STRing.SCAN("abcdefabcdef","edf",0.) // -1
|
STRing.SCANBack
Offset of the found string
syntax | STRing.SCANBack("<source_string>","<search_string>", |
return type | Hex |
STRing.SCAN
의 반대 방향으로 scan을 진행한다. 즉, <start_at>
위치부터 왼쪽의 방향으로 "<search_string">
이 처음 등장하는 위치를 반환한다.
PRINT STRing.SCANBack("aaaaa","aaa",4.) // 2
PRINT STRing.SCANBack("aaaaa","aaa",3.) // 1
PRINT STRing.SCANBack("aaaaa","aaa",1.) // -1
PRINT STRing.SCANBack("aaaaa","aaa",STRing.LENgth("aaaaa")-1) // 2
|
STRing.SPLIT
Return element from string list
syntax | STRing.SPLIT("<string>","<separator>",<index>)
|
return type | String |
"<string>"
을 "<separator>"
기준으로 분리했을 때, <index>
번 째의 element를 반환한다. 만약 <index>
값이 음수라면 뒤에서부터의 순서를 의미한다.
단, 0
일 때는 왼쪽→오른쪽 방향의 첫 번째 element를 의미하지만 -1
일 때는 왼쪽←오른쪽 방향의 첫 번째 element를 의미한다.
PRINT STRing.SPLIT("C:\T32\demo\arm","\",2.) // "demo"
PRINT STRing.SPLIT("C:\T32\demo\arm","\",-1.) // "arm"
PRINT STRing.SPLIT("C:\T32\demo\arm","demo",0.) // "C:\T32\"
|
'기타 > SCRIPT' 카테고리의 다른 글
[PRACTICE] 흐름 제어 (Flow Control) (0) | 2022.05.09 |
---|---|
[PRACTICE] 변수 사용 (0) | 2022.05.07 |
[PRACTICE] Basics (0) | 2022.05.06 |
[PRACTICE] 조건문과 반복문 (0) | 2022.05.06 |
VSCode에서 cmm script 작성하기 (0) | 2022.05.04 |