Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Brauche Hilfe bei eigenem VB-Scripting-Programm

Chronolus / 4 Antworten / Flachansicht Nickles

Hi. Ich habe gerade damit begonnen Scripting zu lernen und bin noch bei den Grundlagen. Als eine meiner ersten Handlungen habe ich mir ein kleines Programm geschrieben, wo man einen Anfangwert und einen Endwert eingibt und das Programm den Anfangswert solange erhöht, bis er genau so groß wie der Endwert ist. Dann schreibt das Prog noch alles in eine Textdatei. Also eigentlich eine ganz einfache Sache, möchte man meinen. Aber Wenn ich beide Werte eingegeben habe, dann bleibt das Programm in einer Endlosschleife hängen. Das Resultat ist eine Textdatei, die immer größer wird. Bis ich beim ersten mal rausgefunden hatte, was falsch läuft, war die Datei schon fast 400MB groß!

Ich hoffe mir kann jemand helfen dieses Problem zu lösen.
(Gegen Verbesserungsvorschläge hätte ich auch nichts einzuwenden)

Der Code:
----------------

Anfw = InputBox("Geben Sie den Anfangswert ein!",,"")
Endw = InputBox("Geben Sie den Endwert ein!",,"")

Set wshshell = CreateObject("WScript.Shell")
ordner = wshshell.SpecialFolders("MyDocuments")

Set fs = CreateObject("Scripting.FileSystemObject")
dateiname = ordner & "\Liste.txt"
Set file = fs.CreateTextFile(dateiname, True)

Dim Bwert

Bwert = Anfw

do until Bwert = Endw

file.WriteLine Bwert
Bwert = Bwert + 1

loop

file.Close

wshshell.Run """" & dateiname & """"


-------- Ende ----------


 

bei Antwort benachrichtigen
UselessUser Chronolus „Brauche Hilfe bei eigenem VB-Scripting-Programm“
Optionen

Hallo Chronolus!

Also, anscheinend werden die Variablen aus der Inputbox noch als Strings angesehen und deshalb kann die Beendigungsbedingung der Do-Loop-Schleife niemals erfüllt werden.
Abhilfe: Füge eine Rechenoperation mit den gerade eingegebenen Variablen durch, bevor du sie weiter benutzt. Füge bspw. als 3. Zeile ein:
Anfw = Anfw * 1: Endw = Endw * 1

Dann müsste es funzen!

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
Nachtrag UselessUser
Nachtrag T-Rex