En cualquier contexto en el que haga referencia a un campo de caracteres, puede hacer referencia a una subserie que es un subconjunto secuencial de los caracteres de ese campo. Si un valor de campo es ABCD, puede hacer referencia a BC (por ejemplo), que son el segundo y tercer carácter.
Además, puede especificar una subserie en el lado izquierdo de una sentencia assignment si el campo destino es de tipo CHAR, DBCHAR o UNICODE. El área de subserie se rellena (con blancos, si es necesario) y el texto asignado no se extiende más allá del área de subserie (sino que se trunca, si es necesario). Además, puede especificar una subserie en el lado izquierdo si el campo destino es una serie de longitud limitada; dicha situación se describe más adelante, a modo de ejemplo.
El valor de fromIndex representa una posición de byte a menos que itemReference haga referencia a un elemento de tipo DBCHAR o UNICODE, en cuyo caso el valor representa una posición de carácter de doble byte.
Si itemReference es una serie (de longitud no limitada), el valor de fromIndex está entre 1 y la longitud de la serie.
Si itemReference es una serie de longitud limitada, el valor de fromIndex está entre 1 y la longitud especificada en la declaración de la variable. Si la posición no tiene valor, la subserie es una serie vacía, como se muestra en un ejemplo posterior.
Cuente a partir del carácter situado más a la izquierda, incluso aunque esté trabajando con un idioma bidireccional, como árabe o hebreo.
El valor de toIndex representa una posición de byte a menos que itemReference haga referencia a un elemento de tipo DBCHAR o UNICODE, en cuyo caso el valor representa una posición de carácter de doble byte.
Si itemReference es una serie (de longitud no limitada), el valor máximo de toIndex es la posición del último carácter de la serie.
Si itemReference es una serie de longitud limitada, el valor de toIndex es la longitud especificada en la declaración de la variable. Si la posición no tiene valor, la subserie sólo llega hasta la última posición que contiene un carácter, como se muestra en un ejemplo posterior.
Si toIndex es mayor que fromIndex y ambos números son válidos, la subserie es una serie vacía.
Cuente a partir del carácter situado más a la izquierda, incluso aunque esté trabajando con un idioma bidireccional, como árabe o hebreo.
limited string(20); s string; limited = "123456789"; s = limited[11:12]; // Sin errores, y el valor de s es "" (una serie vacía). s = limited[8:12]; // Sin errores, y el valor de s es "89". limited = s[8:12]; // Error debido a que s no tiene límite de longitud. // La última posición válida es la que tiene el último carácter.
limited string(20) = "123456789"; s string = "abc"; limited[12:14] = s; // sin errores; el valor de la serie limitada pasa a ser "123456789 abc":
Conceptos relacionados
Referencias a variables en EGL
Tareas relacionadas
Diagrama de sintaxis para sentencias y mandatos EGL
Consulta relacionada
Expresiones de texto