Announcement

Collapse
No announcement yet.

Delphi 6 / Eine Text Datei einlesen

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

  • Delphi 6 / Eine Text Datei einlesen

    Hallo,
    ich weiß das es zu diesem Thema wahrscheinlich schon sehr viele Antworten gab, aber nach 3 Stunden erfolglosem Googlen suche ich doch nochmal hier die Lösung.
    Ich habe schon einige Sachen aus Foren ausprobiert aber ich kriege es einfach nicht hin...

    Ich habe mal gepostet was zu ich schon habe
    der Test soll nochmal als Bildschirmausgabe angezeigt werden gerne mit Writeln.


    program Progamm;

    {$APPTYPE CONSOLE}

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ShellApi;

    begin
    ShellExecute(Application.Handle, 'open', 'cmd', '/k dir /b >> dir.txt & exit', nil, SW_SHOWNORMAL);

    //Hier soll der Text dir.txt nochmal ausgegeben werden

    readln;
    end.

  • #2
    Wie wäre es damit ?

    bye,
    Helmut

    Comment


    • #3
      Einlesen mit der TStringList

      http://www.marquardtnet.info/cecke/q...quicky_58.html
      lässt sich auf Delphi umsetzen

      Dann eine Schleife über die Liste und mit writeln ausgeben
      Christian

      Comment


      • #4
        Ich will ja aber die Textdatei nicht überschreiben.
        Wenn ich das anwende ist der Text den ich ausgeben wollte weg.

        Ich will einfach nur den Text aus der Datei mit Writeln oder in einer Textbox ausgeben.
        Nichts damit verändern nur nochmal aufschreiben

        Comment


        • #5
          Wenn ich das anwende ist der Text den ich ausgeben wollte weg
          Was anwende?
          Christian

          Comment


          • #6
            **AssignFile(myFile, 'Test.txt');
            **ReWrite(myFile);

            **WriteLn(myFile, 'Hello');
            **WriteLn(myFile, 'World');

            **CloseFile(myFile);
            **
            **Reset(myFile);
            **
            **while not Eof(myFile) do
            **begin
            ****ReadLn(myFile, text);
            ****ShowMessage(text);
            **end;
            **
            **CloseFile(myFile);


            Aber wenn ich das Hello World von der Anleitung raus nehme stürzt es ab...
            Gibt es da nicht einen einfache Anweisung für ?

            Comment


            • #7
              Gibt es da nicht einen einfache Anweisung für ?
              Nein, man nennt das programmieren.... Oder wie werden Programm wie bsp Word erstellt? Mit dem Befehl "macheWord"?

              Vielleicht hilft auch nur das lesen der Seite

              AssignFile(myFile, 'Test.txt');
              Das wird wohl immer gebraucht

              ReWrite(myFile);
              // Try to open the Test.txt file for writing to
              da du offenbar nicht schreiben willst, wäre die Anweisung erstmal wegzulassen

              // Write a couple of well known words to this file
              WriteLn(myFile, 'Hello');
              WriteLn(myFile, 'World');

              das willst du offenbar auch nicht, weglassen wäre eine Möglichkeit

              // Close the file
              CloseFile(myFile);
              wenn das andere nicht gewollt ist, auch weglassen?


              // Reopen the file for reading
              Reset(myFile);

              das klingt so, als ob man es gebrauchen könnte

              // Display the file contents
              while not Eof(myFile) do
              begin
              ReadLn(myFile, text);
              ShowMessage(text);
              end;

              Eine Schleife die was einliest könnte brauchbar sein

              // Close the file for the last time
              CloseFile(myFile);

              Nun, wenn man jetzt was gelesen hat könnte man die Datei schließen..


              So könnte man das versuchen
              Zuletzt editiert von Christian Marquardt; 06.10.2010, 06:46. Reason: Rechtschreibung
              Christian

              Comment


              • #8
                Na, bauen wir es doch mal zusammen:
                [highlight=delphi]
                program Progamm;
                {$APPTYPE CONSOLE}
                uses
                Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
                Dialogs, ShellApi;
                begin
                ShellExecute(Application.Handle, 'open', 'cmd', '/k dir /b >> dir.txt & exit', nil, SW_SHOWNORMAL);

                //Hier soll der Text dir.txt nochmal ausgegeben werden

                AssignFile(myFile, 'Test.txt');

                { Das kommentieren wir mal aus, denn wie du schon schreibst,
                überschreibt das deine 'Daten'

                ReWrite(myFile);
                WriteLn(myFile, 'Hello');
                WriteLn(myFile, 'World');
                CloseFile(myFile);
                }
                Reset(myFile);

                while not Eof(myFile) do
                begin
                ReadLn(myFile, text);
                ShowMessage(text);
                end;

                CloseFile(myFile);

                readln;
                end.
                [/highlight]

                So, wenn wir jetzt mal 'draufschauen, dann sehen wir, dass der Shellexecute - Befehl per sogenannter Pipe (" >> ") in eine Datei "dir.txt" schreibt.

                Zum Anzeigen / ausgeben wird aber die Datei "Test.txt" geöffnet, also eine ganz andere Datei. Wenn die wie im Beispiel zunächst per Rewrite/Writeln angelegt wird, klappt es, wenn nicht, stürzt das Programm ab, weil es die Datei nicht findet.

                Es muss also in der Assign() - Zeile auf "dir.txt" verwiesen werden damit das insgesamt funktioniert.

                Viel Erfolg!
                Tino
                Ich habs gleich!
                ... sagte der Programmierer.

                Comment


                • #9
                  danke
                  es hat beides funktioniert

                  Comment

                  Working...
                  X