Endung einfügen hinter Text [Liste]

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von nikexo.

    Endung einfügen hinter Text [Liste]

    Hallo Community!

    Ich wusste nicht genau wie ich diesen Thread betiteln soll.
    Egal ich fang einfach mal an zu erklären.

    Ich will eine Liste [*.txt] über einen Button einlesen.
    Diese Liste soll dann in einer ListBox (oder TextBox) angezeigt werden.
    So dann hab ich die Liste in der ListBox/TextBox.

    In einer anderen Textbox will ich eine bestimmte Endung einfügen z.B. 123
    und mit einem Button füge ich dann dieses 123 hinter jedes Element in der ListBox/Textbox.

    Zu guter Letzt würde ich noch gerne mit einem dritten Button die Liste wieder abspeichern.

    Hier noch ein Bild um zu verdeutlichen was ich meine:
    Und wo hängst Du bzw. wo ist Dein Ansatz?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Trade Jou
    Für

    nikexo schrieb:

    bei 0
    hast Du immerhin schon ein paar aussagekräftige Bilder.
    Sollen wir Deine Hausaufgaben machen? Dann geh ins Marktplatz-Forum.
    ----
    Soll Dir geholfen werden? Dann poste Deinen Code und beschreib, was da nicht funktioniert.
    Und:
    (Rich)TextBoxen haben eine Property Lines.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du scheint also schon zu wissen, wie man auf die Elemente in der ListBox zugreift.
    Über alle Elemente in einer Liste/Array laufen kann man mit einer ForEach-Schleife.
    Strings verketten geht in VB ja netterweise z.B. mit dem + Operator.

    Nur das als Tipp ;)

    Viele Grüße,
    Manawyrm

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

    Manawyrm schrieb:

    mit dem + Operator
    &-Operator.
    =====

    nikexo schrieb:

    ListBox/Textbox
    Ja was denn nun?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Manawyrm schrieb:

    oder?
    Bei Strict Off kann es sein, dass er bei "1" und "1" zwischen "2" und "11" schwankt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    nikexo schrieb:

    Anfängerfreundlich
    Poste mal Deinen Code und beschreibe, was er machen soll.
    Der Code, nicht aber Dein Programm.
    =============
    @Manawyrm

    VB.NET-Quellcode

    1. Option Strict Off
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim a = "1" + 1
    5. Dim b = "1" & 1
    6. MessageBox.Show(a & Environment.NewLine & b)
    7. End Sub
    8. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe jetzt ein paar Elemente in die Listbox geladen und will jetzt eine Endung anfügen zB.: 123
    Das sollte doch nicht so schwer sein? :P

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Using FD As New OpenFileDialog()
    3. FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    4. If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. ListBox1.Items.Clear()
    6. ListBox1.Items.AddRange(IO.File.ReadAllLines(FD.FileName))
    7. End If
    8. End Using
    9. End Sub
    10. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    11. Using FD As New SaveFileDialog()
    12. FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    13. If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
    14. IO.File.WriteAllLines(FD.FileName, (From p As String In ListBox1.Items Select p).ToArray)
    15. End If
    16. End Using
    17. End Sub


    Das ist jetzt mal zum Öffnen und Speichern...

    nikexo schrieb:

    VB.NET-Quellcode

    1. IO.File.WriteAllLines(FD.FileName, (From p As String In ListBox1.Items Select p).ToArray)
    Wenn Du so nen Code verwendest sollte das andere doch ganz einfach sein. :/
    Probier mal die Variante mit der TextBox und sieh Dir die letzte Zeile in Post #4 an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Am besten ist mal wieder Databinding, weil damit kann man Daten und Anzeige auseinanderhalten.
    Also füll deine Daten (es sind Strings) nicht in eine Listbox, sondern füll sie in eine BindingList(Of String) - denn es sind ja Strings

    VB.NET-Quellcode

    1. Private _Strings as new System.ComponentModel.BindingList(Of String)
    2. Private Sub btLoad_Click(sender As Object, e As EventArgs) Handles btLoad.Click
    3. Using FD As New OpenFileDialog()
    4. FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    5. If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
    6. _Strings.Clear()
    7. for each s in IO.File.ReadLines(FD.FileName)
    8. _Strings.Add(s)
    9. next
    10. Listbox1.DataSource = _Strings
    11. End If
    12. End Using
    13. End Sub
    14. 'Nun kannst du sehr einfach die Strings manipulieren, und brauchst an die Anzeige nichtmal mehr zu denken:
    15. private Sub Append123()
    16. For i = 0 to _strings.Count-1
    17. _strings(i) = _strings(i) & "123"
    18. Next
    19. end sub
    Wenn das klappt, sollten wir uns die anderen Gurken in deim Code vorknöpfen, gibt noch viel zu verbessern.

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

    So hab das jetzt mal so gemacht:

    VB.NET-Quellcode

    1. Private _Strings As New System.ComponentModel.BindingList(Of String)
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Using FD As New OpenFileDialog()
    4. FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    5. If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
    6. _Strings.Clear()
    7. For Each s In IO.File.ReadLines(FD.FileName)
    8. _Strings.Add(s)
    9. Next
    10. ListBox1.DataSource = _Strings
    11. End If
    12. End Using
    13. End Sub
    14. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    15. For i = 0 To _Strings.Count - 1
    16. _Strings(i) = _Strings(i) & "123"
    17. Next
    18. End Sub
    19. End Class


    Du hast doch:

    VB.NET-Quellcode

    1. private Sub Append123()
    2. For i = 0 to _strings.Count-1
    3. _strings(i) = _strings(i) & "123"
    4. Next
    5. end sub

    geschrieben. Kann ich das nicht direkt auf den Button einbinden?
    sag du's mir, ob du's kannst.

    ("auf dem Button einbinden" geht natürlich nicht, weil auf einem Button kann man nix einbinden.
    Aber ich glaub ich verstehe was du meinst. Würde aber trotzdem empfehlen, du versuchst, was du meinst, in sinnvoller Ausdrucksweise zu formulieren.
    Rechtschreibung etc. ist mir schnurz, aber für ein klares und lösungsorientiertes Denken halte ich es für grundsätzlich wichtig und immer eine gute Übung, zu versuchen, Begriffe jeglicher Art richtig zu verwenden)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()

    nikexo schrieb:

    direkt auf den Button einbinden
    Macht doch Deine Routine

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    wenn ich das recht verstehe.
    Du kannst natürlich auch scheiben:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. Append123()
    3. End Sub
    Das ist natürlich äquivalent.
    Falls das nicht das ist, was Du meinst, definiere Dein "einbinden".
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!