AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei teilweise lesen

Offene Frage von "klebe7"
Ein Thema von klebe7 · begonnen am 6. Apr 2009 · letzter Beitrag vom 6. Apr 2009
Antwort Antwort
klebe7

Registriert seit: 2. Okt 2008
19 Beiträge
 
#1

Datei teilweise lesen

  Alt 6. Apr 2009, 19:09
Hallo

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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datei teilweise lesen

  Alt 6. Apr 2009, 19:11
Einfache Schleife von 1 bis Startzeile -1 und Zeilen lesen und verwerfen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Datei teilweise lesen

  Alt 6. Apr 2009, 19:13
Richtig, schön altmodisch mit ReadLn.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
klebe7

Registriert seit: 2. Okt 2008
19 Beiträge
 
#4

Re: Datei teilweise lesen

  Alt 6. Apr 2009, 19:23
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datei teilweise lesen

  Alt 6. Apr 2009, 19:24
Versuch es doch aus.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#6

Re: Datei teilweise lesen

  Alt 6. Apr 2009, 19:24
Hier im Forum suchenTPartialTextfile
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
klebe7

Registriert seit: 2. Okt 2008
19 Beiträge
 
#7

Re: Datei teilweise lesen

  Alt 6. Apr 2009, 19:31
Zitat von himitsu:
Danke, ich probiere es damit mal aus.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 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