Utilizar el elemento cero de un array

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 6.0


Un array siempre tiene un elemento cero. Mientras el elemento cero no se muestra cuando un array maneja un objeto de formulario, no hay restricción para utilizarlo con el lenguaje.

Un ejemplo del uso del elemento cero es el caso del combo box de la sección Arrays y objetos de formulario.

Estos son otros dos ejemplos.

1. Si quiere ejecutar una acción sólo cuando usted hace clic en un elemento diferente del previamente seleccionado, debe hacer seguimiento de cada elemento seleccionado. Una manera de hacer esto es utilizar una variable de proceso en la cual usted mantiene el número del elemento seleccionado. Otra forma es utilizar el elemento cero del array:

      ` Método de objeto área de desplazamiento atNombres 
   Case of
      : (Form event=On Load)
            ` Inicialización del array (como se mostró anteriormente)
         ARRAY TEXT (atNombres;5)
            ` ...
            ` Inicializar el elemento cero con el número 
            ` de elemento actual seleccionado en su forma alfanúmerica
            ` Acá usted comienza sin elemento seleccionado
         atNombres{0}:="0"

      : (Form event=On Unload)
            ` No necesitamos más el array
         CLEAR VARIABLE(atNames)

      : (Form event=On Clicked)
         If (atNames#0)
            If (atNames#Num(atNombres{0}))
               vtInfo:="Haga clic en: "+atNombres{atNombres}+" que no fue seleccionado anteriormente."
               atNombres{0}:=String(atNombres)
            End if
         End if
      : (Form event=On Double Clicked)
         If (atNombres#0)
            ALERT ("Usted hace doble clic en: "+atNombres{atNombres}
         End if
   End case

2. En modo compatibilidad ASCII, cuando envía o recibe un flujo de caracteres de o hacia un documento o puerto serial, 4D le ofrece la posibilidad de filtrar los códigos ASCII entre plataformas y sistemas que utilizan diferentes mapas ASCII— con los comandos USE ASCII MAP, Mac to ISO, ISO to Mac, Mac to Win y Win to Mac.

En algunos casos, usted podría querer controlar integralmente la traducción de los códigos ASCII. Una forma de hacerlo es utilizar un array de enteros de 255 elementos, donde el elemento N es la traducción ASCII del carácter cuya fuente de código ASCII es N. Por ejemplo, si el código ASCII #187 debe ser traducido como #156, usted escribe <>aiMapaSalida{187}:=156 y <>aiMapaEntrada{156}:=187 en el método que inicializa los arrays interprocesos utilizados en la base. Entonces puede enviar un flujo de caracteres con el siguiente método de proyecto personalizado:

      ` X ENVIAR PAQUETE ( Texto { ; Tiempo } )
   For ($vlCar;1;Length($1))
      $1[[vlCar]]:=Char(<>
aiMapaSalida
{Ascii($1[[vlCar]])})
   End for
   If (Count parameters>=2)
      SEND PACKET ($2;$1)
   Else
      SEND PACKET ($1)
   End if
      ` X Recibir Paquete ( Text { ; Tiempo } ) -> Texto 
   If (Count parameters>=2)
      RECEIVE PACKET ($2;$1)
   Else
      RECEIVE PACKET ($1)
   End if
   $0:=$1
   For ($vlCar;1;Length($1))
      $0[[vlCar]]:=Char(<>
aiMapaEntrada
{Ascii($0[[vlCar]])})
   End for

En este ejemplo avanzado, si un flujo de caracteres contiene caracteres NULL (código ASCII cero) se envía o recibe, el elemento cero de los arrays <>aiMapaSalida y <>aiMapaEntrada jugará su papel como otro elemento de los 255 elementos de los 255 arrays.

Ver también

Arrays.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente