Visual Basic FileReader Daten Trimmen und Speichern

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Visual Basic FileReader Daten Trimmen und Speichern

    Liebes Forum,
    ich stehe vor folgendem Problem

    Mein Anwendung soll eine

    Textdatei auslesen >

    Name: Fernando Pw: Testo Sicherheitsfrage: 12134
    Name: Marianne Pw: Schlange123 Sicherheitsfrage: 41232


    in jeder Zeile nach einem Schlüsselwort suchen > Das Schlüsselwort Ignorieren und den Text bis zur Leertaste Ausgeben in einem Datensatz


    Fernando | Testo | 12134



    Ich Suche die Ganze Zeit nach einer Trimm Option aber irgendwie finde ich keine Lösung. Die Abstände sind Teilweise Variabel sodass ein Manuelles Entfernen der Leerzeichen nicht Möglich ist.


    Ich hoffe irgend jemand hat eventuell einen Ansatz,
    Gruß, NoBrain ?(

    *Topic verschoben*
    imports system.brainservices

    Imports statement is unnecessary.
    Imports 'system.brainservices' doesn't contain any public member or cannot be found.
    :S

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Kann innerhalb der Values auch ein Blank auftauchen oder der Wert leer sein?
    Andernfalls:
    Splitten bei Blank mit RemoveEmptyEntries.
    Dann paarweise durchgehen.

    Alternativ:
    Split beim Doppelpunkt und Schlüsselworte am Ende löschen.

    Ansonsten einfach RegEx.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Oder eben mit Split und ganzen Strings arbeiten:

    VB.NET-Quellcode

    1. Dim Text = "Name: Fernando Pw: Testo Sicherheitsfrage: 12134"
    2. Dim SplittedText = Text.Split({"Name: ", "Pw: ", "Sicherheitsfrage: "}, StringSplitOptions.RemoveEmptyEntries).ToList.Select(Function(x) x.Trim)
    3. Dim FinalText = String.Join(" | ", SplittedText)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Das ist eine sehr elegante Lösung. :thumbup:
    Allerdings glaube ich nicht, dass der TE sie auch versteht.
    Vielleicht wäree es besser, da ein paar Zeilen mehr zu schrfeiben, wodurch der Ablauf verständlicher wird.
    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!
    Jetzt Habe ich doch ein Problem.

    Die Datei wird Ausgelesen und alle Daten werden in eine Textbox eingetragen untereinander.
    Ich möchte jetzt jede Line in ein Datagridview eintragen. Das Problem ist das Ich in einer Schleife hänge und er leider immer nur 1 Colum des Datagridview einträgt, passieren sollte aber folgendes

    Textbox:
    Fernando
    Testo
    12134



    Data Grid view:

    ColumnA | ColumnB | ColumnC
    Fernando| Testo | 12134



    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. Try
    3. For Each s As String In System.IO.File.ReadAllLines(TextBox1.Text)
    4. Dim SplittedText = s.Split({formatName.Text, formatpw.Text, formatsicherheitsfrage.Text}, StringSplitOptions.RemoveEmptyEntries).ToList.Select(Function(x) x.Trim)
    5. Dim FinalText = String.Join(vbNewLine, SplittedText)
    6. core.AppendText(FinalText + vbNewLine)
    7. Next
    8. For Each strLine As String In core.Text.Split(vbNewLine)
    9. Me.DataGridView1.Rows.Add(strLine)
    10. Next
    11. Catch ex As Exception
    12. MessageBox.Show(ex.Message)
    13. End Try
    14. Dim lineCount = IO.File.ReadAllLines(TextBox1.Text).Length
    15. DSC.Text = lineCount
    16. End Sub
    imports system.brainservices

    Imports statement is unnecessary.
    Imports 'system.brainservices' doesn't contain any public member or cannot be found.
    :S

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

    Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden. Stichwort: vbNewLine (VB6) und .Split(vbNewLine) (Split akzeptiert mit dieser Überladung keine Strings)
    Das Vorhaben ist komisch. Zuerst haust Du die Daten aller Datenzeilen in eine TextBox, sodass effektiv keine Unterscheidung mehr da ist, da es nur noch Vielfache-von-3-Textzeilen sind (also effektiv Informationsverlust), um dann zu versuchen, die Daten wieder aufzusplitten und sie in ein DGV zu zimmern. Dann hau sie doch gleich in der ersten For-Each-Schleife ins DGV.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.