INSERT (matriz.dinámica, númcampo, númvalor, númsubvalor, expresión)
INSERT (matriz.dinámica, númcampo [ ,númvalor [ ,númsubvalor] ] ; expresión)
Utilice la función INSERT para devolver una matriz dinámica que tiene un nuevo campo, valor o subvalor insertado en la matriz dinámica especificada.
La expresión matriz.dinámica se evalúa como una matriz dinámica.
Los valores de númcampo, númvalor y númsubvalor especifican el tipo y la posición del elemento nuevo que se debe insertar y se denominan expresiones de delimitador. Los valores de númvalor y númsubvalor son opcionales, pero si se omiten debe anteponerse un carácter de punto y coma ( ; ) a expresión, como se muestra en la segunda línea de sintaxis.
El valor de expresión especifica el valor del elemento nuevo que se va a insertar.
Hay tres resultados posibles de la función INSERT, según las expresiones de delimitador especificadas.
En las cuentas IDEAL, PICK, PIOPEN y REALITY, si expresión es una serie vacía y el elemento nuevo se anexa al final de la matriz dinámica, al final de un campo o al final de un valor, la matriz dinámica, el campo o el valor se deja sin modificar. Los delimitadores adicionales no se anexan. Utilice la opción EXTRA.DELIM de la sentencia $OPTIONS para hacer que la función INSERT anexe un delimitador a la matriz dinámica, al campo o al valor.
Si expresión se evalúa como valor nulo, se inserta el valor nulo en matriz.dinámica. Si matriz.dinámica se evalúa como valor nulo, no se modifica con la inserción. Si alguna expresión de delimitador es el valor nulo, la función INSERT falla y el programa termina con un mensaje de error de tiempo de ejecución.
En las cuentas de tipo INFORMATION e IN2, si expresión es una serie vacía y el elemento nuevo se anexa al final de la matriz dinámica, al final de un campo o al final de un valor, se anexa un delimitador a la matriz dinámica, al campo o al valor. Utilice la opción -EXTRA.DELIM de la sentencia $OPTIONS para hacer que la función INSERT se ejecute como en las cuentas de tipo IDEAL, PICK y REALITY.
En los ejemplos siguientes, se muestra una marca de campo junto a F, se muestra una marca de valor junto a V y se muestra una marca de subvalor junto a S.
El primer ejemplo inserta el carácter # antes del primer campo y establece Q en #FFF1V2V3S6F9F5F7V:
R=@FM:@FM:1:@VM:2:@VM:3:@SM:6:@FM:9:@FM:5:@FM:7:@VM:3
Q=INSERT(R,1,0,0,"#")
El ejemplo siguiente inserta un carácter # antes del tercer valor del campo 3 y establece el valor de Q en FF1V2V#V3S6F9F5F7V3:
Q=INSERT(R,3,3;"#")
El ejemplo siguiente inserta una marca de valor seguida de un carácter # tras el último valor del campo y establece Q en FF1V2V3S6F9V#F5F7V3:
Q=INSERT(R,4,-1,0,"#")
El ejemplo siguiente inserta un carácter # antes del segundo subvalor del segundo valor del campo 3 y establece Q en FF1V2S#V3S6F9F5F7V3:
Q=INSERT(R,3,2,2;"#")