Announcement

Collapse
No announcement yet.

einzelne werte aus einer Textdatei auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • einzelne werte aus einer Textdatei auslesen

    ich würde gerne einzelne werte aus einer Textdatei auslesen und in Variablen für die dauer des Betriebs vom Programm speichern!

    Mein Problem ist halt ich weiß nicht wie ich eine Zeile auf mehrere Variablen aufteilen kann?!

    aja ich programmier mit VB 2010 (ist gleich wie VB 2008)

    So tu ich die daten einlesen:So lese ich die Daten ein:
    [highlight=vbnet] Dim read As System.IO.StreamReader
    read = New System.IO.StreamReader("C:\Users\Admin\Desktop\tes t.txt")
    textvar = read.ReadLine[/highlight]
    aber leider lese ich da irgendwie nur die erste zeile.


    weiß jemand wie man mein problem lösen kann?


    mfg dominik
    Zuletzt editiert von Jürgen Thomas; 09.01.2010, 18:39. Reason: [highlight] eingefügt; bitte künftig selbst so machen! Grausames Deutsch bereinigt

  • #2
    Hallo Dominik und willkommen,

    zum Lesen von Textdateien gibt es viele Möglichkeiten. Das sollte ein Anreiz für dich sein, selbst in der SDK-Doku/MSDN/Hilfe zu blättern; dort gibt es unter Lesen von Textdateien und den anderen Links unter "Gewusst wie" eine Reihe von Verfahren.

    Konkret: 1. Dein Befehl liest ja auch nur eine Zeile. Wenn du das um eine while-Schleife erweiterst, kannst du mehr lesen.

    2. Einfacher geht es mit File.ReadAllLines: Dann bekommst du mit einem einzigen Befehl alle Zeilen in einen String-Array, das du direkt danach bearbeiten kannst.

    3. Direkt an eine bestimmte Zeile zu springen (also schon den Read-Befehl zu positionieren) ist nicht möglich, weil Zeilen immer unterschiedlich lang sind. Der Anfang einer bestimmten Zeile kann nur dadurch erkannt werden, dass die Datei vollständig durchlaufen wird (bei 1. in der while-Schleife, bei 2. durch den ganzen Befehl).

    Viel Erfolg! Jürgen

    PS. Die deutsche Sprache kennt Groß- und Kleinschreibung und Satzzeichen. Wenn man das beachtet, wird das Verständnis beim Lesen ungemein erleichtert.
    Zuletzt editiert von Jürgen Thomas; 09.01.2010, 18:40.

    Comment


    • #3
      Meine Textdatei wird warscheinlich so aussehen:

      Befehl,Parameter1,Parameter2,Parameter3,Parameter4 ...

      Mein Programm soll dann Zeile für Zeile abarbeiten!

      Dass heißt: Die erste Zeile wird abgearbeitet und wenn dies ist, dann kommt die nächste Zeile. Können schon so um die 200 zeilen werden!

      Und wie kann mein Programm feststellen welcher Befehl jetzt gerade in der Zeile steht? Und die dazugehörigen Parameter?

      Ich hoffe es ist jetzt verständlicher was ich will!


      mfg Dominik
      Zuletzt editiert von Vb Freak; 09.01.2010, 19:29. Reason: Groß und klein schreibung

      Comment


      • #4
        Hallo Dominik,

        wie schon gesagt: Entweder die gesamte Datei in ein String-Array einlesen und dann in einer foreach-Schleife die einzelnen Strings verarbeiten oder in einer while-Schleife Zeile für Zeile einlesen und verarbeiten.

        Zur Verarbeitung der einzelnen Zeilen gibt es String.Split, ggf. auch Substring.

        Du wirst hier keinen fertigen Code bekommen. Aber mit all meinen Begriffen solltest du so viele Hinweise bekommen haben, dass du erstmal anfangen kannst. Falls du so etwas wie eine Einführung in VB.NET brauchst, dann kannst du dir openbook visualbasic oder [wikibooks] Visual Basic.NET vornehmen.

        Gruß Jürgen

        Comment


        • #5
          Danke Jürgen!

          Einen fertigen Code erwarte ich eh nicht!
          Dass wär ja keine Herausforderung! Es reicht ja schon ein Hinweis!

          Und nochmals Danke!!!
          Sowas wie String.Split hatte ich gesucht!

          Werde jetzt einmal herumexperementieren.


          mfg
          Dominik

          Comment


          • #6
            Noch zwei kleine Hinweise.

            Unter .NET gibt es unglaublich viele Möglichkeiten, die kann kein Programmierer alle kennen. Auch ein erfahrener Entwickler muss ständig in der SDK-Doku/MSDN/Hilfe blättern, welche Eigenschaften, Methoden und Ereignisse zu einer Fragestellung passen könnten. Deshalb habe ich gleich am Anfang empfohlen, dir dieses Verhalten anzugewöhnen. Wenn du also z.B. einen String verarbeiten willst und weißt nicht wie, dann schau dir unter String-Klasse Alle Member an.

            So viele Ausrufezeichen, wie du sie verwendest, werden in Foren als äußerst unhöflich angesehen, weil sie als "Anschreien" verstanden werden.

            Aber wie gesagt: Viel Erfolg! Jürgen

            Comment


            • #7
              Warum überlegst Du Dir ein eigenes Config Format? Versuche doch das ganze in die App.Config einzubinden. Dort gibt es einen fertigen Mechanismus um Konfigurationsdatei zu lesen und zu schreiben.
              Wenns schon eine extra Datei sein muss, dann schau dich evtl. auch mal im XML Umfeld. So lassen sich auch sehr schöne Config-Files erstellen und man muss nicht einen eigenen Parser schreiben.

              Comment


              • #8
                @fanderlf
                Auf diese Idee bin ich überhaupt nicht gekommen. Du hast natürlich recht, dass die Varianten von xml und config besser sind als ini-Dateien. Manchmal lasse ich mich zu sehr auf die Vorgaben des Fragestellers ein, auch wenn ich oft genug Tipps zu einem besseren Vorgehen gebe.

                Gruß Jürgen

                Comment


                • #9
                  Mit XML hab ich nicht wirklich Erfahrungen.
                  Also dies wird schwierig.
                  Aber ich werde es jetzt mit Excel lösen. Anstatt der txt-Datei.

                  Da kann ich dass mit den Parametern ganz leicht übergeben.

                  Vielen Dank für eure Vorschläge und Tipps


                  mfg

                  Dominik

                  Comment


                  • #10
                    Relativ einfach ist auch der Ansatz über Serialisierung. Da musst Du eigentlich nichts mehr machen als eine Klasse für Deine Konfigurationsdaten zu erstellen. Dann nimmst Du den XMLSerializer und de-/serialisierst das Objekt in eine Datei und wieder zurück

                    Comment


                    • #11
                      würde ich auch sagen, denn zu deiner Idee mit Excel muss ich sagen dass es einfach nur das dümmste ist was man machen kann von allen Ansätzen die man wählen kann.
                      Unsere Jugend ist unerträglich, unverantwortlich und entsetzlich anzusehen! - Aristoteles

                      Comment

                      Working...
                      X