![]() |
Re: Ich versteh den Blockreadbefehl nicht :(
Moin, Moin,
mir scheint, dass da einiges wirre durcheinandergewürfelt wird. Mit
Delphi-Quellcode:
öffnest du die Datei und bestimmst eine Blockgröße von EINEM Byte.
Reset(f,1)
Infolge deiner Inkrementierung von i liest du in den Schleifen eine variable Menge von Bytes: Im ersten Durchgang 1x1=1 Byte im zweiten Durchlauf 2x1=2 Byte, im Dritten 3x1=3 Byte ... so kommt es dann dazu, dass versucht wird, über das Dateiende hinaus zu lesen... Schau dir doch mal genauer die Befehlssyntax an :roll: |
Re: Ich versteh den Blockreadbefehl nicht :(
@em-sigma: cool damit gibt er bei der Hallo datei dashier aus:
3 0 0 0 37 0 0 0 2 0 0 0 14 0 0 0 0 0 0 1 84 246 70 1 60 44 56 126 das sieht schon besser aus ;) @taaktaak Wie soll ich das anders machen ? vieleicht so?:
Delphi-Quellcode:
dann kommt dasselbe wie vorher(mit "i")
Blockread(f, wert, 1);
so und jetzt hab ich's ohne while gemacht <- das scheint das beste zu sein (auch wenn noch nen paar bytes mit 0 sind das muss wohl so sein!) ^^und es kommt keine Fehlermeldun ;) suuper! Also nochmal zum mitschreiben:
Delphi-Quellcode:
var i: Integer;
wert: Array[1..1000] of Byte; f: file; begin AssignFile(f,'mmm.lol'); //öffnen der datei wenn ich das richtig verstehe! Reset(f,1); //das macht die datei wahrscheinlich zum lesen fertig, oder? while weiter = true do Blockread(f, wert, 1); CloseFile(f); for i:=low(wert) to high(wert) do memo1.lines.add(IntToStr(wert[i])); form1.Caption := inttostr(i);//so lang ist di datei! end; |
Re: Ich versteh den Blockreadbefehl nicht :(
Blockread hat ja noch einen 4ten Parameter, der gibt die Zahl der tatsächlich gelesenen Bytes an. Üblicherweise bricht man die Schleife dann ab, wenn der IstWert (4ter Parameter) vom SollWert (3ter Parameter) abweicht - das bedeutet dann nämlich, dass er mehr lesen sollte als noch gelesen werden konnten.
Den Befehl eof() habe ich noch nie im Zusammenhang mit BlockRead gesehen?! Ich habe noch nicht so recht begriffen, was du letztlich mit deinem Code erreichen willst. Vermutlich gibt es aber, wie schon von anderen erwähnt wurde, bessere Möglichkeiten die Daten einzulesen. |
Re: Ich versteh den Blockreadbefehl nicht :(
ich find es trotzdem spannend mal die einzelnen Bytes einer Textdatei zu erforschen ;)
|
Re: Ich versteh den Blockreadbefehl nicht :(
Ok, nichts gegen einzuwenden
- aber da bietet sich vielleicht eher ein HEX-Editor an :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 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