Gegevenstypes
Klik hier voor een .NET versie.
[Soorten] - [Declaratie] - [Bereik] - [Functies eigen aan gegevenstypes] -
[Conversie] - [Oefeningen]
VB kent verschillende soorten gegevenstypes:
- Boolean: True (waar) of False (onwaar)
- Currency: een bedrag met een waarde tussen
-922.337.203.685.477,5808 en 922.337.203.685.477,5807.
- Double: een reëel getal tussen -1.79769313486231E308 en -4.94065645841247E-324
voor negatieve getallen, en tussen 4.94065645841247E-324 en 1.79769313486232E308 voor
positieve getallen. Het gebruik van dit type wordt aangeraden voor berekeningen die
precisie vereisen.
- Date: een datum (notatie dd/mm/yyy of mm/dd/yyy, afhankelijk van de
instellingen van Windows) of een uur (notatie #hh:mm:ss#
- Integer: een geheel getal tussen -32.768 en 32,767
- Long: een lang integer tussen -2.147.483.648
en 2.147.483.647
- Object: gebruikt voor het opstarten van andere toepassingen (Word, Excel,
Access, ...) en er een connectie mee op te zetten
- Single: een reëel getal tussen -3,402823E38 en -1,401298E-45 voor negatieve
getallen en tussen 1.401298E-45 en 3.402823E38 voor positieve getallen.
- String: een letterreeks
- Variant: één van de voorgaande (behalve Object) [niet beschikbaar
in .NET]
Daarnaast bestaan er nog samengestelde gegevenstypes:
- Array: een genummerde reeks variabelen
- Type: een groepering van gegevens
- Klasse: een meer complexe en meer performante
groepering van gegevens
Declaratie
Je maakt een variabele met
Dim naamvariabele As Type
Dim a As Integer maakt een geheel getal dat een locale variabele heet.
Speciale gevallen zijn:
Global a As Integer
om een variabele te maken dat overal in het project kan gebruikt worden, een globale
variabele.
Static b As Integer
om een statische variabele te maken. Die variabele is locaal (eigen aan één
procedure), maar de waarde blijft behouden van oproep tot oproep.
Functies eigen aan gegevenstypen
- IsNumeric(n): is waar als n een getal is, of naar een getal kan geconverteerd worden.
- IsDate(n): is waar als n een datum is of naar een datum/uur kan geconverteerd worden.
- Format() geeft een gegeven weer zoals men dat specifieert. Bijvoorbeeld:
- Format(getal, "00") geeft een getal weer met minstens twee cijfers en geen
cijfers na de komma.
?Format(8.53,"00")
?Format(118,"00")
- Format(getal,".00") geeft een getal weer met altijd twee cijfers na de komma.
?Format(8.5,".00")
- Format(datumuur, "hh:mm:ss") geeft een datum of uur weer met uur, minuut en
seconde.
- Format(datumuur, "dd/mm/yyyy") geeft een datum of uur weer met dag, maand en
jaar.
- Stringfuncties.
- Tijdfuncties.
- Zie ook: Beperkingen op de invoer.
Bereik
Een variabele heeft ook een bepaald bereik, dwz een afgelijnd stuk van het programma
waarbinnen die variabele bestaat.
- Binnen één enkele functie of procedure. Als we schrijven
Sub MijnProcedure
Dim a As Integer
a = 100
End Sub
dan is a alleen gedefinieerd en bepaald binnen die procedure. Als de procedure
is afgelopen, is a weg.
- Binnen één module of formulier. Als we bovenin een formulier of een module
(in de sectie General) schrijven
Dim a As Integer
a = 100
dan bestaat a in het hele formulier of de hele module. Daabuiten bestaat
a niet.
- Binnen een heel project. Als we in de sectie General van een formulier schrijven
Dim a As Integer
a = 100
Dan kan in het hele project a gebruikt worden als integer, en kan overal
die waarde gewijzigd of opgevraagd worden.
- In .NET is het bereik van een publieke variabele de Namespace waarin die
variabele gedefinieerd is.
Conversie
In sommige gevallen kan je gegevens converteren van het ene type naar het andere.
| De functie |
geeft als resultaat een |
| CBool |
Boolean |
| CCur |
Currency |
| CDate |
Date |
| CDbl |
Double |
| CInt |
Integer |
| CLng |
Long |
| CSng |
Single |
| CStr |
String |
| CVar |
Variant |
Let daar wel mee op: je kan niet zo maar gelijk wat naar gelijk wat omzetten.
- Gaat wel
CBool("True") geeft de Boolean True
CInt(2) geeft een integer 2.
CDate(#"23" & ":" & "00" & ":00")
geeft de datum 23 uur (vandaag).
- Gaat niet: alles wat te ver uit elkaar ligt
CBool(7) '7 komt niet overeen met True of False
CDate(27) 'VB weet niet hoe van 27 een datum kan gemaakt worden
CInt("") 'Een lege string kan geen getal worden.
Als algemene regel geldt dat er fouten zullen optreden als VB niet weet wat gedaan met de
invoer.
Oefeningen
Gegevens
Operatoren
Wie
Wie2: berekenen van leeftijd en begroeten in functie van het uur
Variabelen: statische en globale variabelen
Loket1: Klanten trekken en nummer en kunnen daarmee terecht aan
het eerste loket dat vrij is.
Volley: een scorebord voor een volleyballmatch
Conversie
Ascii: Chr(ASCII code) en Asc(letter)
Kalender: een eewigdurende kalender op je scherm.
ZomerWinterdagen: de dagen zoeken die even lang zijn
dan een gegeven dag.
[VB Web] - [hlrnet] - [copyright]