Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBScript: Array vergrößern

Mitglied: Stadtverwalter

Stadtverwalter (Level 1) - Jetzt verbinden

08.12.2006, aktualisiert 10.12.2006, 5553 Aufrufe, 3 Kommentare

Hallo zusammen,

ich habe da ein kleines Problem.
Da ich zu beginn nicht weiß, wieviele eingaben der nutzer machen möchte, benötige ich ein array mit nicht definierter größe. damit sich das feld bei jedem durchlauf der schleife um eins vergrößert, habe ich die "ReDim"-Zeile eingefügt. Leider kommt beim durchlauf des scripts immer die Fehlermeldung:
"(11, 2) Laufzeitfehler in Microsoft VBScript: Index außerhalb des gültigen Bereichs"

Kann ich in einer Arraydefinition nicht mit Variablen (Name) arbeiten???

Vielleicht hat jemand eine Idee!

Vielen Dank und Gruß Sebastian


Option Explicit
Dim Abfrage, Konto(), Name, Pfad, Pfadfrage, Eingabe, Frage

Name = -1

Do
Name = Name + 1
Eingabe = InputBox("Bitte geben Sie den Namen des " & 1 & "ten Kontos ein.","Kontonamen eingeben", "Quicken")
WScript.Echo Name & Eingabe
ReDim Preserve Konto(Name,1)
Konto(Name,0) = Eingabe
Pfadfrage = MsgBox("Befindet sich das Konto im Pfad 'c:\Programme\Quicken' ?",vbYesNo + vbQuestion, "Frage")
Select Case Pfadfrage
Case vbYes
Konto(Name,1) = "C:\Programme\Quicken"
Case vbNo
Konto(Name,1) = InputBox("Bitte geben Sie den Pfad zum Konto '" & Konto(Name,0) & " an!", "Pfadangabe", "C:\Programme\Quicken")
End Select
Frage = MsgBox("Möchten Sie ein weiteres Konto Zippen?", vbYesNo + vbQuestion, "Frage")
Loop While Frage = vbYes
Mitglied: bastla
08.12.2006 um 13:13 Uhr
Hallo Stadtverwalter!

Um mich auf die eigentlichen Frage (und nicht auf die Überlegung, warum eine laufende Nummer bei Dir "Name" heißt) zu konzentrieren: ReDim ist nur für die letzte Dimension anwendbar, was für Deinen Ansatz bedeutet, die Indizes umgekehrt zu vergeben - etwa so:
01.
Option Explicit 
02.
Dim Abfrage, Konto(), Nummer, Pfad, Pfadfrage, Eingabe, Frage 
03.
 
04.
Nummer = 0 
05.
 
06.
Do 
07.
Nummer = Nummer + 1 
08.
Eingabe = InputBox("Bitte geben Sie den Namen des " & Nummer & "ten Kontos ein.","KontoNamen eingeben", "Quicken") 
09.
WScript.Echo Nummer & Eingabe 
10.
ReDim Preserve Konto(1,Nummer) 
11.
Konto(0,Nummer) = Eingabe 
12.
Pfadfrage = MsgBox("Befindet sich das Konto im Pfad 'c:\Programme\Quicken' ?",vbYesNo + vbQuestion, "Frage") 
13.
Select Case Pfadfrage 
14.
Case vbYes 
15.
Konto(1,Nummer) = "C:\Programme\Quicken" 
16.
Case vbNo 
17.
Konto(1,Nummer) = InputBox("Bitte geben Sie den Pfad zum Konto '" & Konto(0,Nummer) & " an!", "Pfadangabe", "C:\Programme\Quicken") 
18.
End Select 
19.
Frage = MsgBox("Möchten Sie ein weiteres Konto Zippen?", vbYesNo + vbQuestion, "Frage") 
20.
Loop While Frage = vbYes
HTH
bastla

[Edit] "Start-"Nummer angepasst - die Zählung mit einem "nullten" Konto zu beginnen würde wohl nur Mathematiker begeistern ... [/Edit]
Bitte warten ..
Mitglied: Biber
08.12.2006 um 19:05 Uhr
Moin Stadtverwalter,

eventuell wird es ein wenig lesbarer, wenn Du mit CONST ein paar Pseudo-#defines reinstreust. Und Dir beim Testen die aktuelle Dimension Deines Kontos anzeigen lässt.
01.
Option Explicit 
02.
CONST KTONAME = 1  ' Name des Kontos wird Array-Element 1 
03.
CONST KTOPATH = 2  ' Der Programmpfad steht in Element 2 
04.
CONST KTOPROPS= 2  ' Anzahl Konto-Properties ist also 2 
05.
Dim Abfrage, Konto(), Nr, Pfad, Pfadfrage, Eingabe, Frage 
06.
 
07.
Redim Preserve Konto(KTOPROPS, 0) 
08.
Nr = 1 
09.
 
