Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auslesen wie viele Einträge ne Txt-Datei hat (Tfilestream) (https://www.delphipraxis.net/42857-auslesen-wie-viele-eintraege-ne-txt-datei-hat-tfilestream.html)

Delphi-Noobie 24. Mär 2005 19:32


Auslesen wie viele Einträge ne Txt-Datei hat (Tfilestream)
 
hi,

kann man mit irgend ein Befehl auslesen, wieviel Einträge in einer Textdatei sind?
so Speicher ich sie aus einem Array:
Delphi-Quellcode:
type
  TMyArray = array of String;
const
  IDENT_TMYARRAY = 'TMyArray';
  BUF_SIZE = 4096;

procedure SaveToFile(const MyArray: TMyArray; const FileName: String); //filename irgendwas mit txt
var
  Stream: TFileStream;
  Writer: TWriter;
  I: Integer;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  try
    Writer := TWriter.Create(Stream, BUF_SIZE);
    try
      Writer.WriteSignature;
      Writer.WriteIdent(IDENT_TMYARRAY);
      for I := 0 to 45 do                     // sind 46 einträge im Array
        Writer.WriteString(MyArray[I]);
    finally
      Writer.Free;
    end;
  finally
    Stream.Free;
  end;
end;
jetzt sieht man in der txt-Datrei die einträge. Aber wie kann ich auslesen, wie viele es sind, dass also als result 46 raus kommt?

BlueStarHH 28. Mär 2005 17:14

Re: Auslesen wie viele Einträge ne Txt-Datei hat (Tfilestrea
 
Am einfachsten ist es, wenn Du zunächst die Anzahl der Einträge in die Textdatei schreibst und dann die Einträge selbst. Beim einlesen zuerst dann die Zahl auslesen und dann x mal die Einträge.

gsh 28. Mär 2005 17:34

Re: Auslesen wie viele Einträge ne Txt-Datei hat (Tfilestrea
 
oder du machst eine schleife und wenn die Datei fertig ist unterbrichst du die Schleife.

Aber wenn du eine TXT mit "normalen" Zeichen speichern und laden willst dann benütz doch einfach bei einer TStringList ".savetofile('');" und ".loadfromfile('');" da köntest du auch mit count die Zeilen abfragen.

bigg 28. Mär 2005 17:46

Re: Auslesen wie viele Einträge ne Txt-Datei hat (Tfilestrea
 
Leg dir einen Puffer an, füll ihn und prüfe jedes Zeichen darin.
Ist es eine #13 und eine #10, dann erhöhst du deinen Zähler immer um eins.

Ein Windows-Zeilenumbruch sieht so aus: #13#10.
Unter Unix (#10) bzw. Mac (#13) gibt es nur jeweils ein Zeichen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz