FIND_AFTER_POS

Trova la posizione della stringa

FIND_AFTER_POS restituisce la posizione in cui la seconda stringa di ingresso IN2 appare nella prima stringa di ingresso IN1 a partire dalla posizione iniziale P. Il risultato viene scritto nella variabile di uscita. Se la seconda stringa di ingresso non appare nella prima stringa di ingresso, viene restituito il valore ZERO.

Parametri

Ingresso

IN1 (STRING)

Stringa di ingresso iniziale

IN2 (STRING)

Stringa con differenza tra maiuscole e minuscole ricercata nella stringa di ingresso

P (INT)

Posizione iniziale della stringa di ingresso da cercare, in cui 1 è il primo carattere della stringa

Uscita

Unnamed output (INT)

Posizione nella quale viene trovata la stringa ricercata

  • se il valore è > 0: posizione nella quale viene trovata la stringa ricercata, in cui 1 si riferisce al primo carattere

  • se il valore è = 0: stringa di ricerca non trovata

Note

  • Se questa istruzione è utilizzata con stringhe UTF-8, fare riferimento alle note relative alle stringhe UTF-8 sotto il tipo di dati STRING.

  • Se la lunghezza delle stringhe supera la lunghezza definita per le variabili di ingresso (IN1 e IN2) nel campo di dichiarazione Tipo, si verifica un errore (vedere sys_bIsCarry per la gestione dell'errore).

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)

se una stringa applicata in ingresso o in uscita è una stringa non valida

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)

se una stringa applicata in ingresso o in uscita è una stringa non valida

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	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

In questo esempio sono state dichiarate le variabili di ingresso sSearchString e sInputString. Al loro posto potete inserire le stringhe direttamente nella funzione. Le stringhe devono essere inserite tra virgolette, sia nell'intestazione del POU sia nella funzione.

Corpo del POU

sSearchString viene ricercata in sInputString a partire dalla posizione iniziale 8. La posizione della prima occorrenza dopo la posizione 8 viene scritta in iFoundPos.

Corpo 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

Corpo ST

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

Corpo IL

L'ultima revisione: 2024-04-02Feedback su questa paginaPanasonic hotline