Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   untypisierte dateien (https://www.delphipraxis.net/150104-untypisierte-dateien.html)

khh 9. Apr 2010 08:38

Re: untypisierte dateien
 
Zitat:

Zitat von Klaus01
Guten Morgen,

der "Lesezeiger, bzw. Leseposition" ändert sich nach jedem Lesevorgang.
Liest Du jeweils immer einen Datensatz ein steht der Lesezeiger auf dem nächsten Byte hinter dem
Datensatz. Liest Du einen weiteren Datensatz fängt der Lesevorgang an der Position an wo der Lesezeiger
hinzeigt.

Die Anzahl der Datensätze erhälst Du so: Stream.size div Datensatzgröße.

Grüße
Klaus

hallo Klaus, heisst ich lese die komplette Datei einfach 544 mal?

Klaus01 9. Apr 2010 08:41

Re: untypisierte dateien
 
Zitat:

Zitat von khh
Zitat:

Zitat von Klaus01
Guten Morgen,

der "Lesezeiger, bzw. Leseposition" ändert sich nach jedem Lesevorgang.
Liest Du jeweils immer einen Datensatz ein steht der Lesezeiger auf dem nächsten Byte hinter dem
Datensatz. Liest Du einen weiteren Datensatz fängt der Lesevorgang an der Position an wo der Lesezeiger
hinzeigt.

Die Anzahl der Datensätze erhälst Du so: Stream.size div Datensatzgröße.

Grüße
Klaus

hallo Klaus, heisst ich lese die komplette Datei einfach 544 mal?

Nein, Du liest die Datei einmal in den FileStream ein.
In diesem Stream kannst Du dann 544 mal lesen bis Du zum Streamende ankommst.

Grüße
Klaus

khh 9. Apr 2010 08:50

Re: untypisierte dateien
 
Zitat:

Zitat von Klaus01
Zitat:

Zitat von khh
Zitat:

Zitat von Klaus01
Guten Morgen,

der "Lesezeiger, bzw. Leseposition" ändert sich nach jedem Lesevorgang.
Liest Du jeweils immer einen Datensatz ein steht der Lesezeiger auf dem nächsten Byte hinter dem
Datensatz. Liest Du einen weiteren Datensatz fängt der Lesevorgang an der Position an wo der Lesezeiger
hinzeigt.

Die Anzahl der Datensätze erhälst Du so: Stream.size div Datensatzgröße.

Grüße
Klaus

hallo Klaus, heisst ich lese die komplette Datei einfach 544 mal?

Nein, Du liest die Datei einmal in den FileStream ein.
In diesem Stream kannst Du dann 544 mal lesen bis Du zum Streamende ankommst.

Grüße
Klaus

ja so hab ichs gemeint, hab mich falsch ausgedrückt ;-)

p80286 9. Apr 2010 09:08

Re: untypisierte dateien
 
Du machst eseinfach so:
Delphi-Quellcode:
....

repeat
  gelesen:=fs.read(buffer,sizeof(buffer));
  if gelesen:=sizeof(buffer) then begin    { nur vollständig gefüllte Sätze verarbeiten }
    { Daten verarbeiten }
    test1:= myrecord.artnr ;
    test2:= myrecord.name ;
    test3:= myrecord.name2 ;
    test4:= myrecord.preis ;
  end;
until gelesen<sizeof(buffer);              { wenn nicht mehr genügend Daten gelesen werden ist schluß!}

...
Der Test von gelesen ist wichtig, da es keine Fehlermeldung bei Dateiende,fehlender zugriffsbereichtigung etc. gibt!

Gruß
K-H

khh 9. Apr 2010 09:41

Re: untypisierte dateien
 
ich danke euch
EDIT : auch das oemtochar zeigt Wirkung, sprich Umlaute funktionieren.
War tatsächlich das fehlende SetLength.


Gruss KH


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr.
Seite 4 von 4   « Erste     234   

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