GET_CHAR

Leer un valor de carácter en la posición especificada de una cadena

Esta función obtiene el valor de carácter de 8 bits de sString con iPosition indicando la posición del carácter en la cadena, donde 1 es el primer carácter de la cadena.

El byte de menor peso del resultado contiene el valor de byte, los bytes de mayor peso del resultado se rellenan con ceros.

Entrada

sString (STRING)

Cadena de la que se obtiene el carácter

iPosition (INT, DINT, UINT, UDINT)

Posición del carácter que se obtiene, donde 1 es el primer carácter de la cadena, debe ser mayor o igual a 1.

Salida

Unnamed output (WORD, DWORD)

El valor de byte resultante con los bytes de mayor peso rellenados con ceros.

Observaciones

  • Comprobar la validez de los datos introducidos, ya que Control FPWIN Pro7 no comprueba la validez de los datos a los que se accede.

  • Comprobar que la posición especificada no supera el número máximo de caracteres o es superior al número de caracteres actual.

NOTA

Para conseguir el mejor rendimiento, utilizar valores de entrada constantes en la medida de lo posible.

Ejemplo

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

	VAR
		bStart: BOOL:=FALSE;
		sInputString: STRING[32]:='ABCDabcd';
		wCharvalue: WORD:=16#61;
	END_VAR

Cuerpo LD

Cuando la variable bStart se encuentra a TRUE, se ejecuta la función.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bStart,3,1,5,3,);
B(B_F,E_GET_CHAR!,,14,0,21,5,,?DEN?DsString?DiPosition?AENO?C);
B(B_VARIN,,sInputString,12,2,14,4,);
B(B_VAROUT,,wCharvalue,21,2,23,4,);
B(B_VARIN,,2,12,3,14,5,);
L(1,0,1,5);
L(1,2,3,2);
L(5,2,14,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

if (bSTart) then
	wCharvalue:=GET_CHAR(sInputString, 2);
end_if;

Modificado el: 2025-03-12Comentarios sobre esta páginaLínea directa de Panasonic