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, 5877 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
JavaScript
Javascript Array
gelöst Frage von internet2107JavaScript2 Kommentare

Ich habe folgendes Problem. Ersetze ich die folgenden Zahlen gegen Variablenwerte, bekomme ich nicht das Ergebnis, wie mit festen ...

Microsoft Office
Outlook VBScript
gelöst Frage von NebellichtMicrosoft Office5 Kommentare

Hallo, seit ein paar Wochen werden keine VBScripte hinter den (Benutzerspezifschen) Outlook Formularen ausgeführt. Hat jemand eine Lösung parat ...

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 ...

PHP

Array kürzen

gelöst Frage von dax4funPHP6 Kommentare

Es tut was es soll, aber kann man das irgendwie kürzen da ich jede mögliche art versucht habe Arrays ...

Neue Wissensbeiträge
Windows 7

Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019

Information von kgborn vor 7 StundenWindows 73 Kommentare

Kleine Info für die Admins der oben genannten Maschinen. Ab Juli 2019 werden Updates von Microsoft nur noch mit ...

Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 2 TagenFirewall2 Kommentare

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 3 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 3 TagenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Heiß diskutierte Inhalte
Backup
Wo installiert man Veeam bei SoHo?
Frage von EDVMan27Backup16 Kommentare

Hallo, nachdem ich die neue Veeam CE bei mir getestet habe, wollte ich es einmal bei einem Kunden testen. ...

Hyper-V
Intel MSC Raid 5 Rebuild
Frage von DannysHyper-V16 Kommentare

Hallo Community, Ich habe einen Modul Server von Intel in Betrieb. Dort ist eine Festplatte aus dem Raid 5 ...

Windows Server
DFSR - Dateireplikationseinstellung - Festplattenauslastung zu hoch - optimale Einstellungsfrage
Frage von Kamelle01Windows Server12 Kommentare

Hallo liebe Mitglieder, ich habe einen Windows Server 2016 mit 4TB 7200U 256MB SATA Festplatten in RAID10 und einem ...

CPU, RAM, Mainboards
Kann eine "virtuelle CPU" bei VMware die Leistung einer phys. CPU entsprechen ?
Frage von Troja71CPU, RAM, Mainboards11 Kommentare

Eine Software fordert im Betrieb 8 CPU mit x GHz Taktung. Verfügbar ist "nur" eine VM mit 8 vCPUs ...