anoniem Geplaatst: 1 augustus 2003 Delen Geplaatst: 1 augustus 2003 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 :) Quote Link naar reactie
anoniem Geplaatst: 1 augustus 2003 Auteur Delen Geplaatst: 1 augustus 2003 Webprogrammeren -> Programmeren. Quote Link naar reactie
anoniem Geplaatst: 3 augustus 2003 Auteur Delen Geplaatst: 3 augustus 2003 [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] Quote Link naar reactie
anoniem Geplaatst: 5 augustus 2003 Auteur Delen Geplaatst: 5 augustus 2003 Ok, [code:1:97ef21b5e2] (2+3)="5" [/code:1:97ef21b5e2] levert idd TRUE op. Dat verklaart een hoop. Bedankt voor de tip. Quote Link naar reactie
anoniem Geplaatst: 5 augustus 2003 Auteur Delen Geplaatst: 5 augustus 2003 [quote:db086ccc57="JurgenvW"]Ok, [code:1:db086ccc57] (2+3)="5" [/code:1:db086ccc57] levert idd TRUE op. Dat verklaart een hoop. Bedankt voor de tip.[/quote:db086ccc57] Als je er het volgende van maakt, dan gaat het in beide gevallen goed. [code:1:db086ccc57]CStr(2+3) = "5"[/code:1:db086ccc57] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen