PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad WINDEV 25!
Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Esta lección abarcará los siguientes temas
  • ¿Qué es una variable?
  • Declarar una variable
  • Asignación y uso
  • Tipos de variables
  • Alcance de variables
  • Alcance global
  • Alcance local
  • Diagrama resumen del alcance
  • Operaciones simples sobre las variables
  • Consejos
  • Detalles de tipo variable: las variables String
  • Tipo String
  • Ejemplo práctico
  • Detalles de otro tipo de variable: Arrays
  • Declaración
  • Rellenar un array y acceder a los elementos
  • Arrays avanzados
Lección 2.1. Las variables
Esta lección abarcará los siguientes temas
  • ¿Qué es una variable?
  • Tipos de variables.
  • Alcance de variables.
  • El tipo de cadena en los detalles.
  • El tipo Array en detalles.
Duración de las clases

Tiempo estimado: 1 h
Lección anteriorTabla de contenidoSiguiente lección
¿Qué es una variable?
En 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.
Declarar e inicializar una variable
Una variable está representada por:
  • un nombre: Nombre dado a la variable para que pueda ser utilizada por el lenguaje.
  • un tipo: Naturaleza de los datos almacenados en la variable (ver Tipos de variables).
  • un valor: Información almacenada en la variable.
  • un alcance: Límite de uso de la variable en el programa (ver Alcance de variables). El alcance se define dependiendo de la ubicación en la que se declara la variable.

Declarar una variable

La variable debe ser declarada (lo que significa creada) antes de que pueda ser utilizada.
  • Ejemplo de declaración simple:
    Price is currency
    • Price representa el nombre de la variable.
    • is se utiliza para declarar la variable. El lenguaje cotidiano se utiliza en WLanguage.
    • currency corresponde al tipo de variable.
  • Ejemplo de declaración múltiple:
    LastName, FirstName are strings
    • LastName, FirstName representan los nombres de las variables.
    • are se utiliza para declarar un conjunto de variables.
    • strings representa el tipo de variables.

Asignación y uso

Al declarar una variable, puede asignarle o darle un valor.
Por ejemplo:
// Assign a currency variable
Price = 1256.67
// Assign a string variable
LastName = "Doe"
El operador = se utiliza para realizar esta asignación.

Observación

En WLanguage, el carácter " (doble comilla) es el carácter utilizado para delimitar una cadena de caracteres. En el ejemplo anterior, las comillas de dobles se utilizan para asignar el valor Doe a la variable LastName.
El contenido variable puede ser leído y manejado: todo lo que tienes que hacer es usar el nombre dado a la variable para acceder a ella.
El siguiente ejemplo permite leer y mostrar el contenido de la variable Price:
Info(Price)
Tipos de variables
El tipo de variable se utiliza para especificar 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 correspondiente a la información que debe almacenarse. Por lo tanto, optimizará la memoria y evitará errores de cálculo o de proceso al utilizar variables en las funciones WLanguage.
La mayoría de estos tipos de variables se utilizarán en este tutorial.
Para más detalles, ver la ayuda sobre el tipo deseado (ver Tipos de variables).

Observación

Existen otros tipos de variables como arrays, structures, dates, times, entre otros, ...
Las variables avanzadas también están disponibles. Estos tipos avanzados agrupan todas las características del elemento actualmente utilizado en una sola variable.
Los tipos avanzados permiten manipular principalmente documentos XML, correos electrónicos, archivos XLS, etc., ... Este tipo de variable se utilizará más adelante en este tutorial.
Alcance de variables
Las variables pueden ser declaradas en cualquier parte del código. Sin embargo, según la posición de su declaración, la variable no puede utilizarse para realizar procesos o cálculos.. Esto se denomina alcance de las variables.
Hay dos tipos de alcance disponibles:
  • Global.
  • Local.

Alcance global

Global significa que la variable tiene una visibilidad extendida en el código. La variable es visible fuera del lugar donde fue declarada. Hay varios niveles disponibles:
  • Proyecto y conjunto de procedimientos,
  • Ventana, Ventana móvil, Página, Reporte.
