Visual Basic

De Viquipèdia
Dreceres ràpides: navegació, cerca
Visual Basic
Paradigma de programació: Orientació a objectes
Dissenyat per: Alan Cooper
Desenvolupador: Microsoft
Tipus de dades: Estàtic, fort
Influenciat per: QuickBASIC
Ha influenciat: Visual Basic .NET
Sistema operatiu: Microsoft Windows

El Visual Basic és un llenguatge de programació desenvolupat per Alan Cooper per a Microsoft. Aquest llenguatge és un dialecte del BASIC, amb importants afegits. La seva primera versió va ser presentada el 1991 amb la intenció de simplificar la programació utilitzant un ambient de desenvolupament completament gràfic que facilités la creació d'interfícies gràfiques i en certa mesura també la programació en ella mateixa.

Característiques generals[modifica | modifica el codi]

Fitxer:VBDOTNET AutoVervollstaendigen.png
Entorn de programació en Visual Basic .NET

És un llenguatge fàcil d'aprendre (però amb alguns aspectes més complicats per a programadors més experts). Per tant, és tan adequat per a programadors principiants com per a experts, guiat per esdeveniments, I centrat en un motor de formularis poderós que facilita el ràpid desenvolupament d'aplicacions gràfiques. La seva principal innovació, que més tard va ser adoptada per altres llenguatges, va ser l'ús d'un tipus de llibreries, anomenades inicialment vbx i posteriorment ocx, que permeten contenir tota la funcionalitat d'un control i facilitar una ràpida incorporació als formularis.

La seva sintaxi, derivada de l'antic llenguatge BASIC, ha sigut ampliada amb el temps en afegir-s'hi les característiques típiques dels llenguatges estructurats moderns. S'hi ha afegit una implementació limitada de la Programació Orientada a Objectes (els mateixos formularis i controls són objectes), encara que s'admet el polimorfisme mitjançant l'ús de les interfícies, no admet l'herència. No requereix el maneig de punters i consta d'un maneig molt senzill de cadenes de caràcters. Disposa de diverses biblioteques per a gestió de bases de dades, podent connectar amb qualsevol base de dades d'ODBC(Open DataBase Connectivity: Informix, DBase, Access, MySQL, SQL Server, PostgreSQL ,etc.) a través d'ADO (ActiveX Data Objects).

És utilitzat principalment per a aplicacions de gestió d'empreses, a causa de la rapidesa amb la qual pot fer-se un programa que utilitzi una base de dades senzilla, a més de l'abundància de programadors en aquest llenguatge.

El compilador de Microsoft genera executables que necessiten una DLL (biblioteca) perquè els seus executables funcionin, en alguns casos anomenada MSVBVMxy.DLL (acrònim de "Microsoft Visual Basic Virtual Machine x.y", sent x.y la versió) i en altres casos VBRUNXXX.DLL (acrònim de "Visual Basic Runtime X.XX"), que proveeix totes les funcions implementades en el llenguatge. A més, existeixen un gran nombre de biblioteques que faciliten l'accés a moltes funcions del sistema operatiu i la seva integració amb altres aplicacions.

Derivats[modifica | modifica el codi]

  • El seu derivat VBScript (Visual Basic Script) és el llenguatge predeterminat per pàgines web ASP (Active Server Pages).
  • A més, una extensió pròpia del llenguatge anomenada Visual Basic for Applications (VBA) permet codificar mòduls (també anomenats macros) per les aplicacions de Microsoft Office.
  • Especialment a partir de la versió 6 del llenguatge es permet la interacció i generació d'objectes remots que poden ser invocats des de pàgines de scripts (concretament les ASP, encara que també és possible fer un enllaç utilitzant JSP, JavaServer Pages), allotjant-les en servidors web.
  • Visual Basic.NET, part de la plataforma .NET, és un llenguatge pràcticament equivalent en funcionalitats a C# (per exemple, no admet pseudopunters), afegint la capacitat de programació orientada a objectes que les seves anteriors versions (com Visual Basic 6) no posseïen: herència i polimorfisme.

Versions[modifica | modifica el codi]

Les versions de Visual Basic per a Windows són molt conegudes, però existeix una versió de Microsoft Visual Basic 1.0 per a MS-DOS però menys difosa que data de 1992. Era un entorn que, encara que en mode de text, incloïa un dissenyador de formularis en el que es podien arrossegar i deixar anar diferents controls.

L'última versió només per a PCs de 16 bits (el Windows XP és per a PCs 32 bits), en el Windows 3.0, ja tenia una detallada biblioteca de components per a tota classe d'usos. Durant la transició de Windows 3.11 a Windows 95, va aparèixer la versió 4.0 de Microsoft Visual Basic, que podia generar programes de 16 i 32 bits a partir d'un mateix codi font, a costa d'un gran augment en la mida dels arxius "runtime" necessaris. A més, se substituïren els controls VBX pels nous OCX. Amb la versió 5.0, es va implementar per primera vegada la possibilitat de compilar un codi natiu, obtenint una millora de rendiment considerable. Tant aquesta com la posterior 6.0 suportaven característiques pròpies dels llenguatges orientats a objectes, encara que sense algunes funcionalitats importants com la de l'herència, el polimorfisme i la sobrecàrrega. La versió 6.0 continua utilitzant-se massivament, molt més després de l'aparició de l'AO.

Les versions actuals de Visual Basic es basen en la plataforma .NET, encara que mantenen moltes de les característiques del llenguatge original tenen nombroses diferències que els fan incompatibles. Moltes vegades per portar un codi escrit en Visual Basic a Visual Basic .NET és necessari reescriure part del codi. La nova versió del llenguatge és en la major part equivalent al C# encara que presenta algunes diferències. Per això hi ha un debat sobre la validesa d'aquesta nova versió del llenguatge i els seus avantatges i inconvenients sobre C#. També és integrat en el mateix entorn de desenvolupament que els altres: Visual Studio .NET.

