elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Octubre 2008, 16:26  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderadores: Hendrix, E0N)
| | |-+  NekroAyuda: Algunas Instrucciones y funciones interesantes en Visual Basic.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: NekroAyuda: Algunas Instrucciones y funciones interesantes en Visual Basic.  (Leído 796 veces)
NekroByte

Desconectado Desconectado

Mensajes: 636


NekroByte++


Ver Perfil WWW
NekroAyuda: Algunas Instrucciones y funciones interesantes en Visual Basic.
« en: 27 Marzo 2005, 10:36 »

Citar
Extraido de las librerías de Micrososoft Developer NetWork.

Option Explicit (Instrucción)

Se usa en elnivel de módulo para forzar declaraciones explícitas de todas las variables en dicho módulo.

Sintaxis:
Código:
Option Explicit

Comentarios: Si se usa, la instrucción Option Explicit debe aparecer en un módulo antes de cualquier procedimiento.

Cuando Option Explicit aparece en un módulo, debe declarar explícitamente todas las variables mediante las instrucciones Dim, Private, Public, ReDim o Static. Si intenta usar un nombre de variable no declarado, ocurrirá un error entiempo de compilación.

Si no usa la instrucción Option Explicit todas las variables no declaradas son Variant, a menos que el tipo predeterminado esté especificado de otra manera con una instrucción Deftipo.

Nota: Utilice Option Explicit para evitar escribir incorrectamente el nombre de una variable existente o para evitar confusiones en el código, donde elalcance de la variable no está claro.



Ejemplo:

En este ejemplo se utiliza la instrucción Option Explicit para forzar la declaración explícita de todas las variables. Si se intenta utilizar una variable no declarada se obtiene un error en el tiempo de compilación. La instrucción Option Explicit sólo se utiliza en el nivel de módulo.

Código:
Option Explicit   ' Fuerza la declaración explícita de variables.
Dim MiVar   ' Declara la  variable.
MiEnt = 10   ' La variable no declarada genera un error.
MiVar = 10   ' La variable declarada no generará error.
En línea

-- - -^[NekroByte]^- - --
NekroByte

Desconectado Desconectado

Mensajes: 636


NekroByte++


Ver Perfil WWW
Option Base (Instrucción)
« Respuesta #1 en: 27 Marzo 2005, 10:37 »

Option Base (Instrucción)

Se usa en elnivel de módulo para declarar el límite inferior predeterminado para subíndices dematriz.

Sintaxis:
Código:
Option Base {0 | 1}

Comentarios:

Como la base predeterminada es 0, la instrucción Option Base nunca se requiere. Sin embargo, si usa la instrucción debe aparecer en un módulo antes de cualquier procedimiento. Option Base sólo puede aparecer una vez en un módulo y debe preceder a las declaraciones de matriz que incluyen las dimensiones.

Nota: La cláusula To en las instrucciones Dim, Private, Public, ReDim y Static proporciona una forma más flexible de controlar el intervalo de los subíndices de una matriz. Sin embargo, si no establece explícitamente el límite inferior con una cláusula To, puede usar Option Base para cambiar el límite inferior predeterminado a 1. La base de una matriz creada con la función Array o la palabra clave ParamArray es cero; Option Base no afecta a ParamArray (o la función Array, cuando se califica con el nombre de su biblioteca de tipo, por ejemplo VBA.Array).

La instrucción Option Base sólo afecta el límite inferior de las matrices en el módulo donde se ubica la instrucción.



Ejemplo:

En este ejemplo se utiliza la instrucción Option Base para eludir el valor predeterminado 0 del subíndice de la matriz de base. La función LBound devuelve el menor subíndice disponible de la dimensión indicada de la matriz. La instrucción Option Base sólo se utiliza en el nivel de módulo.

Código:
Option Base 1   ' Establece los subíndices de matriz predeterminados a 1.

Dim Menor
Dim MiMatriz(20), Matriz2D(3, 4)   ' Declara las variables de la matriz.
Dim MatrizCero(0 To 5)   ' Elude el subíndice base predeterminado.
' Utilice la función LBound para determinar los límites inferiores de las matrices.
Menor = LBound(MiMatriz)   ' Devuelve 1.
Menor = LBound(Matriz2D, 2)   ' Devuelve 1.
Menor = LBound(MatrizCero)   ' Devuelve 0.
En línea

-- - -^[NekroByte]^- - --
NekroByte

Desconectado Desconectado

Mensajes: 636


NekroByte++


Ver Perfil WWW
Deftipo (Instrucciones)
« Respuesta #2 en: 27 Marzo 2005, 10:37 »

b]Deftipo (Instrucciones)[/b]

Se usan en el nivel de módulo para establecer el tipo de datos predeterminado para variables, argumentos pasado a procedimientos, y el valor devuelto por los procedimientos Function y Property Get cuyos nombres comienzan con los caracteres especificados.

Sintaxis

DefBool intervalo_letras[, intervalo_letras] . . .

DefByte intervalo_letras[, intervalo_letras] . . .

DefInt intervalo_letras[, intervalo_letras] . . .

DefLng intervalo_letras[, intervalo_letras] . . .

DefCur intervalo_letras[, intervalo_letras] . . .

DefSng intervalo_letras[, intervalo_letras] . . .

DefDbl intervalo_letras[, intervalo_letras] . . .

DefDec intervalo_letras[, intervalo_letras] . . .

DefDate intervalo_letras[, intervalo_letras] . . .

DefStr intervalo_letras[, intervalo_letras] . . .

DefObj intervalo_letras[, intervalo_letras] . . .

DefVar intervalo_letras[, intervalo_letras] . . .

El argumento requerido intervalo_letras posee la sintaxis siguiente:

letra1[-letra2]

Los argumentos letra1 y letra2 especifican el intervalo de nombres para el cual puede establecer un tipo de datos predeterminado. Cada argumento representa la primera letra del nombre de la variable, argumento, procedimiento Function o procedimiento Property Get y puede ser cualquier letra del abecedario. En intervalo_letras no se distingue entre mayúsculas y minúsculas.

Comentarios

El nombre de la instrucción determina el tipo de datos:
InstrucciónTipo de datos
DefBoolBoolean
DefByteByte
DefIntInteger
DefLngLong
DefCurCurrency
DefSngSingle
DefDblDouble
DefDecDecimal (no se admite actualmente)
DefDateDate
DefStrString
DefObjObject
DefVarVariant

Por ejemplo, en el siguiente fragmento de programa, "Mensaje" es una variable de cadena:
Código:
DefStr A-Q
. . .
Código:
Mensaje = "Espacio de pila insuficiente."

Una instrucción Deftipo sólo afecta al módulo donde se usa. Por ejemplo, una instrucción DefInt en un módulo sólo afecta al tipo de datos predeterminado de las variables, los argumentos pasados a procedimientos y el tipo devuelto para los procedimientos Function y Property Get declarados en ese módulo; el tipo de datos predeterminado de variables, argumentos y tipos devueltos en otros módulos no se ven afectados. Si no se declara explícitamente con una instrucción Deftipo, el tipo de datos predeterminado para todas las variables, todos los argumentos, todos los procedimientos Function y todos los procedimientos Property Get es Variant.

Cuando especifica un intervalo de letras, generalmente define el tipo de datos para variables que comienzan con las letras de los 128 primeros caracteres del juego de caracteres. Sin embargo, cuando especifica el intervalo de letras A–Z, establece el tipo de datos predeterminado para todas las variables, incluyendo cualquiera que comience con caracteres internacionales provenientes de la parte extendida del juego de caracteres (128–255).

Tras especificar el intervalo A–Z no es posible seguir redefiniendo cualquier subintervalo de variables mediante instrucciones Deftipo. De hecho, una vez definido un intervalo, si incluye una letra definida anteriormente en otra instrucción Deftipo, ocurrirá un error. Sin embargo, puede especificar explícitamente el tipo de datos de cualquier variable, definida o no, mediante una instrucción Dim con una cláusula As tipo. Por ejemplo, puede usar el siguiente código en el nivel de módulo para definir una variable como Double incluso aunque el tipo de datos predeterminado sea Integer:
Código:
DefInt A-Z
Dim PorcentajeImpuesto As Double

Las instrucciones Deftipo no afectan a elementos de tipos definidos por el usuario ya que estos deben declararse explícitamente.



