AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV 2024!
Ayuda / Tutorial WINDEV / Tutorial - Fundamentos de WLanguage
  • Lección 2 - Variables
  • Ejemplo práctico
  • ¿Qué es una variable?
  • Declarar una variable
  • Asignación y uso
  • Tipos de variables
  • Operaciones simples con variables
  • Consejos
  • Detalles de un tipo de variable: Variables de tipo String
  • Tipo String
  • Construir una cadena
  • Operaciones con cadenas
  • Buscar una cadena
  • Comparar dos cadenas
  • En resumen

Tutorial - Fundamentos de WLanguage

Lección 2 - Variables
Abordaremos los siguientes temas:
  • ¿Qué es una variable?
  • Tipos de variables.
  • El tipo String en detalle.
Durée de la leçon 20 min
Ejemplo práctico
Para seguir las etapas de esta lección, utilizaremos el proyecto "WLanguage" que creamos en la lección anterior (consulte Un proyecto para descubrir WLanguage en la lección 1).
Vamos a escribir el código directamente en el código de inicialización del proyecto. Esta es la primera sección de código que se ejecuta cuando se prueba el proyecto: podemos hacer pruebas muy sencillas, sin utilizar una interfaz.
Para ver los resultados de nuestras operaciones, utilizaremos la función Trace, que permite escribir la información deseada tanto en una ventana de salida como en el panel del depurador ubicado en la parte inferior del editor. En este tutorial, utilizaremos el panel Depurador.
Ventana de salida
Ventana de salida
Panel
Panel "Traza del depurador"

Este panel no se muestra de forma predeterminada. El panel "Traza del depurador" se mostrará automáticamente cuando pruebe el ejemplo.


Primera etapa para las pruebas: abra los eventos WLanguage del proyecto. Para ello:
  1. Haga clic derecho en la "P" que se encuentra junto a las pestañas de elementos abiertos. El menú contextual se abre.
    Menú contextual del proyecto
  2. Seleccione "Código del elemento".
  3. El editor de código muestra los diferentes eventos WLanguage asociados al proyecto.
¿Qué es una variable?
En un lenguaje de programación, las variables permiten almacenar datos. Estas son secciones de memoria que contienen cadenas, números, etc.
Las variables permiten realizar cálculos, comparaciones o simplemente almacenar información para utilizarla más adelante.
Declaración e inicialización de una variable
Una variable está representada por:
  • un nombre: Nombre dado a la variable para poder manipularla en el código.
  • un tipo: Tipo de datos almacenados en la variable. En este tutorial, veremos en detalle algunos tipos de variables.
  • un valor: Información almacenada en la variable.
  • un alcance: Alcance de la variable en el programa. El alcance se define dependiendo de la ubicación en la que se declara la variable. Para obtener más información sobre este tema, consulte Alcance de variables.

Declarar una variable

Antes de utilizar una variable, es necesario declararla (es decir, crearla).
Primero, vamos a escribir una declaración simple:
  • En el evento "Inicialización" del proyecto "WLanguage", escriba el siguiente código:
    Price is currency
  • En este código:
    • Price representa el nombre de la variable.
    • is permite declarar la variable. WLanguage utiliza un lenguaje común y legible.
    • currency corresponde al tipo de variable.
También puede declarar varios elementos:
  • En el evento "Inicialización" del proyecto "WLanguage", escriba el siguiente código:
    LastName, FirstName are strings
  • En este código:
    • LastName, FirstName representan los nombres de las variables.
    • are permite declarar un conjunto de variables.
    • strings representa el tipo de variable.
Aquí se puede observar la coloración específica de los diferentes elementos de la declaración: se utiliza un color específico para el nombre de la variable, y otro para su tipo. Estos colores permiten identificar rápidamente los diferentes elementos del código.

Asignación y uso

Al declarar una variable, puede asignarle o darle un valor. El operador = permite asignar un valor.

Vamos a hacer una prueba con este operador. En el evento "Inicialización" del proyecto "WLanguage", agregue el siguiente código:
// Assign a value to a currency variable
Price = 1256.67
// Display the contents of the variable
Trace(Price)
// Assign a value to a string variable
LastName = "Doe"
// Display the contents of the variable
Trace(LastName)

En este código, se asigna un valor a las variables Price y LastName. Para leer y manipular el contenido de la variable, basta con utilizar su nombre. En este ejemplo, el contenido de las variables se muestra en el panel "Traza del depurador" gracias a la función Trace.
Probemos nuestro código:
  1. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  2. El proyecto se ejecuta y el editor de código reaparece.
  3. 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".
    Advertencia
    No confunda el panel "Depurador" con el panel "Traza del depurador".
  4. El panel "Traza del depurador" muestra el contenido de las variables:
    1256.67
    Doe
Tipos de variables
El tipo de variable indica el tipo de información que se almacenará en la variable. Los tipos más comunes son:
  • boolean (True o False),
  • string ("Doe"),
  • integer (1234),
  • currency (12,32),
  • real (7,766666),
  • etc.
Importante: Utilice el tipo que corresponde a la información que debe almacenarse. Esto permite optimizar la memoria y evitará errores de cálculo o de procesos al utilizar variables en funciones WLanguage.
La mayoría de estos tipos de variables se utilizarán en este tutorial.
Información adicional:
  • WLanguage también incluye variables "avanzadas", que agrupan todas las características del elemento actual en una sola variable. Estos tipos avanzados se pueden utilizar para manipular documentos XML, correos electrónicos, archivos XLS y más.
    Para obtener más información, consulte la ayuda sobre el tipo deseado (ver Tipos de variables).
  • Las variables se pueden declarar en cualquier parte del código. Sin embargo, dependiendo de dónde se declaren, es posible que no puedan utilizarse para realizar procesos o cálculos. Esto se conoce como Alcance de variables.
Operaciones simples con variables
Se pueden utilizar varios operadores matemáticos para realizar cálculos con las variables:
  • + para realizar una suma.
  • - para realizar una resta.
  • * para realizar una multiplicación.
  • / para realizar una división.
También es posible utilizar otros operadores para realizar cálculos:
  • ++ para incrementar 1 unidad (suma 1 a la variable).
  • - - para disminuir 1 unidad (resta 1 a la variable).
  • += para asignar valores a una variable agregando un valor.
  • - = para asignar valores a una variable restando un valor.
Para tener una visión general de las operaciones que se pueden realizar, haremos una pequeña prueba:
  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:
    // Declaration of variables
    Counter is int
    V1 is int
    Res is numeric

    // Assignment
    Counter = 10
    V1 = 3

    // Use of operators
    Counter = Counter + 3   // Counter is set to 13
    Trace(Counter)
    Counter ++ // Counter is set to 14
    Trace(Counter)
    Counter -= 8 // Counter is set to 6
    Trace(Counter)
    Counter = Counter * V1 // Counter is set to 18
    Trace(Counter)
    Res = Counter / 5 // Res is set to 3.6
    Trace(Res)
    Este código permite realizar diferentes operaciones y muestra el resultado en la ventana de salida.
Probemos nuestro código:
  1. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  2. El panel "Traza del depurador" contiene el valor de la variable Counter para cada operación:
    13
    14
    6
    18
    3.6
Los operadores de comparación también están disponibles:
  • < menor que
  • > mayor que
  • <= menor que o igual a
  • >= mayor que o igual a
  • <> diferente de
  • = igual a
Existen otros tipos de operadores. Para obtener más información sobre los operadores, consulte Lista de operadores.

Consejos

  • Se recomienda utilizar nombres largos para las variables (y evitar nombres como i, j, k, etc.). Cuando vuelva a leer el programa, podrá recordar fácilmente el propósito de la variable.
  • WLanguage acepta todos los caracteres Unicode (incluidos los acentos) para los nombres de las variables. Esto permite una mejor legibilidad. Atención: algunos caracteres no están permitidos: espacios, signos de igual, puntos, comas, etc.
  • Es muy importante dar el tipo adecuado a la variable de acuerdo a su uso. Por ejemplo, para almacenar varios dígitos, puede que sea necesario:
    • utilizar una variable numérica si se utilizará para hacer cálculos.
    • utilizar una variable de cadena si debe utilizarse para almacenar dígitos sin realizar cálculos (para almacenar el número de seguridad social, por ejemplo).
Detalles de un tipo de variable: Variables de tipo String
Las variables de tipo String son uno de los tipos de variables más utilizados.
Veamos algunas de las funcionalidades disponibles para este tipo de variable.

Tipo String

