constante
Es común encontrar código que contiene valores constantes que se repiten una y otra vez. También es posible que el código utilice números difíciles de recordar que no tienen un significado claro.
En estos casos, se pueden utilizar constantes para mejorar en gran medida la legibilidad y el mantenimiento del código. Las constantes son nombres significativos que reemplazan valores numéricos o cadenas que nunca cambian. Aunque las constantes son algo así como variables, no se pueden modificar como variables ni se les pueden asignar nuevos valores. Las constantes provienen de dos fuentes:
1. Las constantes internas o definidas por el sistema las proporcionan las aplicaciones y los controles. Las constantes de Visual Basic se enumeran en las bibliotecas de objetos de Visual Basic (VB) y Visual Basic para aplicaciones (VBA) en el "Explorador de objetos". Otras aplicaciones que proporcionan bibliotecas de objetos, como Microsoft Excel y Microsoft P Project, también proporcionan listas de constantes que se pueden utilizar con los objetos, métodos y propiedades de la aplicación. Las constantes también se definen en la biblioteca de objetos de cada control ActiveX. Para obtener más información sobre el uso del Explorador de objetos, consulte el Capítulo 9, "Programación con objetos".
2. Las constantes simbólicas o definidas por el usuario se declaran mediante la declaración Const. Las constantes definidas por el usuario se describen en la siguiente sección, "Creación de sus propias constantes".
En Visual Basic, los nombres de las constantes están en formato de mayúsculas y minúsculas y su prefijo indica el nombre de la biblioteca de objetos en la que se define la constante. Las constantes de las bibliotecas de objetos de Visual Basic y Visual Basic para Aplicaciones comienzan con vb, como vbTileHorizontal.
Al diseñar prefijos, debe hacer todo lo posible para evitar conflictos accidentales. No deben estar presentes constantes con el mismo nombre pero con valores diferentes. Incluso si se utilizan prefijos, dos bibliotecas de objetos pueden contener las mismas constantes que representan valores diferentes. En este caso, a qué constante se hace referencia depende de qué biblioteca de objetos tiene mayor prioridad. Para obtener información sobre cómo cambiar la prioridad de la biblioteca de objetos, consulte la sección "Cuadro de diálogo Referencias".
Para estar absolutamente seguro de que no se produzcan conflictos de nombres de constantes, puede calificar las referencias a constantes con la siguiente sintaxis:
[libname.][modulename.]constname
Libname suele ser el nombre de clase del control o biblioteca. Modulename es el nombre del módulo en el que se define la constante. Constname es un nombre constante. Cada elemento se define en la biblioteca de objetos y se puede ver en el Explorador de objetos.
Crea tus propias constantes
La sintaxis para declarar constantes es :
[Público|Privado]Constconstantname[Astype]=expresión
El parámetro nombreconstante es un nombre simbólico válido (las reglas son las mismas que para establecer nombres de variables) y la expresión consta de una constante numérica o una constante de cadena y un operador, pero las llamadas a funciones no se pueden utilizar en la expresión;
La declaración Const puede representar cantidades, fechas y horas:
ConstconPi=3.14159265358979
PublicConstconMaxPlanetsAsInteger=9
ConstconReleaseDate=#1/1/95#
Las constantes de cadena también se pueden definir usando la declaración Const:
PublicConstconVersion=07.10.A
ConstconCodeName=Enigma
Se pueden colocar varias declaraciones de constantes en una línea si están separadas por comas:
PublicConstconPi=3.14,conMaxPlanets=9,_
conWorldPop=6E 09
La expresión a la derecha del signo igual (=) suele ser un número o una cadena literal, pero también puede ser una expresión cuyo resultado sea un número o una cadena (aunque la expresión no puede contener una llamada a función). Incluso puedes definir nuevas constantes utilizando constantes definidas previamente.
ConstconPi2=conPi*2 Una vez que se ha definido la constante, se puede colocar en el código para hacerlo más legible. Por ejemplo:
SistemaSolarEstático(1ToconMaxPlanets)
IfnumPeople>conWorldPopThenExitSub
Establecer el rango de constantes definidas por el usuario
Al igual que las declaraciones de variables, las declaraciones Const tienen alcance y utilizan las mismas reglas:
Para crear una constante que exista sólo dentro de un procedimiento, declare la constante dentro del procedimiento.
Para crear una constante que sea válida para todos los procedimientos del módulo pero no para ningún código fuera del módulo, declare la constante en la sección de declaración del módulo.
Para crear una constante que sea válida en toda su aplicación, declarela en la sección de declaración de un módulo estándar y coloque la palabra clave Pública delante de Const. Las constantes públicas no se pueden declarar en un módulo de formulario o módulo de clase.
Para obtener información más detallada sobre el alcance, consulte la sección "Comprensión del alcance de las variables" anteriormente en este capítulo.
Evite las referencias circulares
Debido a que las constantes se pueden definir en términos de otras constantes, se debe tener cuidado de no crear ciclos o referencias circulares entre más de dos constantes. Un bucle ocurre cuando hay más de dos constantes públicas en un programa y cada constante pública está definida por otra. Por ejemplo:
'En el Módulo1:
PublicConstconA=conB*2 'En toda la aplicación
'es válido en'.
'En el Módulo2:
PublicConstconB=conA/2 'En toda la aplicación
'es válido en'.
Si se produce un bucle, Visual Basic generará un mensaje de error al intentar ejecutar la aplicación. El programa no se puede ejecutar sin resolver la referencia circular. Para evitar ciclos, las constantes públicas se pueden restringir a un solo módulo o a unos pocos módulos como máximo.
tipo de datos
Una variable es un lugar utilizado para almacenar valores. Tiene un nombre y un tipo de datos. El tipo de datos de una variable determina cómo se almacenan en la memoria de la computadora los bits que representan esos valores. También puede especificar el tipo de datos de una variable al declararla. Todas las variables tienen un tipo de datos para determinar qué tipo de datos se pueden almacenar.
De forma predeterminada, si el tipo de datos no se especifica en la declaración, el tipo de datos de la variable es Variante. El tipo de datos Variant es como un camaleón: puede representar diferentes tipos de datos en diferentes ocasiones. Cuando la variable especificada es una variable variante, no es necesario realizar conversiones entre tipos de datos. Visual Basic completará automáticamente varias conversiones necesarias.
Sin embargo, si sabe que una variable siempre almacena datos de un tipo específico y declara una variable de ese tipo específico, Visual Basic manejará estos datos de manera más eficiente. Por ejemplo, una variable que almacena el nombre de una persona se representa mejor como un tipo de datos Cadena porque los nombres siempre constan de caracteres.
Además de las variables, los tipos de datos también se utilizan en otras situaciones. Al asignar un valor a una propiedad, el valor tiene un tipo de datos; los parámetros de la función también tienen un tipo de datos. De hecho, en Visual Basic todo lo relacionado con datos está relacionado con tipos de datos.
También puedes declarar una matriz de cualquier tipo primitivo.
Detalles Para obtener más detalles, consulte la sección "Matrices" más adelante en este capítulo. El Capítulo 15, "Diseño para el rendimiento y la compatibilidad", también analiza la mejora del rendimiento de las aplicaciones mediante la selección de tipos de datos.
Declarar variables con tipos de datos
Antes de utilizar una variable que no sea Variant, debe declarar la variable como Astype mediante una declaración Privada, Pública, Dim o Estática. Por ejemplo, las siguientes declaraciones declaran variables de tipo Entero, Doble, Cadena y Moneda respectivamente:
PrivadoIAsEntero
DimAmtAsDouble
EstáticoSuNombreComoCadena
Facturas públicas pagadas como moneda
Una declaración puede combinar varias declaraciones; consulte la siguiente declaración:
PrivadoIAsInteger,AmtAsDouble
PrivadoSuNombreComoCadena,FacturasPagadasComoMoneda
Prueba privada, cantidad, JAsInteger
Tenga en cuenta que si no se proporciona ningún tipo de datos, la variable especificada es del tipo predeterminado. En el ejemplo anterior, las variables Prueba y Cantidad son de tipo de datos Variante. Si su experiencia con otros lenguajes de programación le ha llevado a creer que todas las variables en la misma declaración de declaración tienen el mismo tipo de datos especificado (Entero en este caso), entonces los resultados aquí pueden ser refrescantes.
Tipo de datos numéricos
VisualBasic admite varios tipos de datos numéricos: Integer (entero), Long (entero largo), Single (punto flotante de precisión simple), Double (punto flotante de doble precisión) y Moneda (moneda). Los tipos numéricos generalmente ocupan menos espacio de almacenamiento que los tipos variantes.
Si sabe que una variable siempre almacenará números enteros (como 12) en lugar de números con punto decimal (como 3,57), debe declararla como tipo Integer o Long. Los números enteros realizan operaciones más rápido y ocupan menos memoria que otros tipos de datos. Los tipos enteros son particularmente útiles cuando se usan como variables de contador dentro de los bucles For...Next.
Para obtener más información sobre las estructuras de control, consulte "Descripción general de las estructuras de control" más adelante en este capítulo. Si las variables contienen decimales, se pueden declarar como variables simples, dobles o de moneda. El tipo de datos Moneda admite 4 dígitos a la derecha del punto decimal y 15 dígitos a la izquierda del punto decimal; es un tipo de datos de punto fijo preciso adecuado para cálculos de moneda. Los números de coma flotante (simple y doble) tienen un rango válido mucho mayor que el de la moneda, pero es posible que se produzcan pequeños errores de acarreo.
Tenga en cuenta que los valores de coma flotante se pueden representar como mmmEeee o mmmDeee, donde mmm es la mantisa y eee es el exponente (elevado a la potencia de base 10). El valor positivo máximo del tipo de datos Simple es 3,402823E 38, o 3,4 veces 10 elevado a 38; el valor positivo máximo del tipo de datos Doble es 1,79769313486232D 308, o 1,8 veces 10 elevado a 308. El uso de D para separar las partes de mantisa y exponente de un literal numérico hace que el valor se trate como un tipo de datos Doble. Del mismo modo, usar E de esta manera hace que el valor se trate como un tipo de datos único.
Tipo de datos de bytes
Si la variable contiene un número binario, declarela como una matriz de tipo de datos Byte (las matrices se analizan en "Matrices" más adelante en este capítulo). El almacenamiento de datos binarios en variables de bytes conserva los datos durante la conversión de formato. Cuando una variable de cadena se convierte entre formatos ANSI y Unicode, todos los datos binarios de la variable se destruirán. Visual Basic convierte automáticamente entre ANSI y Unicode en cualquiera de las siguientes situaciones:
Al leer un archivo
Al escribir un archivo
Al llamar a una DLL
Al llamar a métodos y propiedades de un objeto.
Excepto la resta unaria, todos los operadores que pueden operar con números enteros pueden operar con el tipo de datos Byte. Debido a que Byte es un tipo sin signo de 0 a 255, no puede representar números negativos. Entonces, al realizar una resta unaria, VisualBasic primero convierte el byte en un entero con signo.
Todas las variables numéricas se pueden asignar entre sí y a variables de tipo Variante. Antes de asignar un número de punto flotante a un número entero, Visual Basic redondea la parte decimal del número de punto flotante en lugar de eliminarla.
Detalles Para obtener detalles sobre la conversión Unicode y ANSI, consulte el Capítulo 16, "Internacionalización".
Tipo de datos de cadena
Si una variable siempre contiene una cadena y nunca un valor numérico, puede declararla como tipo Cadena.
CadenaSAsprivada
Luego puede asignar una cadena a esta variable y operar con ella usando funciones de cadena.
S=Base de datos
S=Izquierda(S,4)
De forma predeterminada, una variable o parámetro de cadena es una cadena de longitud variable. A medida que se asignan nuevos datos a una cadena, su longitud puede aumentar o disminuir. También es posible declarar que una cadena tenga una longitud fija. Se puede declarar una cadena de longitud fija con la siguiente sintaxis:
Tamaño de cadena*
Por ejemplo, para declarar una cadena de 50 caracteres, utilice la siguiente declaración:
DimEmpNameAsString*50
Si se asignan menos de 50 caracteres a la cadena, la parte faltante de EmpName se rellena con espacios. Si la longitud asignada a la cadena es demasiado larga y no puede convertirse en una cadena de longitud fija, Visual Basic truncará directamente los caracteres sobrantes.
Debido a que las cadenas de longitud fija se llenan con espacios al final del espacio adicional, las funciones Trim y RTrim que eliminan espacios pueden resultar muy útiles cuando se trata de cadenas de longitud fija. Las cadenas de longitud fija en módulos estándar se pueden declarar como Públicas o Privadas. En formularios y módulos de clase, las cadenas de longitud fija deben declararse Privadas.
Para obtener más información, consulte "Funciones Ltrim, RTrim y Trim" en el "Manual de referencia del lenguaje Visual Basic 6.0".
Intercambiar cadenas y números
Si la cadena representa un valor numérico, la cadena se puede asignar a una variable numérica. También se pueden asignar valores numéricos a variables de cadena. Por ejemplo, coloque botones de comando, cuadros de texto y cuadros de lista en un formulario. Ingrese el siguiente código en el evento Click del botón de comando. Ejecute la aplicación y haga clic en el botón de comando.
PrivadoSubCommand1_Click()
DimintXAsInteger
DimstrYAsString
cadenaY=100,23
intX=strY 'Pasar cadena a variable numérica.
List1.AddItemCos(strY) 'Agrega el valor del coseno del valor en la cadena.
'Agregar al cuadro de lista.
strY=Cos(strY) 'Transferir el valor del coseno a la variable de cadena.
Text1.Text=strY 'Mostrar cadena en el cuadro de texto.
FinSub
Visual Basic fuerza automáticamente las variables al tipo de datos apropiado. Tenga cuidado al convertir cadenas y valores numéricos; si el valor de la cadena pasada no es un valor numérico, se producirá un error en tiempo de ejecución.
tipo de datos booleanos
Si el valor de la variable es solo información "verdadero/falso", "sí/no" y "activado/desactivado", se puede declarar como tipo booleano. El valor predeterminado de Booleano es Falso. En el siguiente ejemplo, blnRunning es una variable booleana que almacena una configuración simple de sí/no.
DimblnEjecutandoComoBooleano
'Comprueba si la cinta está girando.
IfRecorder.Direction=1Entonces
blnRunning=Verdadero
endif
Tipo de datos de fecha
Los valores de fecha y hora pueden estar contenidos en el tipo de datos de fecha específico o en variables variantes. Las propiedades generales de fecha se aplican a ambos tipos.
Para obtener más información, consulte la sección "Almacenamiento de valores de fecha/hora en variables variantes" de los "Temas de variables avanzadas" en el manual en línea.
Cuando otros tipos de datos numéricos se convierten a Fecha, el valor a la izquierda del punto decimal representa información de Fecha y el valor a la derecha del punto decimal representa Hora. La medianoche son las 0 y el mediodía las 0,5. Los números negativos representan fechas anteriores al 31 de diciembre de 1899 d.C.
->