Smilla Geschrieben 11. Januar 2006 Teilen Geschrieben 11. Januar 2006 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 11. Januar 2006 Teilen Geschrieben 11. Januar 2006 der fehler müsste dir auch zeile und zeichen mitgeben, poste das mal bitte auch, das würde (mir zum. sehr helfen ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 12. Januar 2006 Autor Teilen Geschrieben 12. Januar 2006 U:\VBScript\adressverwaltung\2. suche.vbs(122, 5) Laufzeitfehler in Microsoft VBScript: Index außerhalb des gültigen Bereichs: 'arrAdresse' Hattest du das gemeint? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 12. Januar 2006 Teilen Geschrieben 12. Januar 2006 Hallo, glaub schon das er das gemeint hat nur woher sollen wir jetzt wissen wo Zeile 122 ist? Du hast keine Zeilennummerierung mit angegeben... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 12. Januar 2006 Teilen Geschrieben 12. Januar 2006 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 12. Januar 2006 Autor Teilen Geschrieben 12. Januar 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 12. Januar 2006 Autor Teilen Geschrieben 12. Januar 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.