El tipo String permite almacenar y manipular caracteres y cadenas de caracteres.
Ya hemos visto cómo inicializar una variable de tipo String:
LastName is string
// Assign a value to a string variable
LastName = "Doe"
En WLanguage:
  • las comillas dobles (") se utilizan para delimitar una cadena de caracteres. En el ejemplo anterior, se utilizan comillas dobles para asignar el valor Doe a la variable LastName.
  • no hay necesidad de declarar la longitud de la cadena: la longitud se adapta automáticamente al utilizar la variable.

También puede utilizar texto multilínea. Por ejemplo:
MyString is string
MyString = "
Example of
multiline string
"
¿Se puede asignar el contenido de un control a una cadena?
Sí. También puede asignar el contenido de un control que manipula cadenas a una variable de tipo String. El siguiente código permite asignar el contenido de un control Campo de entrada a una variable de tipo String:
LastName is string
// Assign a value to a string variable
// the content of EDT_LastName edit control
LastName = EDT_LastName

Construir una cadena

Como hemos visto anteriormente, es muy fácil declarar y asignar un valor a una cadena. Por ejemplo:
MyBuiltString is string
ProductName is string = "WINDEV"
Sin embargo, en muchos casos una cadena puede estar compuesta por elementos que pueden variar, como por ejemplo, el nombre de un producto. En este caso, existen varios métodos para construir cadenas. Vamos a probar estos métodos y ver sus ventajas e inconvenientes.

Volvamos a nuestro ejemplo de "WLanguage":
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. En el evento "Inicialización" del proyecto "WLanguage", escriba el siguiente código:
    MyBuiltString is string
    ProductName is string = "WINDEV"

    // Concatenation
    MyBuiltString = ProductName + " is my go-to development tool" + "!"
    Trace("Concatenation: " + MyBuiltString)

    // Direct input of the variable ([% %] syntax)
    MyBuiltString = "[%ProductName%] is my go-to development tool!"
    Trace("Direct input: " + MyBuiltString)

    En este código, la variable MyBuiltString se construye utilizando 2 métodos diferentes:
    • Método 1: concatenación simple usando el operador '+' . Las cadenas se agregan una después de la otra. Este es el método más común. Sin embargo, tiene serias limitaciones si el mensaje se va a mostrar al usuario en una aplicación multilingüe. Dependiendo de la sintaxis del idioma utilizado, podría ser necesario ubicar la variable en una posición diferente, lo que no sería posible en este caso.
    • Método 2: uso directo de la variable. Este método combina todas las ventajas: simplicidad para la traducción y la legibilidad. Simplemente escriba el nombre de la variable deseada entre las etiquetas [% y %].
    Para cada método, la función Trace muestra el resultado en el panel "Traza del depurador".

Vamos a probar el código:
  1. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
    El proyecto se ejecuta y el editor de código reaparece.
  2. El panel "Traza del depurador" contiene los anteriores ejemplos de concatenación:
    Concatenation: WINDEV is my go-to development tool!
    Direct input: WINDEV is my go-to development tool!
El método utilizado para concatenar cadenas puede mejorar la legibilidad y facilitar la traducción, pero también puede repercutir en el rendimiento. Así que el primer método tarda aproximadamente el doble que el segundo.

Operaciones con cadenas

WLanguage ofrece un gran número de operadores y funciones para extraer y manipular cadenas.

Para hacernos una idea de la potencia y sencillez de WLanguage para manipular cadenas, haremos una prueba rápida en la que vamos a recorrer una cadena y extraer subcadenas.
  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:
    ProductList is string = "
    WINDEV
    WEBDEV
    WINDEV Mobile
    "
    FOR EACH STRING AProduct OF ProductList SEPARATED BY CR
    Trace(AProduct)
    END
    Product is string = ProductList.ExtractString(2, CR)
    Trace(Product)
  3. Este código permite recorrer una cadena multilínea y extraer un elemento de ella. Analicemos este código:
    • ProductList es una cadena multilínea.
    • La instrucción "FOR EACH STRING" permite recorrer los diferentes elementos de la cadena. Estos elementos están separados por un retorno de carro (CR).
      En WLanguage, no tiene que preocuparse por las mayúsculas y minúsculas cuando escriba en el editor de código: las mayúsculas y minúsculas correspondientes se aplicarán automáticamente a medida que escriba.
    • En nuestro caso, la función <Cadena>.ExtractString extrae el segundo elemento de la cadena ("WEBDEV").
  4. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  5. El panel "Traza del depurador" contiene los siguientes elementos:
    WINDEV
    WEBDEV
    WINDEV Mobile
    WEBDEV
También es posible extraer partes de una cadena utilizando los operadores [ y ]. Estos operadores permiten extraer la parte deseada del texto, especificando la posición del carácter inicial y/o final.
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Introduzca el siguiente código:
    Text is string = "San Francisco"
    // Display the fifth character in the trace: "F"
    Trace(Text[5])
    // Display characters 5 to 10 in the trace: "Franci"
    Trace(Text[5 TO 10])
    // Display characters from the fifth position in the trace: "Francisco"
    Trace(Text[5 TO])
    // Display first 10 characters in the trace: "San Franci"
    Trace(Text[TO 10])
    // Display 3 characters from the 10th character in the trace: "isc"
    Trace(Text[10 ON 3])
  3. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  4. El panel "Traza del depurador" contiene la siguiente información:
    F
    Franci
    Francisco
    San Franci
    isc
WLanguage también permite definir el formato de las cadenas con la función <Cadena>.Format. Esto permite especificar que una cadena se muestre sin acentos, en mayúsculas o minúsculas, etc. Veamos un ejemplo rápido:
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Introduzca el siguiente código:
    InitialText is string = "WINDEV is my go-to development tool!"

    // Remove accents from string and set to lowercase
    InitialText = InitialText.Format(ccIgnoreAccent + ccLowCase)
    Trace(InitialText)
    // Remove spaces from string and set to uppercase
    InitialText = InitialText.Format(ccUpCase + ccIgnoreInsideSpace)
    Trace(InitialText)
  3. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  4. El panel "Traza del depurador" contiene la siguiente información:
    windev is my go-to development tool!
    WINDEVISMYGO-TODEVELOPMENTTOOL!
Información adicional: Para obtener más información, consulte Manipular cadenas de caracteres y Funciones de cadenas.

Buscar una cadena

La búsqueda es una de las operaciones más comunes que se realiza en las cadenas. En algún momento, todo el mundo ha tratado de saber si una palabra está en una cadena, cuál es su posición, etc. WLanguage facilita esta operación.

Vamos a buscar una cadena dentro de otra:
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Introduzca el siguiente código WLanguage:
    SearchString is string = "WINDEV"

    OriginalText is string = "
    Development tools:
    - WINDEV
    - WEBDEV
    - WINDEV Mobile
    "

    Pos is int
    Pos = Position(OriginalText, SearchString)
    IF Pos = 0 THEN
    Trace("[%SearchString%] was not found in the text")
    ELSE
    Trace("[%SearchString%] was found at position [%Pos%]")
    END

    Analicemos este código WLanguage:
    • Se declaran varias variables:
      • una variable de tipo String que corresponde a la cadena a buscar.
      • una variable de tipo String que corresponde al texto en el que se realizará la búsqueda.
      • una variable de tipo Integer que corresponde a la posición de la cadena buscada.
    • La función Position permite buscar una cadena dentro de otra. En nuestro ejemplo, buscamos el contenido de la variable SearchString en el contenido de OriginalText.
    • Si la función Position devuelve 0, significa que no se encontró la cadena buscada.
    • La función Trace muestra un mensaje indicando si se encontró la cadena, así como su posición.
  3. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  4. El panel "Traza del depurador" contiene la siguiente información:
    WINDEV was found at position 23

Comparar dos cadenas

Las comparaciones son otra operación común que se realiza en las cadenas: por ejemplo, para saber si dos cadenas son iguales.
Vamos a comparar dos cadenas:
  1. Elimine el código en el evento "Inicialización" del proyecto (presione Ctrl + A para seleccionar todo y "Supr" para eliminar).
  2. Introduzca el siguiente código WLanguage:
    // Strings to compare
    String1 is string = "DEVELOPMENT"
    String2 is string = "DEV"

    // The 2 strings are compared with the ~= (flexible equality) operator
    IF String1 ~= String2 THEN
    Trace("The 2 strings are equal")
    ELSE
    Trace("The 2 strings are different")
    END

    Analicemos este código WLanguage:
    • Se declaran dos variables de tipo String. Estas contienen las cadenas a comparar.
    • La comparación se realiza con el operador ~= (igualdad flexible). Este operador permite realizar una comparación sin distinguir mayúsculas y minúsculas, espacios antes y después de la cadena, y acentos.
    • Finalmente, se muestra el resultado de la comparación.
  3. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  4. El panel "Traza del depurador" contiene la siguiente información:
    The 2 strings are different
  5. Vuelva al código y cambie la declaración de String2:
    String2 is string = "Development"
  6. Pruebe el proyecto haciendo clic en Probar proyecto en los botones de acceso rápido.
  7. El panel "Traza del depurador" contiene la siguiente información:
    The 2 strings are equal
    Aunque las cadenas no contengan las mismas mayúsculas y minúsculas, son iguales.
Información adicional: Existen varios operadores de comparación. Para obtener más información, consulte operadores de comparación.
En resumen
En esta lección aprendimos qué es una variable, cómo declararla y cómo utilizarla. Vimos más de cerca como manipular variables de tipo String.
En la próxima lección, aprenderemos más sobre las variables manipulando fechas, horas, duraciones, arrays y estructuras.
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: 08/02/2024

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