Categorieën
  • Mappen Bestanden (1)
  • MS Access Database (0)
  • Spelletjes Vb.net (2)
  • VB.net (5)
  • VBA Visual basic for applications (4)
  • XML LINQ (1)
  • Inhoud blog
  • Reeksen, Dictionaries, Hashtable
  • Vier op een rij
  • Het belang van Mappen en bestanden
  • XML en LINQ
  • Vb.net en Tekstbestanden
  • String
  • Zeeslag
  • Voorwaarden en Lussen
  • Over willekeurige getalen.
  • Van VBA naar VB.net
    Beoordeel dit blog
      Zeer goed
      Goed
      Voldoende
      Nog wat bijwerken
      Nog veel werk aan
     
    Zoeken in blog

    MS Access VBA VB.Net
    Ontwerpen van Database en VB.net voor Dummies
    05-04-2013
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.Over willekeurige getalen.

    Willekeurige getallen genereren, is een getal even of oneven

    In veel programma's moeten op een bepaald ogenblik willekeurige getallen gegeneerd worden. In VB.net brengt men de code daartoe best onder in een 'class'. Hier worden een aantal class'es besproken, waar gewoon een willekeurig getal tussen twee grenzen gegeneerd wordt, maar ook waar tussen twee grenzen één zelfde waarde slechts éénmaal mag voorkomen. Ook code waarmee men kan bepalen indien het getal even of oneven is.

    clsWilGet1:Willekeurig getal van Byte-datatype (0 tot 255) tussen twee limieten mag maar éénmaal voorkomen.

    'System.Security.Cryptography moet in de class geImporteerd worden.
    Imports System.Security.Cryptography
    Public Class clsWilGet1
        Dim _set As BitArray
        Dim _min As Byte
        Dim _max As Byte
        Dim _tel As Integer
    

    
        Public Sub New(ByVal min As Byte, ByVal max As Byte)
            _min = min
            If (min > max) Then
                _max = min
            Else
                _max = max
            End If
            _set = New BitArray(_max - _min + 1)
            _tel = max - min
        End Sub
    

    
        Public Function GeefVolgendGetal() As Integer
            Dim randomGetal(0) As Byte
            Dim testGetal As Integer
            Dim rng As New RNGCryptoServiceProvider()
    
            Do While _tel >= 0
                rng.GetBytes(randomGetal)
                testGetal = CInt(randomGetal(0))
                testGetal = (CInt(testGetal) Mod (_max - _min + 1)) + _min
                If Not _set.Item(testGetal - _min) Then
                    _set.Set(testGetal - _min, True)
                    _tel -= 1
                    Return testGetal
                End If
            Loop
    
            Return -1
        End Function
    

    
        Public Sub Reset()
            _tel = _max - _min
            _set.SetAll(False)
        End Sub
    End Class
    
    

    clsWilGet2:Willekeurig getal van Integer-datatype tussen twee limieten mag maar éénmaal voorkomen.

    Public Class clsWilGet2
        Private _min, _max As Integer
        Private _set() As Integer 'Array of integers
        Private _index As Integer
        

    
        Public Sub New(ByVal min As Integer, ByVal max As Integer)
            _min = min
            If (min > max) Then
                _max = min
            Else
                _max = max
            End If
    
            'vorm de reeks
            _set = InitReeks()
    
        End Sub
    

    
        Private Function InitReeks() As Integer()
    
            Dim random As New Random()
            Dim getallen(_max - _min) As Integer
            Dim waarde As Integer = _min
            Dim tmp As Integer
            Dim index1 As Integer
            Dim index2 As Integer
    
            'vul de rees met de getallen
    
            For x As Integer = 0 To getallen.Length - 1
                getallen(x) = waarde
                waarde += 1
            Next
    
            'haal door elkaar 1000 iteraties moeten voldoende zijn
    
            For x As Integer = 0 To 1000
                'neem twee willekeurige indexen
                index1 = random.Next(0, getallen.Length)
                index2 = random.Next(0, getallen.Length)
    
                'haal door elkaar
                tmp = getallen(index1)
                getallen(index1) = getallen(index2)
                getallen(index2) = tmp
    
            Next
           
    
            Return getallen
    
        End Function
    

    
        Public Function GetNext() As Integer
    
            Dim result As Integer
    
            If (_index < _set.Length) Then
                result = _set(_index)
                _index += 1
            Else
                result = -1
            End If
    
            Return result
    
        End Function
    End Class
    

    clsWilGet3:Willekeurig getal van Integer-datatype tussen twee limieten mag maar éénmaal voorkomen.

    Public Class clsWilGet3
        Private rand As Random
        Private pool As List(Of Integer)
    
    Sub New(ByVal min As Integer, ByVal max As Integer) rand = New Random pool = New List(Of Integer)(max - min) For i As Integer = min To max pool.Add(i) Next End Sub
    Public Function GeefItem() As Integer If pool.Count = 0 Then Return -1 ' geef willekeurige index van de pool List. Dim index As Integer = rand.Next(0, pool.Count) ' geef weer. Dim draw As Integer = pool(index) ' verwijder van de pool List. pool.RemoveAt(index) Return draw End Function End Class

    clsWilGetal1, clsWilGetal2, clsWilGetal3 weergeven in een console-toepassing.

    Sub Main()
            
    
            Dim raad1 As New clsWilGet1(1, 100)
            Dim raad2 As New clsWilGet2(1, 100)
            Dim raad3 As New clsWilGet3(1, 100)
            For intTel As Integer = 0 To 20
                Console.Write(raad1.GeefVolgendGetal & " - " & raad2.GetNext & " - " & raad3.GeefItem & vbCrLf)
            Next
            Console.ReadLine()
        End Sub
    

    Willekeurig getal tussen twee limieten

    
    ''' Generen van een willekeurig getal tussen 0 en 7, men kan de limieten wijzigen
    

    
    Public Class clsWilGetal
        Private Shared _intWilGetal As Integer
    

    
    
        Public Shared ReadOnly Property Genereer() As Integer
            Get
                Dim intBoven As Integer = 6
                Randomize()
                _intWilGetal = CInt(Int((intBoven * Rnd()) + 1))
    
                Return _intWilGetal
            End Get
    
        End Property
    
    End Class
    

    Is een getal Even of Oneven?

    Sub OnOfEven()
            Dim intTeller As Integer = 1
            Dim strEven As String = "even"
            Dim strOneven As String = "oneven"
            Dim strResul As String = ""
            Do While intTeller < 100 'hier tot 100 maar kan meer zijn
                If intTeller Mod 2 = 0 Then 'getal is even
                    strResul = strEven
                Else
                    strResul = strOneven
                End If
                Console.WriteLine(intTeller & "is " & strResul)
                intTeller = intTeller + 1
            Loop
        End Sub
    

    Priemgetallen weergeven tot opgegeven bovengrens

    Public Function Priem(ByVal intMaxGrens As Integer) As String
            Dim i As Integer
            Dim j As Integer
            Dim bflag As Boolean
            Dim strResul As String = ""
            For i = 1 To intMaxGrens
                bflag = True
                For j = 2 To i / 2
                    If i Mod j = 0 Then
                        bflag = False
                    End If
                Next
                If bflag Then
    
                    strResul += i.ToString & " "
                End If
            Next
            Return Trim(strResul)
        End Function
    

    05-04-2013 om 00:00 geschreven door Toon

    0 1 2 3 4 5 - Gemiddelde waardering: 4/5 - (1 Stemmen)
    Categorie:VB.net
    >> Reageer (0)
    03-04-2013
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.Van VBA naar VB.net

    VB.net

    Waarom VB.net

    Wie VBA onder de knie heeft ondervindt in eerste instantie niet te veel problemen om naar VB.net over te stappen. Na enige initiatie en gewenning stelt men echter vast dat de mogelijkheden extreem ruimer zijn.
    Bovendien stelt Microsoft gratis een 'Expression' - versie van Visual studio ter beschikking.
    Het betreft hier werkelijk een bijzondere krachtige ontwikkelings omgeving, in het Engels IDE of Integrated Development Environment.
    Deze Blog heeft niet de pretentie om deze toepassing, ik werk met zowel de versie 2010 als 2012 , volledig uit de doeken te doen. Wel kan ik iedereen die graag programma's maakt, al zij het in de hobbysfeer zoals bij mezelf, deze ontwikkelingsomgeving warm aanbevelen.

    Waar te bekomen ?

    Via volgende link kan men gratis Visual Studio Express 2012 for Windows Desktop downloaden.
    Volg de instructies en na het dowloaden en de installatie rest u nog enkel de applicatie gratis te registreren op de website van Microsoft.

    Hoe onder de knie krijgen ?

    Ik zelf heb mijn toevlucht gezocht bij enkele boeken over VB.net, aanraders zijn :

    Deze Blog.

    Op deze blog wil ik graag ervaringen delen. Van practische problemen waarop ik gezocht heb geef ik hier graag mijn oplossing.
    De laatste tijd leg ik mij toe op het ontwikkelen van eenvoudige spelletjes zoals, 'Pietjesbak', 'Vier op een rij', 'Zeeslag'. Eens deze volledig op punt staan zal ik deze op deze blog ter beschikking stellen.

    03-04-2013 om 00:00 geschreven door Toon

    0 1 2 3 4 5 - Gemiddelde waardering: 2/5 - (4 Stemmen)
    Categorie:VB.net
    >> Reageer (0)
    27-03-2013
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.VBA Procedures Sub en Function.

    VBA Procedures Sub en Function.

    VBA code wordt uitgevoerd in Sub of Function Procedures. Terwijl beide voorgaanden ingekapseld zitten in een Module of een Class-Module.

    • Sub : Bij een Sub wordt een actie uitgevoerd maar wordt er niets geretourneerd. Bijvoorbeeld een formulier openen, een bericht laten zien aan de gebruiker via de MsgBox funtie. Een Sub kan al dan niet argumenten nemen, en kan Public of Private zijn
    • Function : Bij een kan er ook een actie uitgevoerd worden maar er wordt een waarde (zie Datatypes) geretourneerd.

    27-03-2013 om 00:00 geschreven door Toon

    0 1 2 3 4 5 - Gemiddelde waardering: 5/5 - (2 Stemmen)
    Categorie:VBA Visual basic for applications
    >> Reageer (0)
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.VBA Data Types

    VBA Datatypes wijken gedeeltelijke af van deze in VB en VB.net niettegenstaande men soms dezelfde naam gebruikt !


    Datatype Omvang Info Naam conventie
    Byte 1 byte 0 tot 255 Dim bytNummer as Byte
    Boolean 2 bytes True of False Dim blnWaar as Boolean
    Integer 2 bytes -32.768 tot 32.767 Dim intGetal as Integer
    Long 4 bytes geheel getal + en - Dim lngGetal as Long
    Single 4 bytes na de komma Dim sngGetal As Single
    Double 8 bytes na de komma Dim dblGetal as Double
    Currency 8 bytes valuta Dim curGeld As Currency
    Date 8 bytes Dim datDatum as Date
    Object 4 bytes Een refentie naar object Dim objNaam As Object
    String 10 bytes + lengte Dim strLetters as String
    String vast Lengte Tot 65.400 Dim strVastLengte As String * 10
    Variant 22 bytes Dim varGelijkWat As Variant
    User defined Afhankelijk van bepalingen Dim udtZelfGemaakt As ZelfGemaakt

    27-03-2013 om 00:00 geschreven door Toon

    0 1 2 3 4 5 - Gemiddelde waardering: 4/5 - (3 Stemmen)
    Categorie:VBA Visual basic for applications
    >> Reageer (0)
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.Wat is VBA

    Wat is VBA

    VBA is een objectgeoriënteerde  programmeer taal. Men kan een volledige datastructuur met datatypes en  bewerkingen definiëren. Men kan ook met andere objecten werken voor zover er in  VBA een referentie naar gelegd wordt. Deze worden gevisualiseerd in de object  browser.
    VBA is beschikbaar in alle Microsoft Office programma's, en ieder programma  beschikt over een code Editor die kan geopend worden door Alt+F11 te drukken.

    Ieder object kan beschikken over meerdere  eigenschappen (properties), bepaalde kunnen gewijzigd worden, andere  kunnen enkel gelezen worden. Evenzo beschikt ieder object in Access over  eigenschappen, voorbeeld het formulier-object heeft een caption (opschrift),  breedte, hoogte, achtergrondkleur enz , eigenschap.

    Op objecten kunnen ook methodes  (methods) toegepast worden, welke een actie met het object tot stand  brengen. Zo heeft het DoCmd-object van Access de Beep, OpenForm...enz methode.

    Een Event of gebeurtenis doet  zich voor wanneer een actie met het object plaatsgrijpt,bijvoorbeeld een  formulier die opent.

    Een programma maakt ook gebruik van  variabelen. Voor een variabele wordt in het geheugen een plaats  gereserveerd waar een waarde kan gestockeerd worden. Dit doet men aan de hand  van het de Dim verklaring. Door een geschikte naam  te geven wordt de code leesbaarder. Aan variabelen kunnen verschillende datatypes toegekend worden. Men kan de efficiënte  van de code in de handwerken door de juiste datatypes te hanteren. Het is ten  zeerste aangeraden variabelen te declaren en de het juiste datatype toe te  wijzen, wijst men geen dattype toe dan kent VBA automatisch het datatype variant  toe. Het variant datatype reserveert van alle andere datatype het meeste  geheugen, en laat de code daardoor minder performant werken.
    Door bovenaan een module 'Option Explicit' te vermelden legt men zichzelf de  discipline de variabelen uitdrukkelijk te declaren

    27-03-2013 om 00:00 geschreven door Toon

    0 1 2 3 4 5 - Gemiddelde waardering: 5/5 - (1 Stemmen)
    Categorie:VBA Visual basic for applications
    >> Reageer (0)


    Archief per week
  • 29/04-05/05 2013
  • 08/04-14/04 2013
  • 01/04-07/04 2013
  • 25/03-31/03 2013

    E-mail mij

    Druk op onderstaande knop om mij te e-mailen.


    Gastenboek

    Druk op onderstaande knop om een berichtje achter te laten in mijn gastenboek


    Blog als favoriet !


    Blog tegen de regels? Meld het ons!
    Gratis blog op http://blog.seniorennet.be - SeniorenNet Blogs, eenvoudig, gratis en snel jouw eigen blog!