Nach einem bestimmten Zeichen in der Textbox den Rest löschen

  • VB.NET

Es gibt 36 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    guck das in post#20 verlinkte Tutorial. Da habe ich sehr kurze Erklärungen versucht.
    Oder nochmal kurz: Du hast eine Sub-Methode geschrieben - ich trug dir aber eine Function-Methode auf.
    Schon diesen Unterschied zu verstehen ist entscheidend, und ist im verlinkten Tut definiert.

    Ein Return tut wie es heisst: Es kehrt zurück - die Methode wird an dieser Stelle verlassen.
    Functions können - im Unterschied zu Subs - beim Returnen einen Wert mitnehmen, und liefern ihn dort ab, von wo sie aufgerufen wurden.

    Ach du kannst dich auch bei MSDN informieren - die Schlüsselworte (wie zB Return)sind da sehr gut erklärt, auch mit Beispielen:
    msdn.microsoft.com/de-de/library/dd409611(v=vs.140).aspx
    Merk dir den Link - dort muss man immer wieder mal nachguchen.

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

    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Basteey02 schrieb:

    Private Function test()
    Offensichtlich hast Du den Rat vom @ErfinderDesRades noch nicht ganz verstanden.
    • Option Strict On.
    Bei Dir könnte so was stehen:

    VB.NET-Quellcode

    1. Private Function test()
    2. Select Case bla
    3. Case 1
    4. Return "@"
    5. Case 2
    6. Return 42
    7. Case 3
    8. Return DateTime.Now
    9. Case Else
    10. Return Nothing
    11. End Select
    12. End Function

    Der Typ, der von einer Funktion zurückgegeben werden soll, muss explizit deklariert werden:

    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 nochmal...

    Im Grunde liegen alle Teile der Lösung mehr oder weniger offen vor uns 8o . Schon im ersten Post hat @Basteey02 einen Code gepostet, der tatsächlich alles hinter dem Klammeraffen (@) weg gemacht hat 8-) . Nur eben alles und nicht in jeder einzelnen Zeile der Richtextbox (RTB) :( , sondern nur in der allerersten. Es geht also prinzipiel... :thumbsup:
    Vom @ErfinderDesRades wissen wir, dass es die .Line-Eigenschaft der RTB gibt, die uns jede Zeile einzeln zurückgibt.
    Also jetzt frisch ans Werk ;) , jede einzelne Zeile der RTB auslesen und darin alles hinter dem @ wegschneiden. Das kann man sich aus den Codeschnippseln hier drin zusammenkopieren.

    Die Grundlagen zu kennen, ist natürlich auf jeden Fall wichtig, macht aber am meisten Spaß mit Learning by Doing, also basteln, probieren und auf einmal gehts. Oder auch debuggen und sehen, warum es doch nicht so tut, wie es soll.

    Ob YT-Videos dafür was taugen, weiß ich nicht, die hab ich mir noch nie angesehen. Das beste ist es, sich eine überschaubare Aufgabe vorzunehmen, so wie diese Liste von E-Mail Adressen, aus denen nur die Namen herausdestilliert werden sollen und daran zu forschen und zu probieren, bis es klappt.

    Gruß
    Carbonunit
    Verbessere den Code, den du hast!
    Mehr kann leider nicht gesagt werden - ich kann den Code, den du hast, ja nicht sehen.

    Oder glaub besser wäre, du führtest unsere Kommunikation einfach ganz getreulich weiter.
    Wir waren ja eiglich auf einem Stand, wo du die Function SchneideAtAb() programmieren solltest.
    Wenn du jetzt von Listbox redest, bist du offsichtlich davon abgekommen, und machst momentan iwas ganz anderes, von dem wir nix wissen - selber schuld:
    Je mehr du dich abmühst, zu vermeiden, einfach mal zu machen, was ich vorschlage, desto länger dauerts.

    Weil hättest du die schneidetAtAb() fertig, dann hättest du dein Ergebnis bereits längst in deine rtb - halt wie in post#4 gezeigt.

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

    schau es dir an und nehme es auseinander

    für textbox:

    VB.NET-Quellcode

    1. Dim p As Integer, x As Integer
    2. Dim lines = TextBox.Lines
    3. For p = 0 To lines.Count - 1
    4. x = lines(p).IndexOf("@")
    5. If x <> 0 Then
    6. lines(p) = Mid(lines(p), 1, x + 1)
    7. End If
    8. Next p
    9. TextBox.Lines = lines


    für listbox:

    VB.NET-Quellcode

    1. Dim p As Integer, x As Integer
    2. For p = 0 To ListBox.Items.Count - 1
    3. x = ListBox.Items(p).ToString.IndexOf("@")
    4. If x <> 0 Then
    5. ListBox.Items(p) = Mid(ListBox.Items(p), 1, x + 1)
    6. End If
    7. Next p

    woeh schrieb:

    VB.NET-Quellcode

    1. Mid
    :thumbdown:
    Damit machst Du ja die ganze Hilfe zu Nichte.
    Vielleicht fängst Du zunächst an, VB.NET zu progeammieren.
    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!
    stimmt....habe selber noch viel zu lernen....gebe ich dir recht.

    ich wollte nur helfen, weil mir Basteey02 leid getan hat.
    vielleicht braucht er nur nen stupser oder nen anfang oder wie auch immer.
    oder er kann das noch nicht so ausdrücken.

    alle haben mal angefangen.

    das ich noch viel zu lernen habe und der umstieg für mich auf .net nicht immer einfach ist gebe ich ja zu und das ich noch viel lernen muß.

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

    Danke,

    ich kann eben momentan nur solch allgemeine und wirklich einfache dinge. Werde mir die Tage auch ein Buch zukommen lassen und mich mehr damit auseinandersetzen.
    Den code von @woeh habe ich nun auch verstanden, und kann damit auch etwas anfangen. Leider fehlen mir wie gesagt noch die nötigen Erfahrungen
    und hier die funktion, die dir keiner erklärt hat:

    VB.NET-Quellcode

    1. Public Function SchneidAb(ByVal str As String,
    2. ByVal toFind As String) As String
    3. Dim x As Integer
    4. x = str.IndexOf(toFind)
    5. If x = 0 Then
    6. str = Mid(str, toFind.Length + 1)
    7. ElseIf x <> -1 Then
    8. str = Mid(str, 1, x + toFind.Length)
    9. End If
    10. Return str
    11. End Function


    viel spaß beim verstehen ;)

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „woeh“ ()

    Basteey02 schrieb:

    Werde mir die Tage auch ein Buch zukommen lassen und mich mehr damit auseinandersetzen.
    Sehr gut, der erste Schritt in die richtige Richtung :)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    woeh schrieb:

    Visual Basic-Quellcode

    1. Mid

    woeh schrieb:

    habe selber noch viel zu lernen
    Hatten wir beereits in Post #31.
    Viel Spaß beim Programmieren mit VB.NET.
    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!