Variable aus String erstellen

  • VB.NET

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

    Variable aus String erstellen

    Also ich habe wieder ein neues Problem:
    Ich möchte eine Variable aus einem String erstellen.

    Ich nun zwei Variablen: NewName und NameCounter (beide public, da ich aus mehreren Subs (?) darauf zugreifen muss)

    VB.NET-Quellcode

    1. Public NewName As String = "NeueVariable"
    2. Public NameCounter As Integer = 0


    Jetzt möchte ich beim Click auf einen Button, dass dann folgendes passiert:
    (Beispiel)

    VB.NET-Quellcode

    1. Dim VARIABLE As String = "Hallo Du "+NameCounter.ToString()

    An der Stelle von VARIABLE sollte in etwa sowas hin:
    NewName+NameCounter.ToString()
    Ich hoffe ihr wisst was ich meine..

    Ich hatte eigendlich gedacht, dass das mit Shell funktionieren könnte, aber Shell führt ja nur Programme aus.. :(


    LG
    -iBot
    Danke für den Versuch, aber nein das ist es nicht.
    Ich möchte eine Variable erstellen, die den Namen eines Strings hat.
    Also:
    str_text = "Visual_Basic" (Beispiel)
    Visual_Basic = 2008 (Beispiel)

    Und was für ein Zufall, die Variable heißt so, wie der Inhalt des String.

    Ich hoffe du weißt jetzt was ich meine. :D


    LG
    -iBot
    lol es wird immer unverständlicher ^^

    Suchst du vll was wie structures bzw types?

    Edit: ah du willst also eine variable deklarieren, von der du vorher nicht weißt wie sie heißen soll? Warum das denn? Das geht schließlich mit jedem variablennamen und ist viel einfacher

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „kevin89“ ()

    Ach du heiliger.. ^^

    Hm.. wie erklär ich das jetzt?

    Okay..

    Da folgendes (ist nur ein Beispiel) nicht funktioniert hat, hatte ich vor, das ohne Array zu machen, sondern jedesmal eine neue Variable erstellen zu lassen.
    Da dies ja immer eine andere Variable sein muss, hatte ich vor, diese immer gleich zu nennen und nur die Zahl am Ende zu verändern.
    Dadurch muss ich den Inhalt eines String zum Namen einer Variable machen.

    Nochmal zur Vereinfacherung wegen den Arrays:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public TB_Counter As Integer = 0
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim NewTextBox(TB_Counter) As TextBox
    5. NewTextBox(TB_Counter).Left = 16
    6. NewTextBox(TB_Counter).Top = 24 + (TB_Counter * 16)
    7. NewTextBox(TB_Counter).Width = Me.Width - 32
    8. NewTextBox(TB_Counter).Height = 16
    9. End Sub
    10. End Class
    €dit hier wird dann folgendes gesagt:
    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    €dit: was das bringt steht ja oben ^^

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „iBot“ ()

    Ja neh..
    Was Arrays sind, weiß ichja
    ich möchte aber z.B. eine TextBox erstellen.
    (Mehrere Textboxen)
    Und um die zu speichern kann ich aber keinen Array nehmen, da ich dann nicht "New" benutzen kann.

    ehm.. was ist ein String mit Indizes?


    LG
    -iBot
    Hi
    Ich würde das ganze über eine Liste mit Strings machen. Z.B. so:

    VB.NET-Quellcode

    1. Public Class VariableList
    2. Private lstVariables As New List(Of Object)
    3. Private lstVariableNames As New List(Of String)
    4. Default Public Property Variable(ByVal Name As String) As Object
    5. Get
    6. Return lstVariables(lstVariableNames.IndexOf(Name))
    7. End Get
    8. Set(ByVal value As Object)
    9. lstVariables(lstVariableNames.IndexOf(Name)) = value
    10. End Set
    11. End Property
    12. Public Sub Add(ByVal Name As String)
    13. lstVariables.Add(Nothing)
    14. lstVariableNames.Add(Name)
    15. End Sub
    16. Public Sub Add(ByVal Name As String, ByVal Value As Object)
    17. lstVariables.Add(Value)
    18. lstVariableNames.Add(Name)
    19. End Sub
    20. Public Sub Remove(ByVal Name As String)
    21. lstVariables.RemoveAt(lstVariableNames.IndexOf(Name))
    22. lstVariables.Remove(Name)
    23. End Sub
    24. Public Function VariableExists(ByVal Name As String) As Boolean
    25. Return lstVariableNames.Contains(Name)
    26. End Function
    27. End Class


    und dann mit Add eine neue Variable definieren. Mit Variable("Variablenname") kann man dann auch den Wert setzen bzw. herausfinden. Eine andere einfache Möglichkeit fällt mir nicht ein.

    Gruß
    ~blaze~
    Kuhl Blaze, aber iwie kann ich die Klasse nicht verwenden, kannst du nochmaln Beispiel geben...wie man die Klasse direkt verwendet? eig hab ich mich ja net so, aba iwie stehe ich heute aufm Schlauch^^

    MFG...MrLee

    Keine PN's bezüglich VB an mich! Dafür gibt es das Forum!

    :Kreis hier. Kreis da.:

    Was natürlich möglich wäre, wäre eine Möglichkeit wie bei manchen Sprachen eval(), um Code während der Laufzeit auszuführen. Das geht in VB allerdings nicht. Ich glaube in System.Reflection oder irgendwo anders gibt es aber eine Möglichkeit Code während der Laufzeit auszuführen. Google mal nach eval VB .NET ;) Das sollte dir helfen.
    klar

    VB.NET-Quellcode

    1. 'neue Variablenliste erstellen
    2. Dim vlVariables As New VariableList
    3. 'Neue Variable erstellen
    4. vlVariables.Add("Hello World", New Size(500, 500))
    5. 'Variablenwert abrufen
    6. Me.ClientSize = vlVariables("Hello World")
    7. vlVariables.Variable("Hello World") = 999 'Anderen Wert setzen
    8. 'wieder Wert abrufen
    9. Me.Text = "xy" & vlVariables.Variable("Hello World")
    10. 'Variable löschen
    11. vlVariables.Remove("Hello World")


    Gruß
    ~blaze~