[Delphi] - opening a file (blockread)

Pagina: 1
Acties:

  • MisterE
  • Registratie: April 2002
  • Laatst online: 28-08 19:15
ik probeer een file te openen, maar hij geeft regelmatig dan een error op regel 'BlockRead...'
Waarschijnlijk doe ik iets fout??


type
TRomHeader = record
RomType : array[1..3] of char;
Ctrl,
PRGROM,
CHRRAM,
ROMctrl1,
ROMctrl2 : char;
Expansion : array[0..7] of char;
end;


procedure TfrmNES.Button1Click(Sender: TObject);
var
F : File;
i : Integer;
RomHeader : TRomHeader;
begin
AssignFile(F, OpenDialog1.FileName);

if OpenDialog1.Execute then
begin

Reset(F, 1);


BlockRead(F, ROMHeader, SizeOf(ROMHeader), i);

edit1.Text := RomHeader.RomType;
edit2.Text := RomHeader.Ctrl;
edit3.Text := RomHeader.PRGROM;
edit4.Text := RomHeader.CHRRAM;
edit5.Text := RomHeader.ROMctrl1;
edit6.Text := RomHeader.ROMctrl2;
edit7.Text := RomHeader.Expansion;

CloseFile(F);

end;
end;

Verwijderd

Wat is precies de foutmelding? (is wel makkelijk om dat er bij te zetten)

  • MisterE
  • Registratie: April 2002
  • Laatst online: 28-08 19:15
I/O errror 6

  • MisterE
  • Registratie: April 2002
  • Laatst online: 28-08 19:15
...en het rare, Winnes- waar de source van is- gebruikt dus dezelfde methode en deze geeft telkens een 'file access denied' error. Moet daar wel ff bij opmerken dat ik die probeer in Delphi 5 en mijn post gaat over delphi 6

Verwijderd

I/O 6 geeft aan dat er een ongeldige file handle is.

Maar het komt omdat je de OpenDialog1.FileName voor de OpenDialog1.Execute hebt staan en dat kan natuurlijk niet.

Dus het moet worden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TfrmNES.Button1Click(Sender: TObject);
var F : File;
    i : Integer;
    RomHeader : TRomHeader;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(F, OpenDialog1.FileName);

    Reset(F, 1);
    BlockRead(F, ROMHeader, SizeOf(ROMHeader), i);

    edit1.Text := RomHeader.RomType;
    edit2.Text := RomHeader.Ctrl;
    edit3.Text := RomHeader.PRGROM;
    edit4.Text := RomHeader.CHRRAM;
    edit5.Text := RomHeader.ROMctrl1;
    edit6.Text := RomHeader.ROMctrl2;
    edit7.Text := RomHeader.Expansion;

    CloseFile(F);
  end;
end;

  • MisterE
  • Registratie: April 2002
  • Laatst online: 28-08 19:15
idd, das wel een stomme fout.....

vreemd, dat je een hele tijd naar een stuk souce kan kijken zonder de fout te vinden :p
Pagina: 1