Nur Zeilen ohne "#" in String speichern

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Rinecamo.

    Nur Zeilen ohne "#" in String speichern

    Hi,

    Ich habe mal eine Frage und zwar möchte ich aus einer Datei alle Zeilen auslesen, die nicht mit einer "#" anfange und die nicht lehr sind.
    Diese möchte ich anschließend in einen String speichern.

    Wie bekomme ich das hin?

    Danke im Voraus

    mfg kinnaj100
    Ich würde (ganz spontan) sagen die TextDatei mit eine For-Schleife lesen und prüfen welche Zeile nicht mit einem # anfängt oder Leer ist und diese dann entsprechend Speichern.

    Ist jetzt nur so eine spontane Idee habs nicht getestet

    TextDateien unterstützen leider keine For-Schleifen.

    Man muß sich mittm StreamReader auseinandersetzen, und eine While-Schleife bilden, oder eine Do - Schleife.

    Ist zwar nicht exakt das Thema, aber die genannten Schleifen sind dort auch gezeigt: CSV importieren
    Mittm StreamReader gehts strukturell ebenso wie mit dem dortigen TextFieldParser.

    Den StreamReader empfehle ich sehr im ObjectBrowser anzugugge - Dateizugriffe sind schon sehr essentiell inne .Net-Programmierung.
    Mit ReadAllLines() holst Fu Dir den Inhalt der Datei in ein Array, dort kannst Du mit For Each die Spreu vom Weizen trennen.
    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!
    kann man die einzelnen Zeilen nicht erst in einen Stack(of String) einlesen und diese dann Nacheinander Prüfen?
    Wenn ja, wie genau kann ich das jetzt machen das die einzelne Zeilen gelesen werden und anschließend aus meinen Stack gepackt werden?
    Stack --> Array

    So kriegst du den Text in einen Array:

    VB.NET-Quellcode

    1. Dim AlleZeilen() As String = IO.File.ReadAllLines("Pfad")


    Stichworte:
    - For Each Schleife >>Zeilen einzeln lesen
    - String.startsWith >> Zeile beginnt mit bestimmtem Zeichen
    - String.trim >> Entfernt alle Leerezeichen links und rechts vom String

    Nun solltest du auf die Lösung kommen.

    Grüsse
    Dancegr
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...
    Wie EDR schon sagte, ein Streamreader wäre hier sinnvoller.

    VB.NET-Quellcode

    1. Using sr As New StreamReader("")
    2. While Not sr.Peek() > -1
    3. Dim line = sr.ReadLine()
    4. '... siehe String.StartsWith | String.Trim | String.IsNullOrEmpty
    5. End While
    6. End Using

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