Textbox Zeilen auslesen

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Relkaia.

    Textbox Zeilen auslesen

    Hallo liebes Forum

    Ich stehe derzeit ziemlich auf dem Schlauch.
    Und zwar möchte ich aus einer Textbox heraus die Zeilen auslesen und wenn die Zeile mit einem oder zwei bestimmten Wort/Wörter anfängt diese weglassen.
    Das klappt auch !

    Jetzt kommt aber der Knackpunkt und zwar muss ich solch eine Funktion in ein Programm einbinden, welches wohl nicht auf einem aktuellen .FrameWork zu sein scheint, und deswegen die Lines Funktion nicht zulässt (Er meint dann es sei kein Member von String)
    Ich habe es bisher nicht hinbekommen die Funktion so umzuschreiben das sie auch ohne Lines funktioniert. ?(

    Hier mal der Code der funktionierenden Funktion (Verbesserungen dürft ihr auch gerne bringen, bin dafür immer offen :) ) und ich bitte um Vorschläge oder Denkanstöße wie ich das umschreiben kann .

    Danke im Voraus ^^

    VB.NET-Quellcode

    1. Dim tmp As New System.Text.StringBuilder
    2. For Each line As String In TextBox1.Lines
    3. If Not line.StartsWith("Hallo Welt") Then tmp.AppendLine(line)
    4. Next
    5. TextBox1.Text = tmp.ToString
    Es gibt 10 Arten von Menschen. Die die binäre Mathematik verstehen und die, die es nicht verstehen! <3
    Hej @Relkaia, wie wärs wenn du den Text der Textbox an jedem Zeilenende splittest?

    VB.NET-Quellcode

    1. Dim lines() As String = TextBox1.Text.Split(vbCrLf)
    2. For Each line As String in lines
    3. If Not line.StartsWith("Hallo Welt") Then tmp.AppendLine(line)
    4. Next


    Grüße
    Väinämö
    Da müsste ich erst schauen wie das mit dem Debuggen bei dem Programm geht, das müsste ich mir selbst genau erst erklären lassen weil es gibt zwar 'nen Debugg Button der funktioniert aber nich so wie im Visual Studios. (darum kümmer ich mich aber schnellst möglich, dann kann ich weiter Auskunft geben)

    Ich hab halt 'n Programm bekommen, in welchem ich in einem Formular eine TextBox erstellt habe, dort wird der gewünschte Text eingefügt, diese TextBox wird dann im Code aufgerufen und "weiterverarbeitet", da der Code immer wieder je nach Situation verändert wird, und dann in ein Word Dokument eingefügt wird. (Das klappt auch nur das mit den bestimmten Zeilen entfernen eben nicht.
    Es gibt 10 Arten von Menschen. Die die binäre Mathematik verstehen und die, die es nicht verstehen! <3

    Relkaia schrieb:

    VB.NET-Quellcode

    1. Dim lines() As String = TextBox1.Text.Split(vbCrLf)
    Machst Du:

    VB.NET-Quellcode

    1. Dim lines() As String = TextBox1.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!

    Relkaia schrieb:

    Da müsste ich erst schauen wie das mit dem Debuggen bei dem Programm geht

    Was benutzt du denn für ein Programm?

    Relkaia schrieb:

    Er sagt immernoch Lines sei kein Member von String

    Was sagt dir das? Deine TextBox1 ist keine TextBox sondern ein String.

    Option 1: Schau nach wo deine TextBox abgeblieben ist oder mach einfach ne neue.
    Option 2: Nimm weiter den String und benutz TextBox1.Split(vbCrLf).

    Grüße
    Väinämö
    @Vainamo V Jou.

    Relkaia schrieb:

    Er sagt immernoch Lines sei kein Member von String
    Dann machst Du was falsch.
    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!
    Kleine Rückmeldung:

    Leider bekomme ich derzeit noch keine Werte heraus, aufgrund des mir momentan nicht möglichen Debuggens.
    Außerdem steht nächste Woche Berufsschule an, d.h. ich habe leider nächste Woche nicht die Möglichkeit auf das externe Programm zuzugreifen.
    Ich bemühe mich trotzdem so schnell wie möglich das rauszubekommen und würde mich dann übernächste Woche nochmal melden.
    Ich hoffe auf Verständnis :saint:
    Es gibt 10 Arten von Menschen. Die die binäre Mathematik verstehen und die, die es nicht verstehen! <3
    Ich hab jetzt das nochmal ohne den Versuch des Debugging versucht und hatte Erfolg.

    Vainamo V schrieb:


    Was sagt dir das? Deine TextBox1 ist keine TextBox sondern ein String.

    Ich hab es als TextBox angelegt, aber das Programm scheint es dann wohl doch nicht explizit auch als diese anzulegen

    Vainamo V schrieb:


    Option 2: Nimm weiter den String und benutz TextBox1.Split(vbCrLf).


    Ja, das war es, das blöde meinerseits aus war, dass ich zusätzlich den Fehler gemacht hab es in Verbindung einer falschen Word Vorlage zu versuchen, welche den Teil des Codes sowieso übersprungen hat. :whistling:
    Mit der richtigen hatte es dann mit der Split Funktion ohne weitere Probleme geklappt :)

    Das ist jetzt das funktionierende Endresultat.
    Danke nochmal, für eure Hilfe

    VB.NET-Quellcode

    1. Dim tmp As New System.Text.StringBuilder
    2. Dim lines As String() = Textbox1.Split(vbCrLf)
    3. For Each line As String In lines
    4. If Not line.StartsWith("Hallo Welt") Then tmp.AppendLine(line)
    5. Next
    6. TextBox1.Text = tmp.ToString


    Grüße,
    Relkaia
    Es gibt 10 Arten von Menschen. Die die binäre Mathematik verstehen und die, die es nicht verstehen! <3
    Wieso?
    In Zeile #2 wird die TextBox in meherer Zeilen gesplitet, und wird dann in der For Each Schleife zeile für Zeile durchgegangen um danach alle Zeilen welche nicht mit "Hallo Welt" anfangen in tmp zu schreiben.
    In Zeile #8 überschreibe ich den Inhalt der TextBox mit dem Inhalt von tmp.

    Zitat entfernt. ~Thunderbolt
    Es gibt 10 Arten von Menschen. Die die binäre Mathematik verstehen und die, die es nicht verstehen! <3

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

    Offensichtlich unterscheidest du keine Datentypen.
    Sehr dringend dir daher empfohlen: Visual Studio - Empfohlene Einstellungen

    Die Widersprüchlichkeit besteht darin, dass in zeile#2 Textbox1 ein String ist, und in zeile#8 eine Textbox.

    Wie gesagt: Solche Fehler unterlaufen einem nur, wenn man Strict Off proggt.
    Ich programmiere nicht im VS selbst sonder einer Art Script, welches nur meckert wenns dann schon falsch ist und ich nicht sofort heraus lesen kann welche Werte wo und wie gesetzt sind. Innerhalb von VS selbst hab ich natürlich immer Option Strict On.
    Der eigentliche Fehler ist eher das ich versucht hab das Sinngemäß zu "übersetzen", da ich mit anderen Funktionen dort hantiere und dann wohl vor lauter Freude, das es funktioniert, diesen Teil vermurkst hab.

    Wenn ich es korrigieren würde müsste ich doch eigentlich nur das .Text in Zeile #8 weglassen oder? So dass alles als String gehandelt wird und nicht als textbox, oder?
    ansonsten wenn ich davon ausgehe das die textbox auch als textbox gewertet wird dann wäre es natürlich textbox1.text.split(vbCrLf), aber das war ja das Ursprungsproblem, das die Textbox als String gewertet wurde.

    Zitat entfernt. ~Thunderbolt
    Es gibt 10 Arten von Menschen. Die die binäre Mathematik verstehen und die, die es nicht verstehen! <3

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

    1. Weil ich die Aufgabe bekommen hab das Firmeninternen Programm um n paar Funktionen zu erweitern
    2. Das kann ich selbst auch nicht genau beantworten, ich nehme nur die Worte die auch mir genannt wurden als es mir erklärt wurde.
    3. Weil VB.net als Sprache auch benutzt wird bzw so gut wie komplett darauf basiert, aber mit eigenen Funktionen wohl erweitert wurde. Ich programmier auch in VB, es ist nur dass ich einige Sachen halt mit den internen FUnktionen und Variablen übergabe machen muss, welche aber hier nix zur Problemlösung beigetragen hätten. Also hab ichs halt umschrieben.

    Zitat entfernt. ~Thunderbolt
    Es gibt 10 Arten von Menschen. Die die binäre Mathematik verstehen und die, die es nicht verstehen! <3

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

    Relkaia schrieb:

    VB.NET-Quellcode

    1. Dim lines As String() = Textbox1.Split(vbCrLf)
    What :?:
    Try this:

    VB.NET-Quellcode

    1. Dim tmp As New System.Text.StringBuilder
    2. For Each line As String In TextBox1.Lines
    3. If Not line.StartsWith("Hallo Welt") Then tmp.AppendLine(line)
    4. Next
    5. TextBox1.Text = tmp.ToString
    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!