Einzelnen Beitrag anzeigen

xy124

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

Re: Ich versteh den Blockreadbefehl nicht :(

  Alt 12. Feb 2008, 14:47
ich will beides! den blockread-Befehl find ich interessant, weil ich z.B. noch nie mit buffern gearbeitet habe und ich möchte auch ein programm schreiben, was eine delphi unit erstellt, indem es eine Datei mit blockread einliest und dann in der Unit eine prozedur erstellt die das ganze eingelesene dann wieder speichert(blockwrite)! so kann man komfortabel irgentwelche dateien mit compilieren! und bei bedarf extrahieren

also danke für eure Hilfe

der befehl gibt dann also z.B. bei einer Textdatei in dem Array die zahlen für die Zeichen aus, vom anfang bis zum z.B. 101. zeichen!

um zur problematik mit der dateilänge zu kommen - da wäre dann wohl sowas angebracht:

Delphi-Quellcode:
var i: Integer;
    wert: Array[0..1000] of Byte;
    weiter: Boolean;
    f: file;
begin
  i := 0;
  AssignFile(f,'mmm.lol'); //öffnen der datei wenn ich das richtig verstehe!

  Reset(f,1); //das macht die datei wahrscheinlich zum lesen fertig, oder?

  weiter := true;
  while weiter = true do
    begin
      i := i + 1;
      try
        Blockread(f, wert,i); // da überschreibt er dann immer wieder biss es nicht mehr geht
        memo1.Lines.Add(inttostr(wert[i]));
      except
        weiter := false;
      end;
    end;
  CloseFile(f);
  form1.Caption := inttostr(i)
end;
in meiner datei steht folgendes:

sdm, v hkblsd n.sdn uübse l-.we
w3.menp weö
erö wei wq r

aber im Memo geht es nur bis zeile 11 (eigentlich nur bis 10 aber der macht noch nen Absatz) es sind doch aber vielmehr zeichen!
^^Warum liest er nur 11 bytes?
im Memo steht folgendes:
113
32
114
246
32
119
101
105
32
4



mal ganz abgesehen davon, das er über das dateiende hinaus liest!(diese Fehlermeldung ist mir erstmal egal)

ich hab's noch mal probiert mit der Textdatei in der nur "Hallo" steht

im memo sind nur 2 (nicht 4) Zeilen:
72
97

^^das sieht ja schon nach dem Zeichen code aus! aber warum sind das nur die ersten 2 Zeichen?
o o
LJ
TTT
  Mit Zitat antworten Zitat