# Extraire la chaîne (milieu)

Extrait une chaîne d'une position désirée.

##### Bloc

##### Texte

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

# | Description
1 | [Destination Data] Définissez la destination dans laquelle vous souhaitez stocker la chaîne extraite.
2 | [Start position] Valeur entière qui spécifie le point de départ de l'extraction de chaîne. La valeur doit être supérieure ou égale à 1 et inférieure ou égale à la position de départ extractible.
3 | [Number of characters] Définissez le nombre de caractères à extraire. La valeur doit être supérieure ou égale à 1 et inférieure ou égale au nombre de caractères pouvant être extraits. Les caractères codés sur deux octets sont comptés comme un seul caractère.
4 | [Source Data] Définissez la source de données dans laquelle la chaîne à extraire est stockée.

(Exemple)

##### Bloc

##### Texte

Var4 = substring(Var3,Var5,Var1);

## Exemple d'opération

Variable dans [Source Data] | [Start position] | [Number of characters] | Variable dans [Destination Data] | Commentaires
Chaîne cible | Nombre maximum d'octets | Chaîne extraite à stocker
ABCDE | 2 | 3 | 5 | BCD | -
4 | 3 | 5 | (aucun) | Une chaîne n'est pas stockée car la valeur [Number of characters] dépasse le nombre de caractères récupérables. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
6 | 3 | 5 | (aucun) | Une chaîne n'est pas stockée car la valeur [Start Position] dépasse la position de début disponible. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
0 | 3 | 5 | (aucun) | Une chaîne n'est pas stockée car la valeur [Start Position] est inférieure à 1. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
-1 | 3 | 5 | (aucun) | Une chaîne n'est pas stockée car la valeur [Start Position] est inférieure à 1. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
4 | 0 | 5 | (aucun) | Une chaîne n'est pas stockée car la valeur [Number of characters] est inférieure à 1. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
4 | -1 | 5 | (aucun) | Une chaîne n'est pas stockée car la valeur [Number of characters] est inférieure à 1. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
2,1 | 3 | 5 | BCD | La décimale de [Start Position] est tronquée.
2 | 3,5 | 5 | BCD | Les valeurs à droite de la virgule dans [Number of characters] sont abandonnées.
ABCDEF | 1 | 6 | 5 | (aucun) | Une chaîne n'est pas stockée car la chaîne convertie a dépassé le nombre maximum d'octets pouvant être stockés. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
AB(0x00)CDE | 2 | 3 | 5 | (aucun) | Une chaîne n'est pas stockée. Si la valeur est NULLE (0x00), la chaîne se termine là. Par conséquent, [Number of characters] dépasse le nombre de caractères récupérables. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
4 | 3 | 5 | (aucun) | Une chaîne n'est pas stockée. Si la valeur est NULLE (0x00), la chaîne se termine là. Par conséquent, [Start Position] dépasse le nombre de caractères récupérables. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
AあB | 1 | 3 | 5 | AあB | Une chaîne est stockée selon la valeur [Number of characters]. *1
2 | 3 | 5 | (aucun) | Une chaîne n'est pas stockée car la valeur [Number of characters] dépasse le nombre de caractères récupérables. Cela est considéré comme un échec dans le 'Résultat de l'opération'.
2 | 2 | 5 | あB | Une chaîne est stockée selon la valeur [Number of characters]. *1

*1 Si le nombre maximum d'octets dans la variable [Destination Data] est inférieur à la taille de la chaîne récupérée, l'opération échouera. Le nombre maximum d'octets dépend du codage de la variable [Destination Data].