FIND_AFTER_POS

문자열 검색 위치

FIND_AFTER_POS는 시작 위치 P에서 시작하여 첫 번째 입력 문자열 IN1에서 두 번째 입력 문자열 IN2가 발생하는 위치를 반환합니다. 결과는 출력 변수에 작성됩니다. 두 번째 입력 문자열이 첫 번째 입력 문자열에서 발생하지 않으면 ZERO(0) 값이 반환됩니다.

파라미터

입력

IN1 (STRING)

시작 입력 문자열

IN2 (STRING)

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

P (INT)

검색할 입력 문자열의 시작 위치입니다. 여기서 1은 문자열의 첫 번째 문자입니다.

출력

정의되지 않은 출력 (INT)

검색된 문자열이 있는 위치

  • 값이 0보다 큰 경우: 검색된 문자열이 있는 위치입니다. 여기서 1은 첫 번째 문자를 나타냅니다

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

주석

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

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

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)

입력 또는 출력에 적용된 문자열이 유효하지 않은 문자열인 경우

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)

입력 또는 출력에 적용된 문자열이 유효하지 않은 문자열인 경우

POU 헤더

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

	VAR
		bStart: BOOL:=FALSE;
		sInputString: STRING[32]:='A better life. A better world.';
		sSearchString: STRING[32]:='A';
		iStartPos: INT:=8;
		iFoundPos: INT:=0;
	END_VAR

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

POU 본문

sSearchString은 시작 위치 8에서 시작되는 sInputString에서 검색됩니다. 위치 8 이후의 첫 발생 위치는 iFoundPos에 작성됩니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_F,E_FIND_AFTER_POS!,,19,1,28,7,,?DEN?DIN1?DIN2?DP?AENO?C);
B(B_VARIN,,sInputString,17,3,19,5,);
B(B_VARIN,,sSearchString,17,4,19,6,);
B(B_VARIN,,iStartPos,17,5,19,7,);
B(B_VAROUT,,iFoundPos,28,3,30,5,);
B(B_CONTACT,,bStart,13,2,15,4,);
L(1,3,13,3);
L(15,3,19,3);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF bStart then
    iFoundPos:= FIND_AFTER_POS(sInputString, sSearchString);
END_IF;

IL 본문

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