# Estrarre stringa (centro)

Estrae la stringa dalla posizione desiderata.

##### Blocco

##### Testo

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

# | Descrizione
1 | [Destination Data] Impostare i dati sorgente in cui si vuole memorizzare la stringa estratta.
2 | [Start position] Valore intero che specifica il punto iniziale di estrazione della stringa. Il valore deve essere maggiore o uguale di 1 e minore o uguale della posizione di partenza estraibile.
3 | [Number of characters] Impostare il numero di caratteri da estrarre. Il valore deve essere maggiore o uguale di 1 e minore o uguale del numero di caratteri che possono essere estratti. I caratteri a doppio byte si contano come carattere singolo.
4 | [Source Data] Impostare i dati sorgente in cui la stringa da estrarre è memorizzata.

(Esempio)

##### Blocco

##### Testo

Var4 = substring(Var3,Var5,Var1);

## Esempio di operazione

Variabile in [Source Data] | [Start position] | [Number of characters] | Variabile in [Destination Data] | Commenti
Stringa target | Numero massimo di Byte | Stringa estratta da memorizzare
ABCDE | 2 | 3 | 5 | BCD | -
4 | 3 | 5 | (nessuno) | La stringa non viene memorizzata perché [Number of characters] ha superato il numero di caratteri disponibile. Questo si considera errato nell'operazione “Risultato operazione”.
6 | 3 | 5 | (nessuno) | La stringa non viene memorizzata perché [Start position] ha superato la posizione di avvio disponibile. Questo si considera errato nel “Risultato operazione”.
0 | 3 | 5 | (nessuno) | La stringa non viene memorizzata perché [Start position] è minore di 1. Questo si considera errato nel “Risultato operazione”.
-1 | 3 | 5 | (nessuno) | La stringa non viene memorizzata perché [Start position] è minore di 1. Questo si considera errato nel “Risultato operazione”.
4 | 0 | 5 | (nessuno) | La stringa non viene memorizzata perché il [Number of characters] è minore di 1. Questo si considera errato nell'operazione “Risultato operazione”.
4 | -1 | 5 | (nessuno) | La stringa non viene memorizzata perché il [Number of characters] è minore di 1. Questo si considera errato nell'operazione “Risultato operazione”.
2.1 | 3 | 5 | BCD | La parte decimale della [Start Position] viene troncata.
2 | 3.5 | 5 | BCD | I valori a destra del punto decimale in [Number of characters] vengono troncati.
ABCDEF | 1 | 6 | 5 | (nessuno) | La stringa non viene memorizzata perché la stringa convertita ha superato il numero massimo di Byte che può essere memorizzato. Questo si considera errato nell'operazione “Risultato operazione”.
AB(0x00)CDE | 2 | 3 | 5 | (nessuno) | La stringa non viene memorizzata. Se c’è NULL (0x00), la stringa termina qui. Di conseguenza il [Numero di caratteri] supera il numero di caratteri recuperabili. Questo si considera errato nell'operazione “Risultato operazione”.
4 | 3 | 5 | (nessuno) | La stringa non viene memorizzata. Se c’è NULL (0x00), la stringa termina qui. Di conseguenza la [Start position] supera la posizione di avvio disponibile. Questo si considera errato nel “Risultato operazione”.
AあB | 1 | 3 | 5 | AあB | La stringa viene memorizzata in base al [Number of characters]. *1
2 | 3 | 5 | (nessuno) | La stringa non viene memorizzata perché [Number of characters] ha superato il numero di caratteri disponibile. Questo si considera errato nell'operazione “Risultato operazione”.
2 | 2 | 5 | あB | La stringa viene memorizzata in base al [Number of characters]. *1

*1 Se il numero massimo di Byte nella variabile [Destination Data] è minore della dimensione della stringa recuperata, l'operazione non riesce. Il numero massimo di Byte dipende dalla codifica della variabile [Destination Data].