Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriffsverletzung oder "Versuch ..[GELÖST SORRY] (https://www.delphipraxis.net/110493-zugriffsverletzung-oder-versuch-%5Bgeloest-sorry%5D.html)

Ebil 18. Mär 2008 23:15


Zugriffsverletzung oder "Versuch ..[GELÖST SORRY]
 
Ich arbeite grade mit typisierten dateien und hab da ein problem in dem code:( hoffe ich ma, debugger zeigt nix genaues an, sollte aber schon an der stelle hapern)
Delphi-Quellcode:
i := -1;
while not eof(datei) do
begin
inc(i);
seek(datei, i);
read(datei, datensatz);
lboutput......
Ich will einfach das am ende der datei etwas geschrieben wird, bei 0 soll angefangen werden zu gucken ob dort das ende ist, dann soll jeder datensatz in eine listbox ausgegeben werden.
Aber ich bekomme immer ( je nachdem was ich an "i" mach, die fehlermeldung zugriffsverletzung, oder halt das ich versuche das ende der datei zu lesen, habs auch schon mit seek(datei, i-1); versucht klappt aber leider nicht... fragt mich nich wieso.
Hoffe ein paar kluge köpfe unter euch können mir helfen :wall:

Ebil

€//: Edit oh gott kaum schreib ich hier nach stundenlangem rumprobieren rein, funktioniert es.
Die datei auf die ich zugreife hatte noch daten aus der alten version drin, die es nichtmehr lesen konnte.

dominikkv 18. Mär 2008 23:32

Re: Zugriffsverletzung oder "Versuch ..[GELÖST SORRY]
 
das seek kannst du weglassen, damit auch i

Ebil 18. Mär 2008 23:49

Re: Zugriffsverletzung oder "Versuch ..[GELÖST SORRY]
 
Ja und wie komme ich dann ans ende der datei?
Kann doch nich die ganze while schleife weglassen.

kcx 18. Mär 2008 23:56

Re: Zugriffsverletzung oder "Versuch ..[GELÖST SORRY]
 
Zitat:

Zitat von Ebil
Ja und wie komme ich dann ans ende der datei?

Evtl. so:
Delphi-Quellcode:
seek(datei, filesize(datei));

Dax 19. Mär 2008 00:03

Re: Zugriffsverletzung oder "Versuch ..[GELÖST SORRY]
 
Read() versetzt den I/O-Zeiger automatisch, du musst nur seek()en, wenn du Datensätze überspringen oder nochmals bearbeiten willst.

dominikkv 19. Mär 2008 13:21

Re: Zugriffsverletzung oder "Versuch ..[GELÖST SORRY]
 
Zitat:

Zitat von Ebil
Ja und wie komme ich dann ans ende der datei?
Kann doch nich die ganze while schleife weglassen.

nö, die while-schleife bleibt:
Delphi-Quellcode:
while not eof(datei) do
  begin
    read(datei, datensatz);
    lboutput.....
dabei springt er mit dem read immer automatisch zum nächsten Datensatz.


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