Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Laufzeitfehler "Index außerhalb des gültigen Bereichs"

Empfohlene Antworten

Veröffentlicht

Neues Problem, es kommt die Fehlermeldung „Laufzeitfehler in Microsoft VBScript: Index außerhalb des gültigen Bereichs: '[number: 0]'“. Es wird ein Array erstellt in das die Daten die vorher aus der Textdatei ausgelesen wurden reingeschrieben werden sollen.

Ich glaube das die Ursache für den Laufzeitfehler darin liegt das das Array leer ist, also gar nicht „befüllt“ wird…

Wer kann mir das bestätigen oder sagen wo der Fehler sonst liegt und mir bei der Lösung helfen?

Hier der Code vom auslesen der Textdatei

sAdressFilePath = "U:\VBScript\adressverwaltung\adressen.txt"


   Const ForReading = 1

   Dim fso, theFile, i, inhalt

   i = 1

   Set fso = CreateObject("Scripting.FileSystemObject")

   Set theFile = fso.OpenTextFile(sAdressFilePath, ForReading, False)


   Do Until theFile.AtEndOfStream


   		'AddToArray(theFile.ReadLine)

      	i = i + 1

      	CountLines = CountLines + 1

   inhalt = theFile.ReadLine

   'WScript.Echo inhalt 

   Loop 


   theFile.Close
Und hier das Erstellen des Arrays:
Dim arTemp 'Variable für Temporäres Array

	iArrayElements = iArrayElements + 1 

		'WScript.Echo "iArrayElements:" & iArrayElements & vbNewLine

	ReDim Preserve arrAdresse(6,iArrayElements)


	arTemp = Split(sLine, ";") 

	'WScript.Echo UBound(arTemp)


	arrAdresse(0,iArrayElements) = arTemp(0)

	arrAdresse(1,iArrayElements) = arTemp(1)

	arrAdresse(2,iArrayElements) = arTemp(2)

	arrAdresse(3,iArrayElements) = arTemp(3)

	arrAdresse(4,iArrayElements) = arTemp(4)

	arrAdresse(5,iArrayElements) = arTemp(5)

Sorry das ich ständig mit neuen Fragen komme... :(

der fehler müsste dir auch zeile und zeichen mitgeben, poste das mal bitte auch, das würde (mir zum. sehr helfen ;) )

U:\VBScript\adressverwaltung\2. suche.vbs(122, 5) Laufzeitfehler in Microsoft VBScript: Index außerhalb des gültigen Bereichs: 'arrAdresse'

Hattest du das gemeint? :)

ka... gib mir halt mal zeile 122 zeichen 5 oder zeile 5 und zeichen 122, dann wissen wir ob das die zeilen und zeichenangabe ist ;)

also bei meiner fehlerbeschreibung steht zum. immer davor dass das zeile und zeichen sein soll...

If strSuche = arrAdresse(ix,iy) Then

Das ist Zeile 122! :)

Es ist Zeile 122, Zeichen 5 gemeint, wenn ich die Fehlermeldung doppelt anklicke lande ich bei Zeile 122, die ich euch eingestellt hab.;)

Falls jemand noch den ganzen Code brauch:

Option Explicit 


'Globale Variablen

Dim strSuche 'Suchbegriff

Dim sAdressFilePath 

Dim arrAdresse() 'Array

Dim arrErgebnis 'Array

Dim iArrayElements

iArrayElements = 1

Dim CountLines

Dim SucheNochmal

Dim sLine

Dim tempfile



sAdressFilePath = "U:\VBScript\adressverwaltung\adressen.txt"

'=================================================================

' Main

'=================================================================

'InputBox mit Frage nach Suchwort

Suchfunktion


'Datei einlesen

ReadEntireFile(sAdressFilePath)


'Array erzeugen

AddToArray(sLine)


'AddToArray(TempFile)


'Durch Array arrAdresse loopen und suchen

SucheInArray()


'Suchergebnis ausgeben


'Neue Suche starten?

NochmalSuchen


'FERTIG!


'=================================================================

' Functions und Subs

'=================================================================


'Inputbox mit Frage nach Suchwort

Sub Suchfunktion

strSuche = InputBox ("Geben Sie bitte Ihren Suchbegriff ein!" , "Suchfunktion")

End Sub



'Datei einlesen

