FIND

문자열 위치 찾기

FIND는 먼저 첫 번째 입력 문자열에서 두 번째 입력 문자열을 발생하는 위치를 반환합니다. 결과는 출력 변수에 작성됩니다. 두 번째 입력 문자열이 첫 번째 입력 문자열에서 발생하지 않으면 0 값이 반환됩니다.

파라미터

입력

IN1 (STRING)

입력 문자열

IN2 (STRING)

입력 문자열에서 검색되는 대/소문자를 구분하는 문자열

출력

정의되지 않은 출력 (INT)
  • 값이 0보다 큰 경우: 검색된 문자열이 있는 위치입니다. 여기서 1은 첫 번째 문자를 나타냅니다

  • 값이 0인 경우: 검색 문자열을 찾을 수 없습니다.

주석

  • 이 명령을 UTF-8 문자열과 함께 사용하는 경우, 데이터 유형 STRING에서 UTF-8 문자열에 대한 메모를 참조하십시오.

  • 문자열이 [형식] 선언 필드에서 입력 변수(IN1IN2)에 정의된 길이보다 긴 경우 에러가 발생합니다(에러 처리는 sys_bIsCarry 참조).

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 입력 또는 출력에 적용된 문자열이 유효하지 않은 문자열인 경우

  • 입력 문자열이 필드 [형식]의 입력 변수에 대해 정의된 길이보다 긴 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 입력 또는 출력에 적용된 문자열이 유효하지 않은 문자열인 경우

  • 입력 문자열이 필드 [형식]

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

	VAR
		sInputString: STRING[5]:='ABCBC';
			(*sample string*)
		sSearchString: STRING[2]:='BC';
			(*searched string*)
		iFoundPos: INT:=0;
			(*1st position found*)
	END_VAR

이 예에서 입력 변수(sInputStringsSearchString)가 선언됩니다. 대신 문자열('ABCBC.' 및 'BC')을 펑션에 직접 입력할 수 있습니다. POU 헤더와 펑션 모두에서 문자열은 따옴표 안에 있을 수 있습니다.

POU 본문

sSearchString('BC’)은 sInputString('ABCBC’)에서 검색됩니다. 첫 발생 위치(2)는 iFoundPos에 작성됩니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_VARIN,,sInputString,18,1,20,3,);
B(B_VARIN,,sSearchString,18,2,20,4,);
B(B_VAROUT,,iFoundPos,25,1,27,3,);
B(B_F,FIND!,,20,0,25,4,,?DIN1?DIN2?C);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

iFoundPos := FIND(sInputString, sSearchString);

IL 본문

LD

sInputString

FIND

sSearchString

ST

iFoundPos

최종 수정일: 2022-04-04이 페이지에 대한 피드백Panasonic 직통 전화