Announcement

Collapse
No announcement yet.

Zeilen einer txt datei auslesen

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

  • Zeilen einer txt datei auslesen

    allo,

    Also ich habe fünf txt files, mein programm soll nun aus diesen 5 txt files die anzahl der zeilen auslesen, und die zahlen sollen als labels ausgegeben werden...

    Bsp.

    Datei1.txt (30 Zeilen)
    Datei2.txt (2 Zeilen)
    ...

    in meinem programm habe ich 5 labels welche als 0 benannt sind, wenn ich jetzt auf den Button "Daten Laden" klicke soll die anzahl der zeilen ausgelsen werden und dann wie folgt erscheine...

    Datei1 hat 30 Zeilen
    Datei2 hat 2 Zeilen
    ...

    bitte helft mir, es ist wichtig, ein bsp wäre gut

    MFG Sascha
    Zuletzt editiert von Christian Marquardt; 05.06.2017, 21:10. Reason: löschen löschen löschen

  • #2
    Das Einfachste für Dich dürfte folgendes sein:

    <pre>

    function LineCount(const Filename: String);
    var
    S: TStringList;
    begin
    S := TStringList.Create;
    try
    S.LoadFromFile(FileName);
    Result := S.Count;
    finally
    S.Free;
    end;
    end;

    <pre>

    Gruß Hage

    Comment


    • #3
      jo schön, und wie mach cih das mit den anderen files ? ich hab ja 5 stüc
      Zuletzt editiert von Gast_1; 09.06.2009, 11:02.

      Comment


      • #4
        Na mit Hagens funktion:<br>
        label1.caption:=inttostr(LineCount('Datei1.txt')); <br>
        label2.caption:=inttostr(LineCount('Datei2.txt')); <br>
        label3.caption:=inttostr(LineCount('Datei3.txt')); <br>
        label4.caption:=inttostr(LineCount('Datei4.txt')); <br>
        label5.caption:=inttostr(LineCount('Datei5.txt')); <br&gt

        Comment


        • #5
          aha jetzt kapier ichs danke für die hilf

          Comment


          • #6
            ne ich kapiers immer noch nicht ganz... ich hab jetzt folgendes gemacht... die var S: TStringList; wir am anfang zugewiesen...

            procedure TForm1.Button1Click(Sender: TObject);
            function LineCount(const Filename: String);
            begin
            S := TStringList.Create;
            try
            S.LoadFromFile(FileName);
            Result := S.Count;
            finally
            S.Free;
            end;
            end;
            label6.caption:=inttostr(LineCount(settings.edit1. text));
            label7.caption:=inttostr(LineCount(settings.edit2. text));
            label8.caption:=inttostr(LineCount(settings.edit3. text));
            label9.caption:=inttostr(LineCount(settings.edit4. text));
            label10.caption:=inttostr(LineCount(settings.edit5 .text));
            end;

            damit soll es eigentlich gehen, aber wenn ich es testen will kommt in der leiste unten die nachricht und der cursor blinkt hinter function LineCount(const Filename: String); -> [Fehler] Unit1.pas(67): Funktion benötigt Ergebnisty

            Comment


            • #7
              Ja, Hagen hat nen kleinen Fehler gemacht. Die Deklaration muß heißen:<br>
              function LineCount(const Filename: String):integer

              Comment


              • #8
                procedure TForm1.Button1Click(Sender: TObject);
                var
                S: TStringList;
                function LineCount(const Filename: String):integer;
                begin
                S := TStringList.Create;
                try
                S.LoadFromFile(FileName);
                Result := S.Count;
                label6.caption:=inttostr(LineCount(settings.edit1. text));
                label7.caption:=inttostr(LineCount(settings.edit2. text));
                label8.caption:=inttostr(LineCount(settings.edit3. text));
                label9.caption:=inttostr(LineCount(settings.edit4. text));
                label10.caption:=inttostr(LineCount(settings.edit5 .text));
                finally
                S.Free;
                end;
                end;

                was stimmt da nicht ?

                Comment


                • #9
                  Machs so:<br>
                  <pre>
                  procedure TMainform.Button1Click(Sender: TObject);
                  var S: TStringList;
                  function LineCount(const Filename: String):integer;
                  begin S := TStringList.Create;
                  try S.LoadFromFile(FileName);
                  Result := S.Count;
                  except
                  on exception do;
                  end;
                  end;
                  begin
                  caption:=inttostr(LineCount('c:\autoexec.bat'));
                  end;

                  </pre&gt

                  Comment

                  Working...
                  X