10.
Do 
11.
    Eingabe = InputBox("Bitte geben Sie den Namen des " & _  
12.
               Nr & ".ten Kontos ein.","Kontonamen eingeben", "Quacken") 
13.
    WScript.Echo Nr & " / " & Eingabe 
14.
    ReDim Preserve Konto( KTOPROPS, nr) 
15.
    Wscript.echo "Letzter Eintrag " & cStr(nr-1) & _  
16.
             " Name / Pfad: " & Konto( KTONAME, Nr-1) &" / " & Konto( KTOPATH, Nr-1) & vbCRLF & _  
17.
    " Dimensionsobergrenzen: " & CStr(UBound(Konto, KTONAME)) &  "x" & CStr(UBound(Konto, KTOPATH)) 
18.
 
19.
    Konto( KTONAME, nr) = Eingabe 
20.
    Pfadfrage = MsgBox("Befindet sich das Konto im Pfad 'c:\Programme\Quicken' ?",  vbYesNo + vbQuestion, "Frage") 
21.
    Select Case Pfadfrage 
22.
    Case vbYes 
23.
         Konto( KTOPATH, nr) = "C:\Programme\Quicken" 
24.
    Case vbNo 
25.
         Konto( KTOPATH, nr) = InputBox("Bitte geben Sie den Pfad zum Konto '" & _  
26.
                   Konto( KTOPATH, Nr) & "an!", "Pfadangabe", "C:\Programme\Quicken")  
27.
    End Select 
28.
    Frage = MsgBox("Möchten Sie ein weiteres Konto Zippen?", vbYesNo + vbQuestion, "Frage") 
29.
    Nr=Nr +1    
30.
Loop While Frage = vbYes
Wenn ich den Schnipsel am CMD-Prompt aufrufe mit "cscript...." ergibt sich:
01.
>>cscript //nologo f:\VBS_Beispiele\RedimExam.vbs 
02.
1 / Quacken 
03.
Letzter Eintrag 0 Name / Pfad:  / 
04.
 Dimensionsobergrenzen: 2x1 
05.
2 / zwei 
06.
Letzter Eintrag 1 Name / Pfad: Quacken / C:\Programme\Quicken 
07.
 Dimensionsobergrenzen: 2x2 
08.
3 / drei 
09.
Letzter Eintrag 2 Name / Pfad: zwei / C:\Programme\Quicken 
10.
 Dimensionsobergrenzen: 2x3 
11.
4 / Quacken 
12.
Letzter Eintrag 3 Name / Pfad: drei / C:\Programme\Quicken 
13.
 Dimensionsobergrenzen: 2x4 
14.
5 / Quacken 
15.
Letzter Eintrag 4 Name / Pfad: Quacken / C:\Programme\Quicken 
16.
 Dimensionsobergrenzen: 2x5
Gruß Biber
P.S. Auch ich hab mich, ähnlich wie bastla, bemüht, Deinen Schnipsel halbwegs wiedererkennbar zu lassen.
Aber die numerische Variable "Name" hab ich auch in "Nr" umbenannt.
Und bei der Variablen "Eingabe" ist es mir schwergefallen, deren Namen so zu lassen.
Ich würde, auch wenn es nur VBScript ist, schon auch eine Variablenbenamsung mit Präfixen empfehlen ( str...für Strings, a...bei Arrays, n... bei numerischen oder ähnlich).
Bitte warten ..
Mitglied: 16568
10.12.2006 um 12:41 Uhr
*agree*
Kann mich Biber nur anschließen, sowas erleichtert die spätere Verständnis eines Quelltextes ungemein ^^

Lonesome Walker
Btw: das funktioniert sogar
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Probleme mit Array in vbscript
gelöst Frage von BadFsaadKlBatch & Shell13 Kommentare

Hallo zusammen, ich habe mal wieder ein Problem, bei einem Vergleich / Update zweier Files mittels vbscript, und hohhe ...

Windows 10

Partition vergrößern aber wie?

gelöst Frage von M.MarzWindows 108 Kommentare

Hallo zusammen, wie kann ich im Windows 10 meine Partition P vergrößern? Es wird mir nur das verkleinern angeboten. ...

Batch & Shell

Leere Array-Werte aus einem Array entfernen

gelöst Frage von ToniHoBatch & Shell3 Kommentare

Hallo zusammen, ich bin dabei ein Powershell-Script zu schreiben, welches diverse Reports generieren kann. Für die Eingabe von SamAccountNames ...

RedHat, CentOS, Fedora

Partition tmp vergrössern

gelöst Frage von oranje1703RedHat, CentOS, Fedora2 Kommentare

Hallo, ich habe folgendes Problem: Ich habe ein 1&1 dedicated Server, CentOs und Plesk 12.0.8 ich habe auch ein ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement17 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...