Vraag & Antwoord

Programmeren

VBS probleem | verschrikking

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

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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