so bin ich ziemlich neu in der Codierung, vor allem in Vbscript, so habe ich rumgemacht, versucht zu lernen, indem Sie tun. Also habe ich an einem kleinen Programm gearbeitet, das den Benutzernamen (wie den Computernutzernamen) annimmt, die Buchstaben addiert und den Benutzer basierend auf der Summe beleidigt, denn warum nicht. Ich laufe immer noch auf einen Fehler auf Zeile 10, und wegen der Art, wie mein Code eingerichtet ist, bin ich mir ziemlich sicher, dass ich in jeder nachfolgenden Zeile auch darauf stoßen werde. Kannst du mir bitte helfen? Ich bekomme immer Fehlercode 800A01B6 "Objekt unterstützt diese Eigenschaft oder Methode nicht." (Ich löschte die Beleidigungen wegen der verwendeten Sprache, keine Sorge darüber ...)vbscripting-Objekt unterstützt keine Eigenschaft oder Methode Wenn sonst
Dim networkInfo
Dim nameVal
Dim infoStr
Dim insult
Set networkInfo = CreateObject("WScript.NetWork")
nameVal=1
infoStr = networkInfo.UserName & vbCr & vbLf
if InStr(1, networkInfo, "a") > 0 Then
nameVal = nameVal + 1
Elseif InStr(1, networkInfo, "b") > 0 Then
nameVal = nameVal + 2
Elseif InStr(1, networkInfo, "c") > 0 Then
nameVal = nameVal + 3
Elseif InStr(1, networkInfo, "d") > 0 Then
nameVal = nameVal + 4
Elseif InStr(1, networkInfo, "e") > 0 Then
nameVal = nameVal + 5
Elseif InStr(1, networkInfo, "f") > 0 Then
nameVal = nameVal + 6
Elseif InStr(1, networkInfo, "g") > 0 Then
nameVal = nameVal + 7
Elseif InStr(1, networkInfo, "h") > 0 Then
nameVal = nameVal + 8
Elseif InStr(1, networkInfo, "i") > 0 Then
nameVal = nameVal + 9
Elseif InStr(1, networkInfo, "j") > 0 Then
nameVal = nameVal + 10
Elseif InStr(1, networkInfo, "k") > 0 Then
nameVal = nameVal + 11
Elseif InStr(1, networkInfo, "l") > 0 Then
nameVal = nameVal + 12
Elseif InStr(1, networkInfo, "m") > 0 Then
nameVal = nameVal + 13
Elseif InStr(1, networkInfo, "n") > 0 Then
nameVal = nameVal + 14
Elseif InStr(1, networkInfo, "o") > 0 Then
nameVal = nameVal + 15
Elseif InStr(1, networkInfo, "p") > 0 Then
nameVal = nameVal + 16
Elseif InStr(1, networkInfo, "q") > 0 Then
nameVal = nameVal + 17
Elseif InStr(1, networkInfo, "r") > 0 Then
nameVal = nameVal + 18
Elseif InStr(1, networkInfo, "s") > 0 Then
nameVal = nameVal + 19
Elseif InStr(1, networkInfo, "t") > 0 Then
nameVal = nameVal + 20
Elseif InStr(1, networkInfo, "u") > 0 Then
nameVal = nameVal + 21
Elseif InStr(1, networkInfo, "v") > 0 Then
nameVal = nameVal + 22
Elseif InStr(1, networkInfo, "w") > 0 Then
nameVal = nameVal + 23
Elseif InStr(1, networkInfo, "x") > 0 Then
nameVal = nameVal + 24
Elseif InStr(1, networkInfo, "y") > 0 Then
nameVal = nameVal + 25
Elseif InStr(1, networkInfo, "z") > 0 Then
nameVal = nameVal + 26
Else MsgBox ("")
End If
If nameVal < 5 Then
insult = ("")
Elseif nameVal > 5 Then
insult = ("")
Elseif nameVal > 10 Then
insult = ("")
Elseif nameVal > 20 Then
insult = ("")
Elseif nameVal > 30 Then
insult = ("")
Elseif nameVal > 40 Then
insult = ("")
Elseif nameVal > 50 Then
insult = ("")
Elseif nameVal > 60 Then
insult = ("")
Elseif nameVal > 70 Then
insult = ("")
Elseif nameVal > 80 Then
insult = ("")
Elseif nameVal > 90 Then
insult = ("")
Elseif nameVal > 100 Then
insult = ("")
Elseif nameVal > 110 Then
insult = ("")
Elseif nameVal > 120 Then
insult = ("")
Elseif nameVal > 130 Then
insult = (".")
Elseif nameVal > 140 Then
insult = ("")
Elseif nameVal > 150 Then
insult = ("")
Elseif nameVal > 160 Then
insult = ("")
Elseif nameVal > 170 Then
insult = ("")
Elseif nameVal > 180 Then
insult = ("")
Elseif nameVal > 190 Then
insult = ("")
Elseif nameVal > 200 Then
insult = ("")
Elseif nameVal > 210 Then
insult = ("")
Elseif nameVal > 220 Then
insult = ("")
Elseif nameVal > 230 Then
insult = ("")
Elseif nameVal > 240 Then
insult = ("")
Elseif nameVal > 250 Then
insult = ("")
Elseif nameVal > 260 Then
insult = ("")
Elseif nameVal > 270 Then
insult = ("")
Elseif nameVal > 280 Then
insult = ("")
Elseif nameVal > 290 Then
insult = ("")
Elseif nameVal > 300 Then
insult = ("")
Elseif nameVal > 310 Then
insult = ("")
Elseif nameVal > 320 Then
insult = ("")
Elseif nameVal > 330 Then
insult = ("")
Elseif nameVal > 340 Then
insult = ("")
Elseif nameVal > 350 Then
insult = (".")
Elseif nameVal > 360 Then
insult = ("")
Elseif nameVal > 370 Then
insult = ("")
Elseif nameVal > 380 Then
insult = ("")
Elseif nameVal > 390 Then
insult = ("")
Elseif nameVal > 400 Then
insult = ("")
Elseif nameVal > 410 Then
insult = ("")
Elseif nameVal > 420 Then
insult = ("")
Elseif nameVal = 420 Then
insult = ("")
Elseif nameVal > 430 Then
insult = ("")
Elseif nameVal > 440 Then
insult = ("")
Elseif nameVal > 450 Then
insult = ("")
Elseif nameVal > 460 Then
insult = ("")
Elseif nameVal > 470 Then
insult = ("")
Elseif nameVal > 480 Then
insult = ("")
Elseif nameVal > 490 Then
insult = ("")
Elseif nameVal > 500 Then
insult = ("")
Elseif nameVal > 510 Then
insult = ("")
Elseif nameVal > 520 Then
insult = ("")
Elseif nameVal > 530 Then
insult = ("")
End If
MsgBox infoStr & insult
Wenn auch Sie mir Tipps, wie Sie geben kann dieser Code effizienter oder besser strukturiert zu machen, ich würde das auch schätzen! Danke, dass Sie sich die Zeit genommen haben, diese und jede Hilfe zu lesen, die Sie mir geben können.
Dies ist ein klassischer Fall von erstklassigem Prinzip der Programmierung zu brechen - [DRY] (https://en.wikipedia.org/wiki/Don't_repeat_yourself). Was versuchst du zu tun? Sie können für jeden Wert ein 'Array' verwenden und eine Schleife verwenden, um sie zu durchlaufen und die Überprüfung ohne all diese wiederholten Zeilen durchzuführen, schwer lesbar, ineffizient und mühsam zu verwalten. – Lankymart
Ich glaube nicht, dass Ihr Skript im Moment funktioniert, wie Sie es wollen.Es sieht so aus, als ob Sie nach allen Buchstabenvariationen im Benutzernamen suchen und daraus einen numerischen Wert generieren möchten, aber im Moment wird nur nach der ersten Übereinstimmung gesucht, also zum Beispiel nach 'Elseif nameVal = 420 Then' wird nie die größte Zahl getroffen, die der erste Check erzeugt, ist "26". – Lankymart