AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV 2024!
Ayuda / Tutorial WINDEV / Tutorial - Fundamentos de WLanguage
  • Lección 3 - Fechas, arrays y estructuras
  • Presentación
  • Variables de tipo Date, Time y Duration
  • El tipo Date
  • El tipo Time
  • El tipo Duration
  • Variables de tipo Array
  • Declaración
  • Rellenar un array y acceder a los elementos
  • Recorrer un array
  • Array asociativo
  • Variables de tipo Structure
  • El tipo Structure
  • En resumen

Tutorial - Fundamentos de WLanguage

Lección 3 - Fechas, arrays y estructuras
Abordaremos los siguientes temas:
  • Los tipos Date, Time y Duration.
  • El tipo Array.
  • El tipo Structure.
Durée de la leçon 20 min
Presentación
Además de los tipos simples (boolean, integer, real, etc.), WLanguage propone varios tipos de variables que permiten manipular diferentes casos específicos.
Vamos a ver de manera general estos diferentes tipos de variables con un pequeño ejemplo práctico para cada una de ellas. Para obtener más información, consulte la ayuda en línea de cada tipo.
Si es necesario, abra el proyecto "WLanguage" que creó en la primera lección de este tutorial (consulte el párrafo Un proyecto para descubrir WLanguage de la lección 1).
Variables de tipo Date, Time y Duration
WLanguage propone diferentes tipos de variables para manipular fechas, horas y duraciones.

El tipo Date

Para las fechas, WLanguage propone el tipo Date. Se pueden utilizar diferentes funciones y propiedades para manipular las fechas.
Usaremos un ejemplo de código pequeño para manipular las fechas:
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Escriba el siguiente código:
    MyDate is Date
    Esta línea de código declara una variable de tipo Date. De forma predeterminada, la variable se inicializa con la fecha actual.
  3. Ahora, veamos cómo asignar un valor a una fecha.
    MyDate = Yesterday()
    MyDate = "20210929"
    Este código presenta las diferentes formas de inicializar una variable de tipo Date. La variable se puede inicializar:
    • mediante una función WLanguage. En este ejemplo, se utiliza la función Yesterday. WLanguage propone un gran número de funciones para determinar el primer o último día de un mes o año, ...
    • mediante una cadena que contiene la fecha en formato "AAAAMMDD".
  4. También es posible cambiar los parámetros de la fecha usando propiedades WLanguage. Escriba el siguiente código:
    // Change date parameters
    MyDate.Year = 1985
    MyDate.Month = 10
    MyDate.Day = 26
  5. La función <Fecha>.ToString permite definir el formato para mostrar las fechas. También es posible utilizar la función <Fecha>.ToDayInAlpha. Por ejemplo, introduzca el siguiente código:
    Trace(MyDate.ToString())
    Trace(MyDate.ToString("Dddd Mmmm DD YYYY"))
    Trace(MyDate.ToDayInAlpha())
  6. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  7. El panel "Traza del depurador" contiene:
    26/10/1985
    Saturday October 26 1985
    Saturday
    • la fecha en un formato legible.
    • la fecha en un formato legible, utilizando una máscara de visualización.
    • el día de la semana que corresponde a la fecha.
  8. También puede utilizar operadores de comparación entre fechas. Escriba el siguiente código:
    IF MyDate < Today() THEN
    Trace("The date is earlier than today")
    END
    La función Today permite obtener la fecha del día actual.
  9. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  10. El panel "Traza del depurador" contiene:
    26/10/1985
    Saturday October 26 1985
    Saturday
    The date is earlier than today

El tipo Time

Del mismo modo, se pueden manipular las horas utilizando el tipo Time.
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Escriba el siguiente código:
    // Declare a time
    MyTime is Time // By default, the time is set to the current time

    // Assign a time
    // - via a WLanguage function
    MyTime = Now()
    // - set in the code (e.g. 3:25 PM)
    MyTime = "1525"

    // Change time parameters
    MyTime.Hour = 12
    MyTime.Minute = 0
    MyTime.Second = 0

    // Display time in a readable format
    Trace(MyTime.ToString())
    // Display time in a readable format using a display mask
    Trace(MyTime.ToString("HH:mm:SS"))

    // Compare 2 times
    IF MyTime < Now() THEN
    Trace("The time is earlier than the current time")
    ELSE
    Trace("The time is later than the current time")
    END
    El código toma todas las posibilidades presentadas en las fechas y las aplica a las horas.
  3. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  4. El panel "Traza del depurador" muestra la información deseada.
    12:00:00:00
    12:00:00
    The time is earlier than the current time
    • la hora en un formato legible.
    • la hora en un formato legible, utilizando una máscara de visualización.

El tipo Duration

Se puede escribir el mismo tipo de código para las duraciones.
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Escriba el siguiente código:
    // Declare a duration
    MyDuration is Duration

    // Assign a duration
    // - with a value in readable format
    MyDuration = 2 min 8 s
    // or
    MyDuration = 2 min 8 s
    // - by specifying the duration in seconds, in minutes, ...
    MyDuration.InSeconds = 128

    // Display duration in a readable format
    Trace(MyDuration.ToString("MM:SS"))
  3. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  4. El panel "Traza del depurador" muestra la información deseada.
    02:08
Para obtener más información sobre las variables de tipo Date, Time y Duration, consulte Variable de tipo Date, Variable de tipo Time y Variable de tipo Duration.
Variables de tipo Array
Los arrays son uno de los tipos de variable más utilizados.
Un array es un tipo estructurado que permite agrupar una serie de elementos del mismo tipo. Se puede acceder directamente a cada elemento del array por su índice.
Ciertas funciones específicas de WLanguage permiten manipular los arrays y sus elementos.

Declaración

Una variable de tipo Array se declara de la siguiente manera:
<Array name> is array of <Type of array elements>
Por ejemplo:
MyArrayOfStrings is array of strings
MyArrayOfIntegers is array of int

Rellenar un array y acceder a los elementos

Al declarar el array, este está vacío. Los elementos se agregan con la función <Array>.Add utilizando la siguiente sintaxis:
<Array name>.Add(<Element value>)
Para acceder a los elementos de un array, utilice la siguiente sintaxis:
<Array name> [<Element index>]
Advertencia
Los índices de los elementos del array comienzan en 1.
Usaremos un pequeño ejemplo de código para agregar elementos a un array:
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Escriba el siguiente código:
    // Create an array of strings
    MyArray is array of strings

    // Add elements
    MyArray.Add("WINDEV")
    MyArray.Add("WEBDEV")
    MyArray.Add("WINDEV Mobile")

    // Display the content of the third element
    Trace("Value of element 3: [%MyArray[3]%]")
  3. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  4. Si es necesario, abra el panel "Traza del depurador" para ver el resultado: en la pestaña "Inicio", en el grupo "Entorno", despliegue "Paneles", seleccione "Paneles" y, a continuación, haga clic en "Traza del depurador".
  5. El panel "Traza del depurador" contiene la siguiente información:
    Value of element 3: WINDEV Mobile

Recorrer un array

WLanguage ofrece dos métodos para recorrer los elementos de un array:
  • Un bucle estándar de tipo FOR .. TO.
  • Un bucle FOR EACH.
Bucle estándar de tipo FOR .. TO
En un bucle estándar de tipo FOR .. TO, deben especificarse los valores del índice de inicio (1) y fin.
  1. Por ejemplo, agregue el siguiente código en el evento "Inicialización" del proyecto:
    FOR Index = 1 TO MyArray.Count
    Trace("Value of element [%Index%]: [%MyArray[Index]%]")
    END

    En este código, el índice de inicio es 1 y el índice de fin es dado por la propiedad Count del array.
  2. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  3. El panel "Traza del depurador" contiene la siguiente información:
    Value of element 1: WINDEV
    Value of element 2: WEBDEV
    Value of element 3: WINDEV Mobile

Bucle FOR EACH
WLanguage ofrece un tipo de bucle mucho más simple e igual de efectivo: el bucle FOR EACH. Ya lo hemos visto en las cadenas. Este tipo de bucle también se aplica a los arrays. En este caso, no es necesario especificar el índice de inicio o fin.
  1. Por ejemplo, reemplace el código del bucle FOR por el siguiente código en el evento "Inicialización" del proyecto:
    FOR EACH ELEMENT AString, Index OF MyArray
    Trace("Value of element [%Index%]: [%AString%]")
    END
    En este caso, simplemente tuvimos que especificar el nombre de la variable que corresponde al elemento del array y la variable que corresponde al índice.
  2. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  3. El panel "Traza del depurador" contiene la siguiente información:
    Value of element 1: WINDEV
    Value of element 2: WEBDEV
    Value of element 3: WINDEV Mobile
