Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datei teilweise lesen (https://www.delphipraxis.net/132131-datei-teilweise-lesen.html)

klebe7 6. Apr 2009 19:09


Datei teilweise lesen
 
Hallo :hi:

Ich brauche eine Funktion, die eine Datei teilweise ließt, also den Text von einer bestimmten Zeile bis zur einer bestimmten Zeile.
So weit bin ich bisher, aber komme nicht so richtig weiter:
Delphi-Quellcode:
function ReadPart(const AFile: string; AFromLine, AToLine: Integer;
  var APart: string): Boolean;
begin
  Result := True;
  try
    with TFileStream.Create(AFile, fmOpenRead or fmShareDenyNone) do
      try
       
      finally
        Free;
      end;
  except
    Result := False;
  end;
end;
Ich hoffe auf ein paar Tips, wie man das am besten und am schnellsten lösen kann. :)

Achja und die Funktion sollte möglichst speicherschonend arbeiten, also die Datei z.B komplett in eine StringListe o.Ä zu laden geht nicht.

mkinzler 6. Apr 2009 19:11

Re: Datei teilweise lesen
 
Einfache Schleife von 1 bis Startzeile -1 und Zeilen lesen und verwerfen

DeddyH 6. Apr 2009 19:13

Re: Datei teilweise lesen
 
Richtig, schön altmodisch mit ReadLn.

klebe7 6. Apr 2009 19:23

Re: Datei teilweise lesen
 
Zitat:

Zitat von DeddyH
Richtig, schön altmodisch mit ReadLn.

Das habe ich mal so gemacht:
Delphi-Quellcode:
function ReadPart(const AFile: string; AFromLine, AToLine: Integer;
  var APart: string): Boolean;
var
  F: TextFile;
  I: Integer;
  S: string;
begin
  AssignFile(F, AFile);
  try
    Reset(F);
    try
      I := 0;
      APart := '';
      while (I <= AToLine) and not EOF(F) do
      begin
        ReadLn(F, S);
        if I >= AFromLine then
          APart := APart + S + sLineBreak;
        Inc(I);
      end;
    finally
      CloseFile(F);
    end;
  except
    Result := False;
  end;
end;
aber das ist mir bei größeren Daten einfach zu langsam.
Mit FileStream müsste es doch auch schneller gehen, oder?

mkinzler 6. Apr 2009 19:24

Re: Datei teilweise lesen
 
Versuch es doch aus.

himitsu 6. Apr 2009 19:24

Re: Datei teilweise lesen
 
Hier im Forum suchenTPartialTextfile :angel2:

klebe7 6. Apr 2009 19:31

Re: Datei teilweise lesen
 
Zitat:

Zitat von himitsu

Danke, ich probiere es damit mal aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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