Ejemplo:

En este ejemplo se muestran varios usos de la instrucción Deftipo para establecer el tipo de datos predeterminado de variables y funciones cuyos nombres comienzan con caracteres especificados. El tipo de datos predeterminado sólo se puede anular mediante una asignación explícita con la instrucción Dim. Las instrucciones Deftipo sólo se pueden utilizar en el nivel módulo (es decir, no se admiten dentro de procedimientos).

Código:
' Los nombres de variables que comienzan con las letras A a K son del tipo Integer de manera predeterminada.
DefInt A-K
' Los nombres de variables que comienzan con las letras L a Z son del tipo String de manera predeterminada.
DefStr L-Z
ValCálculo = 4   ' Inicializa Integer.
VarCadena = "Hola aquí"   ' Inicializa String.
UnaVar = "Hola"    ' Causa el error "No coinciden los tipos".
Dim Cálculo As Double   ' Establece explícitamente el tipo como Double.
Cálculo = 2.3455   ' Asigna un Double.

' Las instrucciones Deftipo también se aplican a procedimientos Function.
CalcNum = ATestFunction(4)   ' Llama a una función definida por el usuario.
' Definición del procedimiento Function ATestFunction.
Function ATestFunction(INúmero)
   ATestFunction = INúmero * 2   ' El valor devuelto es un entero.
End Function
En línea

-- - -^[NekroByte]^- - --
NekroByte

Desconectado Desconectado

Mensajes: 636


NekroByte++


Ver Perfil WWW
Array (Función)
« Respuesta #3 en: 27 Marzo 2005, 10:38 »

Array (Función)
     
Devuelve unavariante que contiene una matriz.

Sintaxis:
Código:
Array(lista_argumentos)

Elargumento lista_argumentos requerido es una lista de valores delimitados por comas que se asignan a los elementos de la matriz contenida en el tipo Variant. Si no se especifica ningún argumento, se crea una matriz de longitud cero.

Comentarios

La notación usada para hacer referencia a cualquier elemento de una matriz consiste en el nombre de la variable seguido por un paréntesis que contiene un número de índice para el elemento deseado. En el ejemplo siguiente, la primera instrucción crea una variable llamada A de tipo Variant. La segunda instrucción asigna una matriz a la variable A. La última instrucción asigna a otra variable el valor contenido en el segundo elemento de la matriz.

Código:
Dim A As Variant
A = Array(10,20,30)
B = A(2)

El límite inferior de una matriz creada mediante la función Array se determina por el límite inferior especificado con la instrucción Option Base, a menos que Array esté autorizado con el nombre de la biblioteca tipo (por ejemplo VBA.Array). Si se autoriza con el nombre de la biblioteca tipo, Array no se verá afectado por Option Base.

Nota: Una variable Variant no declarada como una matriz puede contener, no obstante, una matriz. Una variable Variant puede contener una matriz de cualquier tipo, excepto cadenas de longitud fija ytipos definidos por el usuario. Aunque una variable Variant que contiene una matriz es conceptualmente diferente de una matriz cuyos elementos son de tipo Variant, se tiene acceso a los elementos de la matriz del mismo modo.



Ejemplo:

Ejemplo de la función Array
En este ejemplo se utiliza la función Array para devolver una Variant que contiene una matriz.

Código:
Dim MiSemana, MiDía
MiSemana = Array("Lun", "Mar", "Miér", "Jue", "Vie", "Sáb", "Dom")
' Se da por hecho que el límite inferior es igual a 1
' en los valores devueltos (mediante Opción Base)
MiDía = MiSemana(2)   ' MiDía contiene "Mar".
MiDía = MiSemana(4)   ' MiDía contiene "Jue".
En línea

-- - -^[NekroByte]^- - --
NekroByte

Desconectado Desconectado

Mensajes: 636


NekroByte++


Ver Perfil WWW
Tema Cerrado.
« Respuesta #4 en: 27 Marzo 2005, 10:38 »

Textos Extraidos de las Librerías de Microsoft Developer NetWork.

Dudas, comentarios, aclaraciones y consultas en otro hilo, en otro tema, en otra publicación, en otro post.

Hilsener.
En línea

-- - -^[NekroByte]^- - --
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC