vraag over batch file

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
vraag over console application

Ik ben een programma aant make waar nogal veel in gecontroleerd moet worden of een bepaalde waarde wel een intiger is, en heb daarvoor de volgende code gemaakt:

PHP:
    Private Sub failsafe(ByVal bericht As String, ByRef cijfer As Integer, ByVal procedure As String)
        Dim tempVar As String
        Console.WriteLine(bericht)
        tempVar = Console.ReadLine
        'Check for contents
        If (tempVar <> "") Then
            'Check for numeretical value
            If IsNumeric(tempVar) Then
                cijfer = CByte(tempVar)
                'Check to see if value is integer
                If (cijfer >= -2147483648) And (cijfer <= 2147483647) Then
                    'Procedure that is executed when all creteria are met
                    procedure()
                Else
                    Main()
                End If
            Else
                Main()
            End If
        Else
            Main()
        End If
    End Sub

Wat ik echter niet weet hoe ik het moet doen is de procedure die word uitegvoerd alles alle voorwaarden goed zijn variabele kan maken aan de hand van een variabele die word meegegeven naar die procedure.

Any help?
 
Laatst bewerkt:
uhm
Code:
public function blaat(var1 as variable)
msgbox variable
end function
of (in general/declerations):
Code:
Public varBlaat as variable
bedoelde je zoiets? (denk t niet, maar goed :p)

[EDIT]

kan het trouwens niet wat makkelijker? :p
zoiets:
Code:
    Private functionfailsafe(ByVal bericht As String, ByRef cijfer As Integer, ByVal procedure As String) 
'Vergeet niet een error-handler!
On error goto Hell
        Dim tempVar As String 
        Console.WriteLine(bericht) 
        tempVar = Console.ReadLine 
             If (val(cijfer) >= -2147483648) And (val(cijfer) <= 2147483647) Then 
                 'Procedure that is executed when all creteria are met 
                 procedure() 
             Else 
                    Main() 
                End If 

'errhand:
Hell:
msgbox "Error #" & err.number & ": " & err.description
    End function
just a thouhgt.


[/EDIT]
 
Laatst bewerkt:
ok, thnx, das idd wat handiger,
maar dat lost mn probleem niet op

PHP:
                 'Procedure that is executed when all creteria are met 
                 procedure()

ik zou willen kunnen meegeven welke procedure er moet worden uitgevoerd. nu word elke keet procedure() uitgevoerd, en heb ik er niet veel aan :(
 
dus iets van procedure(varX as variable)? of kan je juist 'procedure()' niet aanpassen? (wat is het trouwens?:p)
 
als ik de functie aanroep wil ik de waarde van de procedure die word uitgevoerd kunnen megeven:
PHP:
functionfailsafe("een bericht", 123, eenProcedure)

zodat je dan dit krijgd:
PHP:
                 'Procedure that is executed when all creteria are met 
                 eenProcedure()
 
wat is de code van "procedure()" ?
ik stel me even zo-iets voor:
Code:
public function procedure(iIntegerz0r as integer)
msgbox "hallo, de var die je gaf was " & iIntegerz0r
end function

dan word het:
Code:
[COLOR="SeaGreen"]'Procedure that is executed when all creteria are met [/COLOR]
eenProcedure(val(cijfer))
 
Ik weet niet 100% zeker wat dit precies doet, maar als ik het goed heb word altijd de procedure eenProcedure aangeroepen, gewoon met een andere waarde die word meegegeven...
PHP:
eenProcedure(val(cijfer))

ff 2 voorbeelden van wat ik wil, hopelijk is het dan wel duidelijk :D
vb1:
PHP:
functionfailsafe("een bericht", 123, eenProcedure)
=>
                 'Procedure that is executed when all creteria are met 
                 eenProcedure()

vb2:
PHP:
functionfailsafe("een bericht", 123, eenAndereProcedure)
=>
                 'Procedure that is executed when all creteria are met 
                 eenAndereProcedure()
 
Code:
    Private functionfailsafe(ByVal bericht As String, ByRef cijfer As Integer, ByVal Xprocedure As String) 
'Vergeet niet een error-handler!
On error goto Hell
        Dim tempVar As String 
        Console.WriteLine(bericht) 
        tempVar = Console.ReadLine 
             If (val(cijfer) >= -2147483648) And (val(cijfer) <= 2147483647) Then 
                 'Procedure that is executed when all creteria are met 
                 Shell Xprocedure [COLOR="SeaGreen"]'shell voor het uitvoeren, Xprocedure is een variabele die is opgegven :)[/COLOR]
             Else 
                    Main() 
                End If 

'errhand:
Hell:
msgbox "Error #" & err.number & ": " & err.description
    End function
 
Ok, dat wou ik weten :))
Het is wel tempVar die gecontroleerd moet worden, moet dat dan zo?

Code:
    Private functionfailsafe(ByVal bericht As String, ByRef cijfer As Integer, ByVal Xprocedure As String) 
'Vergeet niet een error-handler!
On error goto Hell
        Dim tempVar As String 
        Console.WriteLine(bericht) 
        tempVar = Console.ReadLine 
             If (val(tempVar) >= -2147483648) And (val(tempVar <= 2147483647) Then 
                 'Procedure that is executed when all creteria are met
                 cijfer = CInt(tempVar)
                 Shell Xprocedure 'shell voor het uitvoeren, Xprocedure is een variabele die is opgegven :)
             Else 
                    Main() 
                End If 

'errhand:
Hell:
msgbox "Error #" & err.number & ": " & err.description
    End function
 
Laatst bewerkt:
cint() kan anders reageren dat je verwacht. (cint() rondt af)
 
hm, inderdaad, klopt
anders moet je gebruiken:
Code:
cijfer = cDbl(tempVar)
(rond niet af :) )
 
In dit geval moet het een geheel getal zijn, dus die afronding voorkomt fouten he :D

Thnx voor de hulp he gaste :)
 
hm, inderdaad, klopt
anders moet je gebruiken:
Code:
cijfer = cDbl(tempVar)
(rond niet af :) )

Van een integer wil je een double maken ? Beter gebruik je de functie int().

Code:
cijfer = int(tempvar)

edit:

In dit geval moet het een geheel getal zijn, dus die afronding voorkomt fouten he :D

Thnx voor de hulp he gaste :)

Het hangt er uiteraard ook vanaf wat je wilt berekenen. In sommige gevallen is dat afronden niet gewenst.
 
Laatst bewerkt:
euhm, ik krijg deze error :confused:
Function 'failsafe' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.
 
uuhmm....
als je helemaal boven aan je code, dus in nde General/decleration sectie "Option Explicit" zet en je code runt, geeft hij dan aan dat een van de variabelen niet is gedimensioneert?
anders zou ik het ook niet weten, sorry
 
Option Explicit staat aan in mn menubalk, moet ik dan nog eens appart iets in het script zetten?
 
check screenshot (bijgevoegd)
 

Bijlagen

  • dasdads.JPG
    dasdads.JPG
    38,4 KB · Weergaven: 23
Ok, dat staat er nu bij :)
niet dat het enig verschil maakt :(

Als ik run krijg ik ook een foutmelding:
Error #0:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan