Zum Inhalt springen

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


Smilla

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...