# Extraer cadena (Centro)

Extrae una cadena de una posición deseada.

##### Bloque

##### Texto

TARGET = substring(INPUT, STARTPOSITION, COUNT);
1 4 2 3

# | Descripción
1 | [Datos de destino] Establezca el destino donde desea almacenar la cadena extraída.
2 | [Start position] Valor entero que especifica el punto de inicio para la extracción de la cadena. El valor debe ser mayor o igual que 1 y menor o igual que la posición inicial extraíble.
3 | [Number of characters] Defina el número de caracteres a extraer. El valor debe ser mayor o igual que 1, y menor o igual que el número de caracteres que se pueden extraer. Los caracteres de doble byte se cuentan como un solo carácter.
4 | [Datos de origen] Defina el destino donde se almacena la cadena a extraer.

(Ejemplo)

##### Bloque

##### Texto

Var4 = substring(Var3,Var5,Var1);

## Ejemplo de operación

Variable en [Source Data] | [Start position] | [Number of characters] | Variable en [Destination Data] | Comentarios
Cadena de destino | Número máximo de bytes | Cadena extraída para almacenar
ABCDE | 2 | 3 | 5 | BCD | -
4 | 3 | 5 | (ninguno) | No se almacena una cadena porque el [Number of characters] supera el número de caracteres recuperables. Se considera como fallido en la operación "Resultado de la operación".
6 | 3 | 5 | (ninguno) | No se almacena una cadena porque la [Start position] excede la posición de inicio disponible. Se considera fallida en el "Resultado de la operación".
0 | 3 | 5 | (ninguno) | No se almacena una cadena porque la [Start position] es menor que 1. Se considera fallida en el "Resultado de la operación".
-1 | 3 | 5 | (ninguno) | No se almacena una cadena porque la [Start position] es menor que 1. Se considera fallida en el "Resultado de la operación".
4 | 0 | 5 | (ninguno) | No se almacena una cadena porque el [Number of characters] es menor que 1. Se considera como fallido en la operación "Resultado de la operación".
4 | -1 | 5 | (ninguno) | No se almacena una cadena porque el [Number of characters] es menor que 1. Se considera como fallido en la operación "Resultado de la operación".
2.1 | 3 | 5 | BCD | La parte decimal de la [Start Position] está truncada.
2 | 3,5 | 5 | BCD | Los valores a la derecha de la coma decimal en [Number of characters] se eliminan.
ABCDEF | 1 | 6 | 5 | (ninguno) | No se almacena una cadena porque la cadena convertida ha superado el número máximo de bytes que se pueden almacenar. Se considera como fallido en la operación "Resultado de la operación".
AB(0x00)CDE | 2 | 3 | 5 | (ninguno) | No se almacena una cadena. Si hay un NULL (0x00), la cadena se termina ahí. Como resultado, el [Número de caracteres] supera el número de caracteres recuperables. Se considera como fallido en la operación "Resultado de la operación".
4 | 3 | 5 | (ninguno) | No se almacena una cadena. Si hay un NULL (0x00), la cadena se termina ahí. Como resultado, la [Start position] excede la posición de inicio disponible. Se considera fallida en el "Resultado de la operación".
AあB | 1 | 3 | 5 | AあB | La cadena se almacena según el [Number of characters]. *1
2 | 3 | 5 | (ninguno) | No se almacena una cadena porque el [Number of characters] supera el número de caracteres recuperables. Se considera como fallido en la operación "Resultado de la operación".
2 | 2 | 5 | あB | La cadena se almacena según el [Number of characters]. *1

*1 Si el número máximo de bytes de la variable [Destination data] es inferior al tamaño de la cadena recuperada, la operación fallará. El número máximo de bytes depende de la codificación de la variable de [Destination Data].