anoniem Geplaatst: 18 november 2005 Delen Geplaatst: 18 november 2005 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 Quote Link naar reactie
anoniem Geplaatst: 18 november 2005 Auteur Delen Geplaatst: 18 november 2005 mwah, een setje haakjes om de "i" doet wonderen :roll: Quote Link naar reactie
anoniem Geplaatst: 18 november 2005 Auteur Delen Geplaatst: 18 november 2005 mwah toch niet het werkt niet echt, want nu pakt hij de else niet meer :( Quote Link naar reactie
anoniem Geplaatst: 18 november 2005 Auteur Delen Geplaatst: 18 november 2005 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. Quote Link naar reactie
anoniem Geplaatst: 18 november 2005 Auteur Delen Geplaatst: 18 november 2005 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 Quote Link naar reactie
anoniem Geplaatst: 18 november 2005 Auteur Delen Geplaatst: 18 november 2005 na veel trial & error heb ik het voor een groot gedeelte voor elkaar gekregen resultaat: [code:1:a19245b834] Dim importBestand,blaat,printerPri,PrinterSec,PrinterTer,a,printerLijst,o,rij(201),k,n,intCheck,aantInvoer importBestand = "c:\printers.lst" k = False intCheck = False o = 1 a = 1 '===================================================================================== Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(importbestand) Then Set objTextFile = objFSO.OpenTextFile (importBestand, 1) Set objPcInfo = WScript.CreateObject("WScript.Network") '===================================================================================== Do Until objTextFile.AtEndOfStream rij(o) = objTextFile.Readline a = a + 1 If a = 2 Then printerLijst = printerLijst & rij(o) a = 0 End If If a = 1 Then printerLijst = printerLijst & " " & rij(o) & vbCr o = o + 1 End If Loop Do aantInvoer = InputBox("Hoeveel werkstations moeten er worden gekoppeld ?","Werkstation koppeling(en)") intCheck = IsNumeric(aantInvoer) If intCheck = True Then aantInvoer = aantInvoer n = aantInvoer k = True Else MsgBox("Er is een fout opgetreden bij het invoeren van het aantal werkstation wat u wilt koppelen" & vbCr & "Foutmelding betreft: Aanwezigheid van ongeldige tekens." & vbCr & vbCr & "Probeer in het volgende scherm het goede aantal werkstation in te vullen."),vbOKOnly,"Fout bij het invoeren van aantal werkstations." End If Loop Until k = True '============================================================================================== k = False intCheck = False '============================================================================================== Do Do If n = "1" Then rbNummer = objPcInfo.ComputerName k = True Else rbNummer = InputBox("rb nummer graag") intCheck = IsNumeric(rbNummer) If intCheck = True Then If Len(rbNummer) = 6 Then rbNummer = rbNummer k = True Else MsgBox("st3rf 44p gr0t3r d4n 6 0f kl3In3r") End If Else MsgBox("mekker rb is niet goed") End If End If Loop Until k = True '============================================================================================== intCheck = False k = False '=======================================Primaire Printer======================================= Do blaat = InputBox("Voer hier de Primaire Printer in" & vbCr & vbCr & printerLijst,"Het RB nummer is: " & rbNummer) intCheck = IsNumeric(blaat) If intCheck = True Then printerPri = Int(blaat) If printerPri = 0 Then MsgBox("Als 0 wordt ingevoerd moet dan de regel toch geschreven worden ?"), "Maakt niet uit hier kan het terecht" Else If printerPri < o Then printerPri = printerPri printerPri = (rij(printerPri)) k = True Else MsgBox("Er is een fout opgetreden bij het invoeren van de primaire printer" & vbCr & "Foutmelding betreft: De printer bestaat niet, er is een verkeerde optie ingevoerd." & vbCr & vbCr & "Probeer in het volgende scherm de goede printerkoppeling te selecteren voor de primaire printer."),vbOKOnly,"Fout bij het invoeren van primaire printer." End If End If Else MsgBox("Er is een fout opgetreden bij het invoeren van de printer" & vbCr & "Foutmelding betreft: Aanwezigheid van ongeldige tekens." & vbCr & vbCr & "Probeer in het volgende scherm de goede printerkoppeling te selecteren voor de primaire printer."),vbOKOnly,"Fout bij het invoeren van primaire printer." End If Loop Until k = True '====================================Einde Primaire Printer==================================== intCheck = False k = False '======================================Secundaire Printer====================================== '==================================Einde Secundaire Printer==================================== intCheck = False k = False '======================================Tertiaire Printer======================================= '===================================Einde Tertiaire Printer==================================== intCheck = False k = False '============================================================================================== 'schrijf code Dim objBestandsSysteem, objKoppelTabel Dim koppelTabel koppelTabel = "c:\text.txt" Set objBestandsSysteem = CreateObject("Scripting.fileSystemObject") Set objKoppelTabel = objBestandsSysteem.CreateTextFile(koppelTabel, TRUE) objKoppelTabel.WriteLine("""wsnaam""" & vbTab & """" & rbNummer & """" & vbTab & """lpt2""" & vbTab & """" & printerPri & """") objKoppelTabel.WriteLine("""wsnaam""" & vbTab & """" & rbNummer & """" & vbTab & """lpt2*""" & vbTab & """" & PrinterPri & """") 'objKoppelTabel.WriteLine("""wsnaam""" & vbTab & """" & rbNummer & """" & vbTab & """lpt3""" & vbTab & """" & rij(printerSec) & """") 'objKoppelTabel.WriteLine("""wsnaam""" & vbTab & """" & rbNummer & """" & vbTab & """lpt4""" & vbTab & """" & rij(printerTer) & """") objKoppelTabel.Close Set objBestandsSysteem = Nothing '===================================================================================== aantInvoer = aantInvoer - 1 Loop Until aantInvoer <= 0 Else MsgBox("Het bestand: " & importBestand & " bestaat niet."),vbOKOnly,"Kon printers.lst niet vinden" Wscript.Quit(0) End If [/code:1:a19245b834] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen