AGB  ·  Datenschutz  ·  Impressum  







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

Versuch hinter dem Dateiende zu lesen

Ein Thema von TheMiller · begonnen am 4. Nov 2004 · letzter Beitrag vom 15. Jun 2012
 
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#10

AW: Versuch hinter dem Dateiende zu lesen

  Alt 13. Jun 2012, 14:09
Ich glaube da ist selbst FileSize() in Verbindung mit der For-Schleife nicht optimal (außer wenn [in seinem Fall] data nur 1 Byte groß ist)

per EOF(Datei) kannst du gucken, ob das Ende erreicht wurde. Da man die Anzahl der Lesebefehle nicht kennt, verwendet man nicht die inidizerte Schleife (for i) sondern eine
"einfachere". Falls die Datei (IMMER) aus mindestens einem Datensatz besteht, so kann man dies mit der repeat until Schleife machen.
Ansonsten nimmt man die While Do Schleife

Beispielcodefetzen:

Delphi-Quellcode:
  AssignFile(MeineDatei, DateiName);
  {$I-}
  Reset(MeineDatei);
  {$I+}
  if IOResult <> NO_ERROR then // Datei existiert nicht, neu anlegen // NO_ERROR = 0
    ReWrite(MeineDatei);

  while not EOF(MeineDatei) do
  begin
    Read(MeineDatei, DatenSatz);
    FügeDatenSatzInZbListe(DatenSatz);
  end;
Im obrigen Beispiel ist die Position vom FilePointer auf 0 (beim Öffnen einer Datei immer 0); falls die Datei jedoch offen war und Dateioperationen durchgeführt wurden, muss dies nicht der Fall sein, deshalb eignet sich ein Seek(MeineDatei, 0) eventuell.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
 


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 11:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz