Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VBS probleem | verschrikking

Anoniem
hydrah
5 antwoorden
  • Nou ik moet voor mijn stage iets maken in vbs, geen probleem alleen heb ik al jaren geen vbs meer gedaan dus kom ik er achter dat het een erg roestige taal is.

    Ik heb een probleempje met mijn code, de geschreven code is tot nu toe

    [code:1:a3277ec06e]

    Dim importBestand
    importBestand = "c:\printers.lst"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(importbestand) Then
    Set objTextFile = objFSO.OpenTextFile (importBestand, 1)

    Dim rij(31)
    vullijst printerLijst,i

    printerPri = InputBox(printerLijst,"Het RB nummer is: " & rbNummer)

    If printerPri <= (i / 2) Then
    printerPri = printerPri * 2 - 1
    MsgBox(rij(printerPri))
    Else
    MsgBox("deze printer bestaat niet")
    End If
    Else
    MsgBox("Het bestand: " & importBestand & " bestaat niet."),vbOKOnly,"Kon printers.lst niet vinden"
    Wscript.Quit(0)
    End If

    Function vullijst(printerLijst,i)
    i = 0
    a = 1
    Do Until objTextFile.AtEndOfStream
    rij(i) = objTextFile.Readline
    a = a + 1
    If a = 2 Then
    printerLijst = printerLijst & rij(i)
    a = 0
    End If
    If a = 1 Then
    printerLijst = printerLijst & " " & rij(i) & vbCr
    End If

    i = i + 1
    Loop
    End Function

    [/code:1:a3277ec06e]

    het werkt, totdat hij bij dit stukje komt:

    [code:1:a3277ec06e]
    If printerPri <= (i / 2) Then
    printerPri = printerPri * 2 - 1
    MsgBox(rij(printerPri))
    Else
    MsgBox("deze printer bestaat niet")
    End If
    Else
    MsgBox("Het bestand: " & importBestand & " bestaat niet."),vbOKOnly,"Kon printers.lst niet vinden"
    Wscript.Quit(0)
    End If
    [/code:1:a3277ec06e]

    Hij geeft altijd aan (het maakt niet uit wat je invult bij printerPri) dat i / 2 groter is dan printerPri>

    Waar zit mijn probleem ? ik kan er maar niet uitkomen.

    Alvast bedankt voor de vbs goden
  • mwah, een setje haakjes om de "i" doet wonderen :roll:
  • mwah toch niet het werkt niet echt, want nu pakt hij de else niet meer :(
  • Waarom declareer importBestand en de rest niet? bv. i, printerLijst…

    Option Explicit verplicht je daartoe, en kan helpen bij foutboodschappen.


    mssn moet je eens testen met die i/2 even weg te laten. gewoon i dus, zien of hij er dan doorkomt.
    Het zou kunnen dat hij problemen heeft met de deling. integer delen door integer en zijn tussen resultaat wil opslaan in integer, terwijl het een decimaal getal is. Het is maar een suggestie.
  • Ik heb het gedeclared zoals je zei maar het werkt nog steeds niet. de code is nu

    [code:1:3411f0cc19]
    Dim importBestand,i,printerPri,PrinterSec,PrinterTer,a,PrinterLijst,o,rij(201)
    importBestand = "c:\printers.lst"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(importbestand) Then
    Set objTextFile = objFSO.OpenTextFile (importBestand, 1)

    vullijst printerLijst,i

    o = i / 2

    printerPri = InputBox(printerLijst,"Het RB nummer is: " & rbNummer)

    If printerPri = o Then
    printerPri = printerPri * 2 - 1
    MsgBox(rij(printerPri))
    End If

    Else
    MsgBox("Het bestand: " & importBestand & " bestaat niet."),vbOKOnly,"Kon printers.lst niet vinden"
    Wscript.Quit(0)
    End If

    Function vullijst(printerLijst,i)
    i = 0
    a = 1
    Do Until objTextFile.AtEndOfStream
    rij(i) = objTextFile.Readline
    a = a + 1
    If a = 2 Then
    printerLijst = printerLijst & rij(i)
    a = 0
    End If
    If a = 1 Then
    PrinterLijst = printerLijst & " " & rij(i) & vbCr
    End If

    i = i + 1
    Loop
    End Function
    [/code:1:3411f0cc19]

    maar werkt nog steeds niet: het betreft hier,
    [code:1:3411f0cc19]
    vullijst printerLijst,i

    o = i / 2

    printerPri = InputBox(printerLijst,"Het RB nummer is: " & rbNummer)

    If printerPri = o Then
    printerPri = printerPri * 2 - 1
    MsgBox(rij(printerPri))
    End If
    [/code:1:3411f0cc19]

    Wat niet werkt en ik weet niet waarom hij het niet zou doen

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.