AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ich versteh den Blockreadbefehl nicht :(
Thema durchsuchen
Ansicht
Themen-Optionen

Ich versteh den Blockreadbefehl nicht :(

Ein Thema von xy124 · begonnen am 12. Feb 2008 · letzter Beitrag vom 12. Feb 2008
Antwort Antwort
Seite 2 von 2     12   
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#11

Re: Ich versteh den Blockreadbefehl nicht :(

  Alt 12. Feb 2008, 14:05
Moin, Moin,

mir scheint, dass da einiges wirre durcheinandergewürfelt wird. Mit

Reset(f,1) öffnest du die Datei und bestimmst eine Blockgröße von EINEM Byte.

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
Ralph
  Mit Zitat antworten Zitat
xy124

Registriert seit: 3. Dez 2007
146 Beiträge
 
Delphi 7 Personal
 
#12

Re: Ich versteh den Blockreadbefehl nicht :(

  Alt 12. Feb 2008, 14:19
@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?:
Blockread(f, wert, 1); dann kommt dasselbe wie vorher(mit "i")

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;
o o
LJ
TTT
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#13

Re: Ich versteh den Blockreadbefehl nicht :(

  Alt 12. Feb 2008, 14:25
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.
Ralph
  Mit Zitat antworten Zitat
xy124

Registriert seit: 3. Dez 2007
146 Beiträge
 
Delphi 7 Personal
 
#14

Re: Ich versteh den Blockreadbefehl nicht :(

  Alt 12. Feb 2008, 14:27
ich find es trotzdem spannend mal die einzelnen Bytes einer Textdatei zu erforschen
o o
LJ
TTT
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#15

Re: Ich versteh den Blockreadbefehl nicht :(

  Alt 12. Feb 2008, 14:30
Ok, nichts gegen einzuwenden
- aber da bietet sich vielleicht eher ein HEX-Editor an
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:47 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