Einzelnen Beitrag anzeigen

shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#1

bestimmten Bereich einer Textdatei auslesen

  Alt 9. Apr 2006, 18:51
Hallo zusammen,
ich möchte einen bestimmten Bereich (bestimmte Anzahl Zeilen) einer Textdatei in eine StringList einlesen. Ich habe zur verfügung:
Fall 1:
- den Anfang des Bereiches in Bytes
- das Ende des Bereiches in Bytes
- die Länge des Bereiches in Bytes

so wie

Fall 2:
- den Anfang des Bereiches als Zeilennummer
- das Ende des Bereiches als Zeilennummer
- die Länge des Bereiches in Bytes (hier nicht unbedingt nötig vermutlich)


Im Fall 1 müsste man es mit BlockRead machen laut meiner Recherchen, allerdings bekomme ich das nicht hin. Ich bekomme beim Aufruf von BlockRead die Fehlermeldung "E/A-Fehler 998." (Unzulässiger Zugriff auf einen Speicherbereich).

hier der Code:

Delphi-Quellcode:
var
   f: file;
   aktMail: TStringList;
begin
   aktMail := TStringList.Create;
   
   try
      AssignFile(f, <meine Datei>);
      Reset(f,1);
      Seek(f, <der Anfang in Bytes>);
      BlockRead(f, aktMail, <zu lesende Länge>);
    ...
    ...
   finally
      FreeAndNil(aktMail);
   end;
end;
Es gibt viele Fälle im Netz, wo das Thema behandelt wird, aber ich bin daraus leider nicht schlau geworden.
Ist dieser Weg zur Lösung meines Problems überhaupt zu gebrauchen? Wenn ja, würde ich gerne wissen wie das geht.


Im zweiten Fall könnte ich einfach mir ReadLn den Bereich zwischen der Anfangs- und Endzeile einlesen, nur weiß ich nicht, wie ich in der Textdatei zu einer bestimmten Zeile (Anfangszeile) "springen" kann. Seek funktioniert in dem Fall nicht, wenn ich mich nicht irre.

Wie bekomme ich also am besten einen bestimmten Bereich einer Textdatei in eine StringList eingelesen?

Gruß,
shadow
  Mit Zitat antworten Zitat