Autor Beitrag
ZUIO48
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 12.08.02 19:42 
Hallo zusammen,
was ist hier falsch? Ich kriege immer einen E/A-Fehler 87:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button1Click(Sender: TObject);
var fts: string;
    datei: file;
    buf: array of byte;
    read: integer;
begin
 OpenDialog1.Execute;
 if OpenDialog1.Filename <> '' then begin
 fts := OpenDialog1.Filename;
 try
  assignfile(datei, fts);
  reset(datei, 1);
  SetLength(buf, FileSize(Datei));
  blockread(datei, buf, filesize(datei), read);
 finally
  CloseFile(datei);
 end;
 end;
end;

Vielen Dank
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Mo 12.08.02 21:53 
Hi
Ich habe mir das mal angesehen. :?
Mit diesem Quellcode bekomme ich zwar Deinen E/A-Fehler 87 nicht mehr aber dafür eine EAccessViolation.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button1Click(Sender: TObject);
var fts: string;
     datei: file;
     buf: array of byte;
     read: integer;
begin
 if OpenDialog1.Execute then
  begin
   try
    fts := OpenDialog1.Filename;
    assignfile(datei, fts);
    reset(datei, 1);
    SetLength(buf, FileSize(Datei));
    blockread(datei, buf, sizeof(buf), read);
   finally
    CloseFile(datei);
   end;
  end;
end;

Wie du sehen kannst habe ich in der Zeile blockread(datei, buf, sizeof(buf), read); aus den filesize(datei) eine sizeof(buf) gemacht.
So steht es nämlich im Beispiel zur Hilfe von Blockread. Warum das so ist k.A.
Vieleicht läuft es ja jetzt bei Dir.
:?

cu Patmann
ZUIO48 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 14.08.02 10:39 
Hey, vielen Dank,
bei mir klappt's wunderbar!