Share
Sign In
PML BASIC
Pml Basic 4 - Logical Functions
B
Bito
👍
GPTS로 학습시킨후 뽑아낸 글입니다 어색만 부분이나 있을수 있습니다
오류 있으면 댓글 달아주세요 추후 수정 예정입니다.**
PML에서의 논리 함수
PML(Programming Macro Language)에서 Logical Fucntions는 주어진 조건에 따라 논리값을 반환하는 함수들입니다. 이 함수들을 사용하면 다양한 조건 검사를 수행하고, 그 결과에 따라 프로그램의 흐름을 제어할 수 있습니다. 아래는 각 논리 함수에 대한 설명과 예제입니다.
1. BADREF 함수
개요: BADREF(id)id가 유효하지 않으면 TRUE를, 유효하면 FALSE를 반환합니다.
예제:이 예제는 TREF가 유효한지 확인합니다.
VAR !TREF nulref IF (BADREF($!TREF)) THEN $P 'TREF is invalid' ELSE $P 'TREF is valid' ENDIF
2. DEFINED 및 UNDEFINED 함수
개요:
DEFINED(variable_name)는 변수나 배열 요소가 정의되어 있으면 TRUE를 반환합니다.
UNDEFINED(variable_name)는 변수나 배열 요소가 정의되지 않았으면 TRUE를 반환합니다.
예제:이 예제는 배열 array가 정의되어 있는지 확인합니다.
VAR !array[1] 'value' IF (DEFINED(!array)) THEN $P 'Array is defined' ENDIF
3. EMPTY 함수
개요: EMPTY(text)text가 빈 문자열이면 TRUE를, 그렇지 않으면 FALSE를 반환합니다.
예제:이 예제는 문자열이 비어 있는지 확인합니다.
VAR !text '' IF (EMPTY(!text)) THEN $P 'Text is empty' ELSE $P 'Text is not empty' ENDIF
4. IFTRUE 함수
개요: IFTRUE(logical, anyA, anyB)logicalTRUE일 경우 anyA를, FALSE일 경우 anyB를 반환합니다.
예제:이 예제는 조건이 참인지 거짓인지에 따라 다른 값을 반환합니다.
VAR !condition TRUE !result = IFTRUE(!condition, 'TRUE Value', 'FALSE Value') $P 'Result is: ' + $!result
5. MATCHWILD 함수
개요: MATCHWILD(text1, text2)text1text2의 패턴과 일치하면 TRUE를 반환합니다. 와일드카드를 지원합니다.
예제:이 예제는 문자열 패턴이 일치하는지 확인합니다.
IF (MATCHWILD('A big bottle of beer', '*big*')) THEN $P 'Match found' ELSE $P 'No match found' ENDIF
6. UNSET 함수
개요: UNSET(value)value가 설정되지 않았으면 TRUE를, 설정되어 있으면 FALSE를 반환합니다.
예제:이 예제는 값이 설정되지 않았는지 확인합니다.
!DESC = nulref IF (UNSET(!DESC)) THEN $P 'Description is unset' ELSE $P 'Description is set' ENDIF
7. VLOGICAL 함수
개요: VLOGICAL(variable_name)는 변수나 배열 요소의 값을 논리값으로 평가합니다.
예제:이 예제는 배열 요소가 참인지 거짓인지 확인합니다.
VAR !array[1] 'TRUE' IF (VLOGICAL(!array, 1)) THEN $P 'Element is TRUE' ELSE $P 'Element is FALSE' ENDIF
Bi
Subscribe to 'bittokki'
Welcome to 'bittokki'!
By subscribing to my site, you'll be the first to receive notifications and emails about the latest updates, including new posts.
Join SlashPage and subscribe to 'bittokki'!
Subscribe
👍
Other posts in 'PML BASIC'See all
Bito
Pml Basic 7 - Object FILE()
** GPTS로 학습시킨후 뽑아낸 글입니다 오류있으면 댓글 달아주세요 추후 수정 예정입니다.** OBJECT FILE의 개념과 사용 방법에 대한 자세한 설명 OBJECT FILE은 PML에서 FILE들을 다룰떄 사용합니다. 1. OBJECT FILE의 정의 OBJECT FILE은 파일 작업을 수행하기 위해 PML에서 제공하는 객체입니다. 이 객체를 사용하여 파일을 열고, 읽고, 쓰고, 닫는 작업을 할 수 있습니다. 파일 작업은 주로 보고서를 생성하거나, 데이터를 외부로 저장하거나, 외부 데이터를 시스템으로 가져올 때 사용됩니다. 구문: 이 구문을 통해 OBJECT Object File를 생성할 수 있습니다. 생성된 !Object File를 사용하여 파일 작업을 수행할 수 있습니다. 2. Object File의 생성 Object File를 생성하려면 다음과 같이 파일 경로를 지정하여 객체를 생성합니다. 구문: 이 구문을 통해 !MyFile이라는 Object File를 생성하여, 이후 파일 작업을 수행할 준비를 합니다. 3. 파일 열기 및 닫기 파일 작업을 수행하기 전에 파일을 열어야 하며, 작업이 끝난 후에는 파일을 닫아야 합니다. 파일 열기: Open() 메서드는 파일을 지정된 모드로 엽니다. 모드에는 'READ', 'WRITE', 'OVERWRITE', 'APPEND' 등이 있습니다. 파일 닫기: Close() 메서드는 열려 있는 파일을 닫습니다. 4. 파일에서 데이터 읽기
Bito
Pml Basic 6 - Object Collection()
** GPTS로 학습시킨후 뽑아낸 글입니다 어색만 부분이나 있을수 있습니다 오류 있으면 댓글 달아주세요 추후 수정 예정입니다.** Object Collection은 기존 PML1 방식보다 사용하기 번거롭습니다. 하지만 2개이상의 Search Scope를 설정 할 수 있다는 장점, Collect 되는 Data 타입이 String이 아닌 Dbref라는점에서 좀 더 효율적인 collect가 필요할떄 사용합니다. 1. OBJECT COLLECTION의 정의 OBJECT COLLECTION은 E3D에서 기본 제공되는 Object로 특정 범위(Scope), 타입(Type), 필터(Filter) 등을 설정하여 조건에 맞는 객체들을 수집합니다. 구문: 이 구문을 통해 Object Collection을 생성할 수 있습니다. 2. OBJECT COLLECTION의 주요 메서드 OBJECT COLLECTION은 데이터를 수집하고 필터링하기 위한 다양한 메서드를 제공합니다. 여기서는 자주 사용되는 메서드와 그 예제를 설명합니다. 2.1 SCOPE(STRING scope) SCOPE 메서드는 Object Collection이 데이터를 수집할 범위를 설정합니다. Scope는 WORLD(전체 모델), CE(현재 요소), 또는 특정 영역 등으로 설정할 수 있습니다. Scope를 설정하면 그 범위 내에서만 객체를 수집합니다. 예제: 이 예제에서는 전체 모델(WORLD) 범위에서 객체를 수집하도록 설정합니다. 2.2 ADDSCOPE(STRING scope) ADDSCOPE 메서드는 추가적인 범위를 설정하여 여러 범위에서 데이터를 수집할 수 있게 합니다. 이 메서드를 사용하면 초기 SCOPE에서 지정한 범위 외에 다른 범위도 추가로 포함시킬 수 있습니다. 예제: 이 예제에서는 /ZONE1이라는 특정 영역을 추가하여, 초기 SCOPE 외에도 이 영역에서 데이터를 수집하도록 설정합니다. 2.3 TYPE(STRING type)
Bito
Pml Basic 5 - Object Array()
** GPTS로 학습시킨후 뽑아낸 글입니다 어색만 부분이나 있을수 있습니다 오류 있으면 댓글 달아주세요 추후 수정 예정입니다.** Array PML을 사용하는 이유가 반복적인 작업을 단순화하려는 만큼, Array는 매우 많이 사용됩니다. 기본적인 PML1 방식의 Array보다 PML2 방식의 Array를 이용하면 좀 더 효율적으로 PML을 작성할 수 있습니다. 1차원 배열과 2차원 배열을 PML1 방식과 PML2 방식으로 다뤄보도록 하겠습니다. 1. 1차원 배열 1차원 배열은 단일 리스트로, Element들이 하나의 차원에 배열됩니다. 예를 들어, ['apple','banana', 'cherry']와 같은 배열이 1차원 배열입니다. Array에 Append를 하기 전, 반드시 OBJECT ARRAY()로 배열을 우선 생성해야 합니다. 1.1 1차원 Array 생성 및 사용 (PML1) PML1 방식에서는 배열을 생성한 후 .APPEND() 메서드를 사용해 Element를 추가합니다. 배열 생성: OBJECT ARRAY()로 빈 배열을 생성합니다. Element 추가: .APPEND() 메서드를 사용해 배열에 Element를 순차적으로 추가합니다. Element 접근: 인덱스를 통해 배열 내 Element에 접근합니다. PML에서는 배열의 인덱스가 1부터 시작하므로 첫 번째 Element는 !array[1]으로 접근합니다. 1.2 1차원 Array 생성 및 사용 (PML2) PML2 방식에서는 배열을 생성한 후 인덱스를 사용해 직접 값을 할당할 수 있습니다. 배열 생성: OBJECT ARRAY()로 빈 배열을 생성합니다. 인덱스 할당: 배열의 각 위치에 인덱스를 통해 직접 Element를 할당합니다. Element 접근: PML1 방식과 마찬가지로 배열의 Element는 인덱스를 사용해 접근합니다. 2. 2차원 배열 2.1 PML에서 2차원 배열 생성 및 사용 PML에서 2차원 배열은 배열 내에 배열을 추가하는 방식으로 구현됩니다. 이는 **행(row)**을 배열로 만들고, 이 행들을 또 다른 배열에 추가하는 방식으로 구성됩니다. PML1 방식과 PML2 방식 모두 이러한 구조를 지원하지만, 각 방식에는 차이가 있습니다. 2.2 PML1 방식 PML1에서는 배열을 생성한 후, 각 배열(행)을 배열에 추가하여 2차원 배열을 구성합니다. 여기서는 .APPEND() 메서드를 사용하여 배열에 Element를 추가합니다. 2.3 PML1 방식 2차원 배열 예시