Codi d'exemple[modifica | modifica el codi]

Alguns exemples del llenguatge de programació;

Programa per a mostrar un missatge emergent amb les paraules "Hola món!":

Private Sub Form_Load()
MsgBox "Hola món!"
End Sub

Funció que retorna l'àrea d'un cercle:

Private Function AreaDelCercle(Radi As Double) As Double
Const PI = 3.14159265358979323846264
AreaDelCercle = PI * (Radi ^ 2)
End Function

Codis d'error[modifica | modifica el codi]

Llista de codis d'error generats per Visual Basic 6.0 en temps d'execució:

  • 0: Llamada a procedimiento o argumento no válidos
  • 3: Return sin GoSub
  • 5: Llamada a procedimiento o argumento no válidos
  • 6: Desbordamiento
  • 7: Memoria insuficiente
  • 9: El subíndice está fuera del intervalo
  • 10: La matriz está fija o temporalmente bloqueada
  • 11: División por cero
  • 13: No coinciden los tipos
  • 14: Espacio para cadenas insuficiente
  • 16: Expresión demasiado compleja
  • 17: No se puede realizar la operación solicitada
  • 18: Interrupción por parte del usuario
  • 20: Resume sin error
  • 28: Espacio de pila insuficiente
  • 35: Procedimiento Sub o Function no definido
  • 47: Hay demasiados clientes de la aplicación DLL
  • 48: Error al cargar la biblioteca DLL
  • 49: La convención de llamadas a DLL és incorrecta
  • 51: Error interno
  • 52: Nombre o número de archivo incorrecto
  • 53: No se ha encontrado el archivo
  • 54: Modo de archivo incorrecto
  • 55: El archivo ya está abierto
  • 57: Error de E/S del dispositivo
  • 58: El archivo ya existe
  • 59: Longitud de registro incorrecta
  • 61: Disco lleno
  • 62: La entrada de datos ha sobrepasado el final del archivo
  • 63: Número de registro incorrecto
  • 67: Hay demasiados archivos
  • 68: El dispositivo no está disponible
  • 70: Permiso denegado
  • 71: Disco no preparado
  • 74: No se puede cambiar el nombre con una unidad de disco diferente
  • 75: Error de acceso a ruta o archivo
  • 76: No se ha encontrado la ruta de acceso
  • 91: La variable de tipo Object o la variable de bloque With no está establecida
  • 92: El bucle For no está inicializado
  • 93: La cadena modelo no es válida
  • 94: Uso no válido de Null
  • 96: No se pueden desactivar eventos de objeto porque el objeto ya desencadena el número máximo de eventos que admite
  • 97: No se puede llamar a una función friend de un objeto que no sea una instancia de una clase
  • 98: Una llamada a una propiedad o un método no puede incluir una referencia a un objeto privado, como un argumento o un valor de retorno
  • 321: Formato de archivo no válido
  • 322: No se puede crear un archivo temporal necesario
  • 325: Formato no válido en el archivo de recursos
  • 380: El valor de la propiedad no es válido
  • 381: El índice de la matriz de propiedades no es válido
  • 382: No se admite Set en tiempo de ejecución
  • 383: No se admite Set (propiedad de sólo lectura)
  • 385: Se necesita un índice de matriz de propiedades
  • 387: Set no está permitido
  • 393: No se admite Get en tiempo de ejecución
  • 394: No se admite Get (propiedad de sólo escritura)
  • 422: No se encontró la propiedad
  • 423: No se ha encontrado la propiedad o el método
  • 424: Se requiere un objeto
  • 429: El componente ActiveX no puede crear el objeto
  • 430: Esta clase no admite Automatización o la interfaz esperada
  • 432: No se encontró el nombre del archivo o de la clase durante la operación de Automatización
  • 438: El objeto no acepta esta propiedad o método
  • 440: Error de Automatización
  • 442: Se ha perdido la conexión con la biblioteca de tipos o con la biblioteca de objetos para proceso remoto. Haga clic en Aceptar para quitar la referencia.
  • 443: El objeto de Automatización no tiene un valor predeterminado
  • 445: El objeto no admite esta acción
  • 446: El objeto no admite argumentos con nombre
  • 447: El objeto no admite la configuración regional actual
  • 448: No se ha encontrado el argumento con nombre
  • 449: El argumento no es opcional
  • 450: Número de argumentos erróneo o asignación de propiedad no válida
  • 451: El procedimiento Let de la propiedad no está definido y el procedimiento Get no ha devuelto un objeto
  • 452: Número ordinal no válido
  • 453: No se encuentra la función de biblioteca DLL especificada
  • 454: No se encuentra el recurso de código
  • 455: Error en el bloqueo de los recursos de código
  • 457: Esta clave ya está asociada a un elemento de esta colección
  • 458: La variable usa un tipo de Automatización no admitido en Visual Basic
  • 459: El objeto o la clase no admite el conjunto de eventos
  • 460: El formato del Portapapeles no es válido
  • 461: No se ha encontrado el método o el miembro de datos
  • 462: El equipo servidor remoto no existe o no está disponible
  • 463: La clase no está registrada en el equipo local
  • 481: Imagen no válida
  • 482: Error de impresora
  • 735: No se puede guardar el archivo en TEMP
  • 744: No se encontró el texto de búsqueda
  • 746: Reemplazamientos demasiado largos

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Visual Basic Modifica l'enllaç a Wikidata