Ga naar inhoud

eval()-functie in VB 6


anoniem

Aanbevolen berichten

Hallo, Ik wil in VB-code de eval()-functie gebruiken om reguliere expressies te evalueren. Nu heeft VB 6 niet standaard een eval()-functie, maar via (ActiveX) Script Control kan de eval()-functie van VBScript gebruikt worden. Het werkt allemaal redelijk, maar er zitten een paar eigenaardigheidjes in. Bijvoorbeeld de expressie [code:1:bded2a8ec1] 5 = "foobar" [/code:1:bded2a8ec1] vind ie niet fijn (en terecht vanwege de type mismatch). Maak ik er echter [code:1:bded2a8ec1] (2 + 3) = "foobar" [/code:1:bded2a8ec1] van, dan knalt ie er [b:bded2a8ec1]niet[/b:bded2a8ec1] uit, maar evalueert tot False. Dat is natuurlijk niet de bedoeling, want de expressie is gewoonweg niet correct. Weet iemand hoe die eval()-functie precies te werk gaat, want het werkt niet helemaal zoals ik zou willen. Kan iemand uitleggen wat de mogelijkheden en onmogelijkheden van deze functie zijn? Alvast bedankt. PS) Alternatieve oplossingen zijn ook welkom :)
Link naar reactie
[quote:67d60eb09d="JurgenvW"]Het werkt allemaal redelijk, maar er zitten een paar eigenaardigheidjes in. [/quote:67d60eb09d] [quote:67d60eb09d=""] Bijvoorbeeld de expressie [code:1:67d60eb09d] 5 = "foobar" [/code:1:67d60eb09d] vind ie niet fijn (en terecht vanwege de type mismatch). Maak ik er echter [code:1:67d60eb09d] (2 + 3) = "foobar" [/code:1:67d60eb09d] van, dan knalt ie er [b:67d60eb09d]niet[/b:67d60eb09d] uit, maar evalueert tot False. Dat is natuurlijk niet de bedoeling, want de expressie is gewoonweg niet correct. [/quote:67d60eb09d] Gokje. Scenario #1 Waarschijnlijk omdat je in het eerste voorbeeld expliciet zegt: [i:67d60eb09d](integer = string)[/i:67d60eb09d] En in het tweede voorbeeld: [i:67d60eb09d]expressie = string[/i:67d60eb09d] waarbij de expressie uiteindelijk een string oplevert, omdat VB automatisch alles intern naar het juiste formaat probeert om te zetten. [quote:67d60eb09d="JurgenvW"] Weet iemand hoe die eval()-functie precies te werk gaat, want het werkt niet helemaal zoals ik zou willen. [/quote:67d60eb09d] Wat is het resultaat van: [code:1:67d60eb09d] (2 + 3) = "5" [/code:1:67d60eb09d] [quote:67d60eb09d="JurgenvW"] Kan iemand uitleggen wat de mogelijkheden en onmogelijkheden van deze functie zijn? Alvast bedankt. PS) Alternatieve oplossingen zijn ook welkom :)[/quote:67d60eb09d]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...