Una variable declarada a nivel de proyecto tiene la mayor visibilidad en el programa. La variable es visible en cualquier lugar, en todos los procesos del programa. Sin embargo, no debe declarar demasiadas variables con este alcance: la memoria que ocupa la variable siempre está reservada incluso si no se utiliza la variable. La utilización de un gran número de variables globales no es recomendable en la arquitectura del programa.. Para pasar las variables a un proceso, recomendamos que utilice parámetros (ver "Parámetros y resultado de un procedimiento" para más detalles).
Una variable declarada en un conjunto de procedimientos y una variable declarada en el proyecto tienen la misma visibilidad. La ventaja de declarar una variable a nivel de un Conjunto es agrupar (o clasificar) las variables por tema (conjunto) para hacer más legible el proceso de inicialización del proyecto.
Una variable declarada en la Ventana, Ventana móvil, Página o Reporte limita el alcance de la variable a todos los procesos del elemento (Ventana, Ventana móvil, Página o Reporte) y de sus controles. Esto permite encapsular y limitar los usos.

Alcance local

Local significa que la variable tiene una visibilidad limitada en el código. La variable es visible en el proceso en el que fue declarada. Esto permite restringir el uso de variables al proceso.

Diagrama resumen del alcance

Alcance de variables
Una variable es global cuando se declara:
  • en el evento "Inicialización" del proyecto (o en el evento "Declaración" del conjunto de procedimientos). La variable es global al proyecto.
  • en el evento "Declaraciones globales" de la ventana, página o reporte. La variable es global al elemento (ventana, página o reporte) donde fue declarada.
En todos los demás casos, una variable es local al proceso o evento donde se declara.
Operaciones simples sobre las variables
Se pueden utilizar varios operadores matemáticos para realizar cálculos sobre variables:
  • + para realizar una suma.
  • - para realizar una resta.
  • * para realizar una multiplicación.
  • / para realizar una división.
Se pueden utilizar otros operadores para realizar los cálculos:
  • ++ para incrementar de 1 (suma 1 a la variable).
  • - para disminuir de 1 (restar 1 de la variable).
  • += para asignar sumando un valor.
  • - = asignar restando un valor.
Ejemplos:
// Declaration of variables
Cnt is int
V1 is int
Res is numeric

// Assignment
Cnt = 10
V1 = 3

// Use of operators
Cnt = Cnt + 3   // Cnt is equal to 13
Cnt ++ // Cnt is equal to 14
Cnt -= 8 // Cnt is equal to 6
Cnt = Cnt * V1 // Cnt is equal to 18
Res = Cnt / 5 // Res is equal to 3.6
Los operadores de comparación también están disponibles:
  • < menor que
  • > mayor que
  • <= inferior o igual a
  • >= mayor que o igual a
  • <> diferente de
  • = igual a
Otros operadores están disponibles. Para obtener más información, consulte Lista de operadores.

Consejos

  • Es muy conveniente nombrar las variables con nombres largos (y evitar nombres cortos como i, j, k, ....). Cuando vuelva a leer el programa, podrá recordar fácilmente el propósito de la variable.
  • Para definir el nombre de las variables, se aceptan todos los caracteres Unicode (incluidos los caracteres acentuados).. Esto significa una legibilidad mejorada! Precaución: algunos caracteres no están permitidos: espacio, =, punto, coma,....
  • 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 esta variable debe utilizarse para los cálculos.
    • utilizar una variable de cadena si esta variable debe utilizarse para almacenar dígitos sin realizar cálculos (por ejemplo, para almacenar el número de seguridad social).
Detalles de tipo variable: las variables String
Las variables String son los tipos de variables más utilizados.
Presentemos en detalle algunas características disponibles para este tipo de variables.

Tipo String

El tipo String se utiliza para almacenar y manipular caracteres y strings.
Ya hemos visto cómo inicializar una variable de cadena:
LastName is string
// Assign a string variable
LastName = "Doe"
No hay necesidad de declarar la longitud de la cadena: esta longitud se adapta automáticamente cuando se utiliza la variable.

Consejo

Para inicializar una variable de cadena con un texto en varias líneas, utilice la siguiente sintaxis:
<Variable name> = [
               <Text of line 1>
               <Text of line 2>
               ]
Por ejemplo:
MyString is string
MyString = [
Example of
multi-line string
]
También puede asignarle el contenido de un control que manipula cadenas a una variable 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 string variable
// with the content of EDT_LastName edit control
LastName = EDT_LastName
Además de los principales operadores de comparación, se utilizan varios operadores potentes para gestionar las extracciones y concatenaciones en modo avanzado.
Por ejemplo:
  • " + ": para concatenar cadenas.
  • " ~= ": para comprobar la igualdad flexible.