Function ReadEntireFile(sAdressFilePath)


   Const ForReading = 1

   Dim fso, theFile, i, inhalt

   i = 1

   Set fso = CreateObject("Scripting.FileSystemObject")

   Set theFile = fso.OpenTextFile(sAdressFilePath, ForReading, False)


   Do Until theFile.AtEndOfStream

    inhalt = theFile.ReadLine

   	WScript.Echo inhalt 

   		'AddToArray(theFile.ReadLine)

      	i = i + 1

      	CountLines = CountLines + 1


   Loop 


   theFile.Close


End Function



'Erzeugt aus dem Inhalt der Datei ein Array

Sub AddToArray(sLine)

	Dim arTemp 'Variable für Temporäres Array

	iArrayElements = iArrayElements + 1 

		'WScript.Echo "iArrayElements:" & iArrayElements & vbNewLine

	ReDim Preserve arrAdresse(6,iArrayElements)


	arTemp = Split(sLine, ";") 

	'WScript.Echo UBound(arTemp)


	arrAdresse(0,iArrayElements) = arTemp(0)

	arrAdresse(1,iArrayElements) = arTemp(1)

	arrAdresse(2,iArrayElements) = arTemp(2)

	arrAdresse(3,iArrayElements) = arTemp(3)

	arrAdresse(4,iArrayElements) = arTemp(4)

	arrAdresse(5,iArrayElements) = arTemp(5)


	'WScript.Echo arTemp()


    ' Dim i

' 	For i = 1 To UBound(arrAdresse,2)

' 		WScript.Echo arrAdresse(0,i)

' 		WScript.Echo arrAdresse(1,i)

' 		WScript.Echo arrAdresse(2,i)

' 		WScript.Echo arrAdresse(3,i)

' 		WScript.Echo arrAdresse(4,i)

' 	    WScript.Echo arrAdresse(5,i)

' 	Next


End Sub



Function AddToArray(TempFile)

MsgBox TempFile

End Function



'Suche in Array

Function SucheInArray()

Dim ix, iy


For ix = 0 To 6

	For iy = 0 To CountLines 


	' MsgBox ix

	' MsgBox iy


	'MsgBox arrAdresse(1,1)

  		If strSuche = arrAdresse(ix,iy) Then

			MsgBox "Vorname:" & arrAdresse(ix,iy) & vbCrlf & "Nachname:" & arrAdresse(ix+1,iy) & vbCrlf & "Strasse:" & arrAdresse(ix+2,iy) & vbCrlf & "PLZ:" & arrAdresse(ix+3,iy) & vbCrlf & "Ort:" & arrAdresse(ix+4,iy) & vbCrlf & "Telefonnummer:" & arrAdresse(ix+5,iy)		


			NochmalSuchen


		Else	

		End If


	Next 

Next



	Dim i

	Dim arrTempAdresse() 'Temporäres Array um die Ergebnisse der Suche zu speichern

	Dim iArrayElem2

	iArrayElem2 = 0


	For i = 1 To UBound(arrAdresse, 2)						

		If strSuche = arrAdresse(1,i) Then					

			iArrayElem2 = iArrayElem2 + 1					

			'WScript.Echo "iArrayElements:" & iArrayElem2 & vbNewLine	

			ReDim Preserve arrTempAdresse(6, iArrayElem2)	

			arrTempAdresse(0, iArrayElem2) = arrAdresse(0,i) 

			arrTempAdresse(1, iArrayElem2) = arrAdresse(1,i)

			arrTempAdresse(2, iArrayElem2) = arrAdresse(2,i)

			arrTempAdresse(3, iArrayElem2) = arrAdresse(3,i)

			arrTempAdresse(4, iArrayElem2) = arrAdresse(4,i)

			arrTempAdresse(5, iArrayElem2) = arrAdresse(5,i)

			arrTempAdresse(6, iArrayElem2) = arrAdresse(6,i)


		End If 

	Next

End Function



'Möchten Sie nochmal suchen??

Function NochmalSuchen()

	Do While SucheNochmal <> vbNo 

	SucheNochmal = MsgBox ("Möchten Sie nochmal suchen?", vbYesNo, "Suchfunktion")	

		If SucheNochmal = vbYes Then

			Suchfunktion

			SucheInArray()

		Else

		End If


	Loop

End Function

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.