Para obtener más información sobre las variables de tipo Array, consulte la página Array.

Array asociativo

Un array asociativo es un tipo "avanzado" de array: permite agrupar una serie de elementos del mismo tipo. Cada elemento del array está indexado en cualquier tipo de información (y no solo en un índice numérico, como en otros tipos de arrays).
Los Arrays asociativos (con o sin duplicados) se pueden manipular en WLanguage.

Hagamos una prueba rápida.
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Escriba el siguiente código:
    // Create an associative array of dates
    MyArray is associative array of Date

    // Add elements
    MyArray["Mark"] = "19820201"
    MyArray["Anne"] = "19840604"

    // Display contents of the element with key "Mark"
    Trace("Value of element with key ""Mark"": " + MyArray["Mark"])

    // Loop through the array
    FOR EACH ELEMENT Value, Key, Index OF MyArray
    Trace("Value of element [%Index%] with key [%Key%]: [%Value%]")
    END
  3. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  4. El panel "Traza del depurador" contiene la siguiente información:
    Value of element with key "Mark": 19820201
    Value of element 1 with key Mark: 19820201
    Value of element 2 with key Anne: 19840604
Para obtener más información sobre las variables de tipo Associative array, consulte la página Associative array.
Variables de tipo Structure

El tipo Structure

Una estructura es un tipo de datos personalizado. Las estructuras contienen diferentes tipos de variables.
Usaremos un ejemplo de código pequeño para manipular las estructuras:
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Escriba el siguiente código:
    FullName is Structure
    LastName is string
    FirstName is string
    END
    Este código declara una estructura compuesta por dos variables, LastName y FirstName. Las variables que forman parte de una estructura se llaman "Miembros". Para manipular los miembros, debe declarar una variable del tipo de la estructura.
  3. Ahora vamos a:
    • Declarar una variable de tipo Structure. Agregue el siguiente código WLanguage:
      Contact is FullName
    • Asignar valores a los miembros de la estructura. Agregue el siguiente código WLanguage:
      Contact.LastName = "POLO"
      Contact.FirstName = "MARCO"
  4. Para leer el contenido de un miembro, utilice la siguiente sintaxis:
    <Variable name>.<Member name>
    En nuestro ejemplo, escriba el siguiente código:
    TheLastName is string
    TheLastName = Contact.LastName
    // Displays the content of TheLastName
    Trace(TheLastName)
    // Displays Contact.LastName directly (without using a variable)
    Trace(Contact.LastName)
  5. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  6. El panel "Traza del depurador" muestra:
    POLO
    POLO
Al igual que con los otros tipos de variables, también es posible manipular arrays de estructuras.
Completemos nuestro ejemplo para probar el uso de arrays de estructuras:
  1. Escriba el siguiente código después del código ya introducido:
    // Declare an array of structures
    MyContacts is array of FullName
    Add(MyContacts, Contact)
    Trace(MyContacts[1].LastName + " " + MyContacts[1].FirstName)
    En este código, se crea un array que contiene la estructura FullName, luego se agrega el contacto creado previamente y finalmente se muestran el apellido y el nombre del contacto.
  2. Probemos este código: haga clic en Probar proyecto en los botones de acceso rápido.
  3. El panel "Traza del depurador" ahora muestra:
    POLO
    POLO
    POLO MARCO
Para obtener más información sobre las variables de tipo Structure y Array of structures, consulte la página Structure.
En resumen
En esta lección, vimos algunos de los tipos de variables disponibles en WLanguage:
  • los tipos Date, Time y Duration,
  • el tipo Array,
  • el tipo Structure.
En la próxima lección, veremos cómo manipular algunas de estas variables usando declaraciones condicionales disponibles en WLanguage.
Lección anteriorTabla de contenidoSiguiente lección
Versión mínima requerida
  • Versión 2024
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 15/12/2023

Señalar un error o enviar una sugerencia | Ayuda local