.txt Datei als DataSet nutzen

  • VB.NET

Es gibt 46 Antworten in diesem Thema. Der letzte Beitrag () ist von Sam85.

    @VaporiZed
    Vielen Dank so läuft es perfekt. :thumbsup:
    Aus reiner neugierde, welche Funktion hat das $?

    VB.NET-Quellcode

    1. Sub SaveData()
    2. Dim m As String = CB_Month.Text
    3. Dim dataFile As String = "\\rs-win1\ablage\300archiv\log\" & m & "\log.txt"
    4. Dim FinalText As New Text.StringBuilder
    5. For Each row In Care_log.CareLogFile
    6. FinalText.AppendLine($"{row.ABRP.ToString()};{row.RECP.ToString()};{row.Rechnung.ToString()};{row.Monat.ToString()};{row.ImageempfängerIK.ToString()};{row.KostenträgerIK.ToString()};{row.Sachbearbeiter.ToString()};{row.Korrekturstatus.ToString()};{row.APOK.ToString()}")
    7. Next row
    8. IO.File.WriteAllText(dataFile, FinalText.ToString())
    9. End Sub

    Das kennzeichnet eine sogenannte interpolierte Zeichenfolge (IPZF).
    Angenommen, Du hättest einen Integer DaysInMonth und willst den Wert in einem Text ausgeben. Dann gibt es viele Möglichkeiten. Der Klassiker:

    VB.NET-Quellcode

    1. TextBox1.Text = "In jenem Monat gibt es " & DaysInMonth.ToString & " Tage."

    Mit interpolierter Zeichenfolge kannst Du die Variable quasi direkt im Text verwenden:

    VB.NET-Quellcode

    1. TextBox1.Text = $"In jenem Monat gibt es {DaysInMonth} Tage."


    EDIT: Bei den Mikrosaft-Docs gibt's noch mehr dazu.
    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.

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

    @VaporiZed

    Kann ich das auch untereinander schreiben, ohne das Enter in der .txt Datei mit übernommen wird? Oder muss ich dafür einen Delimiter integrieren, der " " entfernt?

    VB.NET-Quellcode

    1. FinalText.AppendLine($"{row.ABRP.ToString()};{row.RECP.ToString()};{row.Rechnung.ToString()};{row.Monat.ToString()};{row.ImageempfängerIK.ToString()};{row.KostenträgerIK.ToString()};{row.Sachbearbeiter.ToString()};{row.Korrekturstatus.ToString()};{row.APOK.ToString()}")


    So werden die Zeilenumbrüche nämlich mit übertragen :S

    VB.NET-Quellcode

    1. For Each row In Care_log.CareLogFile
    2. FinalText.AppendLine($"{row.ABRP.ToString()};
    3. {row.RECP.ToString()};
    4. {row.Rechnung.ToString()};
    5. {row.Monat.ToString()};
    6. {row.ImageempfängerIK.ToString()};
    7. {row.KostenträgerIK.ToString()};
    8. {row.Sachbearbeiter.ToString()};
    9. {row.Korrekturstatus.ToString()};
    10. {row.APOK.ToString()}
    11. ")
    12. Next row


    EDIT: Oder fehlt einfach _

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

    Ja, musst Du wohl. Environment.Newline und die Tabs restlos ersetzen.
    Mit _ habe ich keinen Weg gefunden, es hinzubekommen. Vielleicht gibt es noch einen Trick.
    Notfalls:

    VB.NET-Quellcode

    1. FinalText.Append($"{row.ABRP};")
    2. FinalText.Append($"{row.RECP};")
    3. FinalText.Append($"{row.Rechnung};")
    4. FinalText.Append($"{row.Monat};")
    5. FinalText.Append($"{row.ImageempfängerIK};")
    6. FinalText.Append($"{row.KostenträgerIK};")
    7. FinalText.Append($"{row.Sachbearbeiter};")
    8. FinalText.Append($"{row.Korrekturstatus};")
    9. FinalText.Append($"{row.APOK}{Environment.NewLine}")

    Aber auch nicht grad schön.
    Die ToString()-Zusätze können bei der IPZF wegfallen, merkte ich gerade.
    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.
    Ok, wenn es Dir um kürzer geht, würde noch der Weg mit With gehen. Ich dachte, dass es um Übersichtlichkeit geht:

    VB.NET-Quellcode

    1. With row
    2. FinalText.Append($"{.ABRP};")
    3. FinalText.Append($"{.RECP};")
    4. FinalText.Append($"{.Rechnung};")
    5. FinalText.Append($"{.Monat};")
    6. FinalText.Append($"{.ImageempfängerIK};")
    7. FinalText.Append($"{.KostenträgerIK};")
    8. FinalText.Append($"{.Sachbearbeiter};")
    9. FinalText.Append($"{.Korrekturstatus};")
    10. FinalText.Append($"{.APOK}{Environment.NewLine}")
    11. End With

    Man könnte bestimmt noch das FinalText.Append auslagern, aber das wär m.E. Overkill.
    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

    mir ging es um beides.
    besser nicht :saint: zu meiner Schande muss ich zugeben, dass ich bei dem Enterversuch bereits die Text Datei überschrieben hatte und dann per Hand alles wieder gerade rücken musste...kein Overkill mehr.

    so ist es gut

    VB.NET-Quellcode

    1. For Each row In Care_log.CareLogFile
    2. FinalText.AppendLine($"{row.ABRP};{row.RECP};{row.Rechnung};{row.Monat};{row.ImageempfängerIK};{row.KostenträgerIK};{row.Sachbearbeiter};{row.Korrekturstatus};{row.APOK}")
    3. Next row