Se utilizan funciones específicas de WLanguage para realizar varias operaciones: búsqueda, extracción, tamaño, cambio a caracteres en mayúsculas, ....
Ejemplos:
str is string
str = "WINDEV is a great tool"
// Extract a sub-string from left
Info(Left(str, 6))  // Displays "WINDEV"
// Extract a sub-string from right
Info(Right(str, 4))  // Displays "tool"

Observación

Las diferentes funciones de WLanguage pueden ser anidadas. Una función WLanguage puede utilizarse como parámetro de otra función WLanguage.
Por ejemplo:
Info(Middle(Left(str, 13), 8, 2)) // Displays "is"
Para obtener más información, consulte Manipular cadenas de caracteres y Funciones para manipular cadenas de caracteres.

Ejemplo práctico

Para poner en práctica los diferentes conceptos de esta lección, vamos a crear varias ventanas. Estas ventanas se crearán en el proyecto "WD My first windows".
  • Abra el proyecto "WD My First Windows", si es necesario.
    Para ello, en la página de inicio (Ctrl + <), haga clic en "Curso de autoformación" y seleccione "My first windows (Exercise)".
    Atención: WINDEV propone abrir la copia local o sobrescribir el proyecto con la versión fuente. Para continuar trabajando en su proyecto iniciado en la sección anterior, seleccione "Abrir la copia local"..
Para manipular las variables Character String, vamos a crear la siguiente ventana:
Manipulación de cadenas
Esta ventana permite:
  • buscar una cadena dentro de otra.
  • comparar dos cadenas.
  • Cree una nueva ventana en blanco:
    1. Haga clic en Crear un elemento en los botones de acceso rápido. La ventana para crear nuevos elementos se abre: haga clic en "Ventana" y luego en "Ventana".. El asistente de creación de ventanas se abre automáticamente.
    2. Seleccione "En blanco" y la plantilla "Phoenix".
    3. Valide. La ventana se crea automáticamente en el editor. A continuación, se abre la ventana para guardar el elemento.
    4. Especifique el título del elemento: "Variables". El nombre del elemento ("WIN_Variables") se propone automáticamente.
    5. Haga clic en "OK" para validar la información que se muestra en la ventana.
  • Para crear el control Campo de entrada que contiene la cadena:
    1. En la pestaña "Creación", en el grupo "Controles frecuentes", haga clic en Creación de una control Campo de entrada.
    2. Haga clic en el lugar donde se creará el control Campo de entrada (en la parte superior, en el centro de la ventana, por ejemplo).
    3. Haga clic con el botón derecho del ratón en el control y seleccione "Descripción".
    4. En la pestaña "General", especifique:
      • El nombre del control: "EDT_Text".
      • El título de control: "Text".
    5. Seleccione la pestaña "Contenido". Esta pestaña permite definir el valor predeterminado del control Campo de entrada. Introduzca el texto "WINDEV is a great tool".
    6. Valide la ventana de descripción. El texto escrito se muestra directamente en el control.
  • El contenido del control se trunca en el editor. Para que el control se muestre correctamente:
    1. Seleccione el control.
    2. Amplíe el control en ancho con las manijas de tamaño para que el contenido se muestre completamente.
Buscar una cadena
  • Para crear un control Botón que permita buscar una cadena:
    1. En la pestaña "Creación", en el grupo "Controles frecuentes", haga clic en Crear un control Botón.
    2. Haga clic en la ubicación donde se creará el control (debajo del control Campo de entrada, por ejemplo).
    3. Haga clic en el control que acaba de crear. El texto que se muestra en el control se puede editar. Introduzca el texto "Find a string".
    4. Pulse Intro para validar la entrada.
    5. Adapte el tamaño del control.
    6. Abra los eventos del control (F2).
    7. Introduzca el siguiente código en el evento "Clic" WLanguage:
      sSoughtString is string = "WINDEV"
      nPos is int
      nPos = Position(EDT_Text, sSoughtString)
      IF nPos = 0 THEN
      Info(sSoughtString + " not found in the text")
      ELSE
      Info(sSoughtString + " found at position " + nPos)
      END
      Echemos un vistazo a este código de WLanguage:
      • Se declaran dos variables: una variable String correspondiente a la cadena buscada y una variable Integer correspondiente 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 sSoughtString en el contenido del control EDT_Text.
      • Si la función Position devuelve 0, significa que no se encontró la cadena buscada. La función Info muestra un mensaje.
    8. Cierre la ventana de código (haga clic en la X en la esquina superior derecha del editor de código).
  • Ahora vamos a hacer la prueba de la ventana:
    1. Haga clic en Ejecutar una prueba de ventana entre los botones de acceso rápido (o pulse F9).
    2. La ventana creada se guarda y se inicia en ejecución. Haga clic en "Find a string". Se encontró la palabra WINDEV.
      Palabra encontrada
    3. Modifique el contenido del control Campo de entrada (reemplace WINDEV por WD, por ejemplo) y haga clic en "Find a string". La palabra WINDEV no se encuentra.
    4. Cierre la ventana.
Comparar dos cadenas
  • Para crear un control Botón que permita comparar dos cadenas:
    1. En la pestaña "Creación", en el grupo "Controles frecuentes", haga clic en Crear un control Botón.
    2. Haga clic en la ubicación donde se creará el control (por ejemplo, a la derecha de la control Botón existente).
    3. Haga clic en el control que acaba de crear. El texto mostrado en el botón se vuelve editable. Introduzca el texto "Compare two strings".
    4. Pulse Intro para validar la entrada.
    5. Adapte el tamaño del control.
    6. Abra los eventos del control (F2).
    7. En el evento "Clic" del control, introduzca el siguiente código WLanguage:
      sStringToCompare is string = "WINDEV"
       
      IF EDT_Text ~= sStringToCompare THEN
      Info("The displayed text corresponds to " + sStringToCompare)
      ELSE
      Info("The displayed text does not correspond to " + sStringToCompare)
      END
      Analicemos este código WLanguage:
      • Se declara una variable String. Esta variable contiene la cadena que se va a comparar.
      • El operador ~= corresponde a una 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.
      • Si la comparación es verdadera, el control Campo de entrada corresponde a la palabra de la cadena que se va a comparar, independientemente de las mayúsculas y minúsculas.
    8. Cierre la ventana de código (haga clic en la X en la esquina superior derecha del editor de código).
  • Ahora vamos a hacer la prueba de la ventana:
    1. Haga clic en Ejecutar una prueba de ventana entre los botones de acceso rápido (o pulse F9).
    2. Haga clic en "Compare two strings". Un mensaje indica que la comparación no es correcta.
      Palabra no encontrada
    3. Valide el mensaje.
    4. En el control Campo de entrada, escriba "WINDEV" en mayúsculas y haga clic en "Compare two strings". Se encontró la palabra WINDEV. Valide el mensaje.
    5. Modifique el contenido del control Campo de entrada (reemplace WINDEV por WD, por ejemplo) y haga clic en "Compare two strings". La palabra WINDEV también se encuentra. Valide el mensaje.
    6. Cierre la ventana.
Detalles de otro tipo de variable: Arrays
Los arrays son un tipo común de variable.
Un array es un tipo estructurado que se utiliza para agrupar un conjunto de elementos del mismo tipo. Se puede acceder directamente a cada elemento del array con su índice.
Se utilizan funciones específicas de WLanguage para manipular, arrays y sus elementos.. Estas funciones comienzan con "Array".

Declaración

La declaración de una variable Array se realiza de la siguiente manera:
<Array name> is array of <Type of array elements>
Por ejemplo:
arrString is array of strings
arrInt is array of int

Rellenar un array y acceder a los elementos

Al declarar el array, este está vacío. Los elementos son añadidos por Add a través de la siguiente sintaxis:
Add(<Array name>, <Element value>)
Para acceder a los elementos array, utilice la siguiente sintaxis:
<Array name> [<Element subscript>]

Importante

Los subíndices de los elementos del array comienzan en 1.
Ejemplo:
// Create an array of strings
MyArray is array of strings
// Add elements
Add(MyArray, "WINDEV")
Add(MyArray, "WEBDEV")
Add(MyArray, "WINDEV Mobile")
// Display the content of third element
Trace(MyArray[3])  // Displays "WINDEV Mobile"

Consejo

Inicializar un array rápidamente
Para inicializar un array, también puede utilizar la siguiente sintaxis:
// Declares an array
arrDay is array of strings
// Initialization with
// the names of the days of week
arrDay = ["Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"]
Para obtener más información, consulte Array.

Arrays avanzados

WLanguage también propone arrays avanzados: array con varias dimensiones, array de arrays, array asociativo, array de estructuras, array de objetos, ...
Para obtener más información, consulte Array y Associative array.
Lección anteriorTabla de contenidoSiguiente lección
Versión mínima requerida
  • Versión 25
Comentarios
Haga clic en [Agregar] para publicar un comentario