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 |