Wie schaffe ich von einem Private Sub Test1 auf ein Array im Private Sub Test2 zuzugreifen?????

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Bluespide.

    Wie schaffe ich von einem Private Sub Test1 auf ein Array im Private Sub Test2 zuzugreifen?????

    Wie schaffe ich von einem Private Sub Test1-> auf ein Array welcher in ein String geschriben wurde im Private Sub Test2 zuzugreifen und eine Kopie zu holen?

    Ich möchte diese Werten dann Weiterverarbeiten. Denn ich habe kein bock den Ganzen Array aufzubauen und diese wieder in ein String zu stellen.

    Wie ist das möglich??
    Gar nicht. Mach die Arrays global.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    Neoner schrieb:

    Indem du die Variable nicht im Sub deklarierst, sondern in der Klasse.

    Also unter "Public Class Form1" die Variable Deklarieren.



    Folgende Fehlermeldung kommt dann:
    InvalidOperationException was unhandled
    Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    Wie hast du es denn Definiert/Genutzt?

    So funktioniert es einwandfrei:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Dim arr1(1) As Integer
    4. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    5. arr1(1) = 1
    6. End Sub
    7. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    8. MessageBox.Show(arr1(1).ToString)
    9. End Sub
    10. End Class

    Neoner schrieb:

    Wie hast du es denn Definiert/Genutzt?

    So funktioniert es einwandfrei:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Dim arr1(1) As Integer
    4. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    5. arr1(1) = 1
    6. End Sub
    7. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    8. MessageBox.Show(arr1(1).ToString)
    9. End Sub
    10. End Class

    Grundsätzlich das auskommentierte habe ich oberhalb vom Sub geschrieben.



    VB.NET-Quellcode

    1. Dim filereader As String = textboxPfad.Text
    2. Dim frArray() As String = IO.File.ReadAllLines(filereader, System.Text.Encoding.Default)
    3. Dim Gesplittet() As String
    4. Public Sub showButtonList()
    5. Dim lst As New List(Of String)
    6. Dim Ex As System.Exception = Nothing
    7. Dim mbAnswer As String
    8. If textboxPfad.Text = Nothing Or Not File.Exists(filereader) ThenmbAnswer = MsgBox("Der angegebene Pfad konnte leider nicht gefunden werden." & vbCrLf & textboxPfad.Text, MsgBoxStyle.RetryCancel)
    9. If mbAnswer = MsgBoxResult.Retry Then
    10. ifdProperties(ImportFileDialog)opnImportFileDialog(Nothing, ImportFileDialog)
    11. Else
    12. End If
    13. Else
    14. 'Dim frArray() As String = IO.File.ReadAllLines(filereader, System.Text.Encoding.Default)
    15. ListBox1.Items.Clear()For Each line In frArray
    16. 'Dim Gesplittet() As String = line.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)Gesplittet = line.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)
    17. ListBox1.Items.AddRange(Gesplittet)
    18. Next
    19. End IfEnd Sub
    Richtig, du kannst sie so Initialisieren. Mit der genannten Fehlermeldung. Hilfreich?

    Resize die Array's einfach sobald du die Maximalen anzahl der Zeilen hast. (.Count)

    VB.NET-Quellcode

    1. Dim das as Integer = IO.File.ReadAllLines("").Count()
    2. Array.Resize(Name_Des_Arrays, das)
    Am besten initialisierst du sie ohne Startgröße:

    VB.NET-Quellcode

    1. Dim Bla() As String

    Und resized sie dann später (wie bereits o. g.):
    msdn.microsoft.com/de-de/library/bb348051.aspx
    Also z. B. so:

    VB.NET-Quellcode

    1. Array.Resize(Bla, 30)




    Mfg, jmb.96 :)
    "People assume that time is a strict progression of cause to effect, but actually, from a non-linear, non-subjective viewpoint, it's more like a big ball of wibbly wobbly, ...timey wimey ...stuff."
    @jmb.96
    Hallo, danke für deine Antwort.
    Aber das tu ich ja bereits. Ich initialisiere den Array ohne Startgrösse.

    @Neoner
    Funktioniert trotzdem nicht. Bekomme die selbe Fehlermelung.

    InvalidOperationException was unhandled
    Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.