Skip to content

API StrComp ko

Codex edited this page Oct 3, 2026 · 1 revision

StrComp

API · BASIC

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

ASC · Chr · len · StrComp

ClassicUO • Runtime API

이름이나 명령의 정확한 일치 여부와 순서를 비교합니다.

정확한 구문

StrComp(left:String, right:String) -> Integer

매개변수

  • left — 왼쪽 String.
  • right — 오른쪽 String. 둘 다 필수이며 세 번째 비교 모드 인수는 없습니다.

반환값

Integer -1/0/1은 앞/같음/뒤입니다. 대소문자를 구분하는 UTF-16 서수 비교입니다. Boolean이 아니므로 일치는 result = 0입니다. If StrComp(...)는 서로 다를 때 참입니다.

동작

  • 예제 데이터를 로컬에서 처리하고 값을 반환합니다. 채팅 전송, 스크립트 중지, 아이템 이동, 서버 통신은 하지 않습니다.
  • 언어에 의존하거나 언어별 정렬을 하지 않습니다. 대소문자를 무시하려면 LCase/UCase를 명시적으로 사용하세요. 입력은 바뀌지 않습니다.

내부 함수: 호출부터 결과까지

String.Compare의 Ordinal 비교 후 Math.Sign으로 -1, 0 또는 1을 만듭니다.

1. BasicStrComp / String.Compare / Math.Sign

String.Compare의 Ordinal 비교 후 Math.Sign으로 -1, 0 또는 1을 만듭니다.

Integer -1/0/1은 앞/같음/뒤입니다. 대소문자를 구분하는 UTF-16 서수 비교입니다. Boolean이 아니므로 일치는 result = 0입니다. If StrComp(...)는 서로 다를 때 참입니다.

프로젝트 소스: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; 함수 BasicStrComp / String.Compare / Math.Sign.

언어에 의존하거나 언어별 정렬을 하지 않습니다. 대소문자를 무시하려면 LCase/UCase를 명시적으로 사용하세요. 입력은 바뀌지 않습니다.

예제

명령 인식

# 명령 인식
#
# 이름이나 명령의 정확한 일치 여부와 순서를 비교합니다.
#
# Integer -1/0/1은 앞/같음/뒤입니다. 대소문자를 구분하는 UTF-16 서수 비교입니다. Boolean이 아니므로 일치는 result = 0입니다. If
# StrComp(...)는 서로 다를 때 참입니다.

SUB Main()
    # Trim/LCase가 " STOP "을 stop으로 만들고 0과 비교하면 True (1)입니다. 스크립트를 중지하지 않습니다.
    # 예제 데이터를 로컬에서 처리하고 값을 반환합니다. 채팅 전송, 스크립트 중지, 아이템 이동, 서버 통신은 하지 않습니다.

    Dim action = LCase(Trim(" STOP "))
    If StrComp(action, "stop") = 0 Then
        Return True
    End If
    Return False
END SUB

매개변수 및 실행 설명:

  • Trim/LCase가 " STOP "을 stop으로 만들고 0과 비교하면 True (1)입니다. 스크립트를 중지하지 않습니다.
  • 예제 데이터를 로컬에서 처리하고 값을 반환합니다. 채팅 전송, 스크립트 중지, 아이템 이동, 서버 통신은 하지 않습니다.

두 이름 정렬

# 두 이름 정렬
#
# 이름이나 명령의 정확한 일치 여부와 순서를 비교합니다.
#
# Integer -1/0/1은 앞/같음/뒤입니다. 대소문자를 구분하는 UTF-16 서수 비교입니다. Boolean이 아니므로 일치는 result = 0입니다. If
# StrComp(...)는 서로 다를 때 참입니다.

SUB Main()
    # zinc는 iron 뒤이므로 변수를 교환해 iron|zinc를 반환합니다.
    # 예제 데이터를 로컬에서 처리하고 값을 반환합니다. 채팅 전송, 스크립트 중지, 아이템 이동, 서버 통신은 하지 않습니다.

    Dim first = "zinc"
    Dim second = "iron"
    If StrComp(first, second) > 0 Then
        Dim saved = first
        first = second
        second = saved
    End If
    Return first & "|" & second
END SUB

매개변수 및 실행 설명:

  • zinc는 iron 뒤이므로 변수를 교환해 iron|zinc를 반환합니다.
  • 예제 데이터를 로컬에서 처리하고 값을 반환합니다. 채팅 전송, 스크립트 중지, 아이템 이동, 서버 통신은 하지 않습니다.

정확한 허용 이름 찾기

# 정확한 허용 이름 찾기
#
# 이름이나 명령의 정확한 일치 여부와 순서를 비교합니다.
#
# Integer -1/0/1은 앞/같음/뒤입니다. 대소문자를 구분하는 UTF-16 서수 비교입니다. Boolean이 아니므로 일치는 result = 0입니다. If
# StrComp(...)는 서로 다를 때 참입니다.

SUB Main()
    # ContainsExact가 | 목록을 순회해 Ore와 정확히 일치하면 True (1)입니다. ore는 Ore와 다릅니다.
    # 예제 데이터를 로컬에서 처리하고 값을 반환합니다. 채팅 전송, 스크립트 중지, 아이템 이동, 서버 통신은 하지 않습니다.

    Return ContainsExact("ore|Ore|wood", "Ore")
END SUB

Function ContainsExact(names, wanted)
    For index = 0 To GetWordCount(names, "|") - 1
        If StrComp(GetWord(names, index, "|"), wanted) = 0 Then
            Return True
        End If
    Next
    Return False
End Function

매개변수 및 실행 설명:

  • ContainsExact가 | 목록을 순회해 Ore와 정확히 일치하면 True (1)입니다. ore는 Ore와 다릅니다.
  • 예제 데이터를 로컬에서 처리하고 값을 반환합니다. 채팅 전송, 스크립트 중지, 아이템 이동, 서버 통신은 하지 않습니다.

Clone this wiki locally