Avatar billede winkill Nybegynder
01. november 1999 - 21:46 Der er 4 kommentarer og
2 løsninger

Binær read/write til fil.

Jeg prøver at oprette en fil, skrive binært til den og derefter indlæse den igen... Er der en der vil sende et kort eksempel (source) på hvordan dette gøres ?

Jeg bruger Delphi 5.0.
Avatar billede erikjacobsen Ekspert
01. november 1999 - 23:18 #1
Hvad vil du skrive på den?
Avatar billede winkill Nybegynder
01. november 1999 - 23:43 #2
Tjaaa... først vil jeg skrive headeren, så vil jeg skrive en sub-header og dumpe en masse data, og så vil jeg slutte af med en EOF af en slags, men kort sagt så vil jeg dumpe heximal værdier og binære værdier. Eks.: 1001010 og FA37C9
Avatar billede snorga Nybegynder
01. november 1999 - 23:46 #3
Værsgo, her er et eksempel:
--
procedure TForm1.Button1Click(Sender: TObject);
var
  f:file;
  b:byte;
  buf:array[0..9]of byte;
  i:integer;
begin
  showmessage(IntToStr(Sizeof(Buf)));exit;
  //Skriver ud
  assignfile(f,'filename.ext');
  rewrite(f,1); //Filen bliver slettet hvis den findes!!
  BlockWrite(f,b,sizeOf(b));
  BlockWrite(f,buf,Sizeof(Buf));
  BlockWrite(f,i,SizeOf(i));
  CloseFile(f);
  //læser ind
  assignfile(f,'filename.ext');
  reset(f,1); //Filen SKAL værer oprettet!!!!
  Blockread(f,b,sizeOf(b));
  Blockread(f,buf,Sizeof(Buf));
  Blockread(f,i,SizeOf(i));
  CloseFile(f);
end;
Avatar billede erikjacobsen Ekspert
01. november 1999 - 23:47 #4
Tjah, noget i retning af:

var
  f: file;


  assignfile(f,'hvaddetnuerdinfilskalhedde.extension');
  rewrite(f,1);

....fyld en header i et array eller record...

  blockwrite(f,buffer,sizeofbuffer,antalskrevet);
  if sizeofbuffer<>antalskrevet then
      ...fejl, måske disken fuld.

osv.

Ved læsning:

  blockread(f,buffer,maxsize,antallæst);


Du skal naturligvis kunne skelne mellem header og data, enten
pga. en fast størrelse, eller særligt indhold.
Avatar billede winkill Nybegynder
01. november 1999 - 23:58 #5
Tak for jeres svar, jeg har accepteret dem begge, og vil afprøve det så snart jeg har fået noget at spise.... :)
Avatar billede lrj Nybegynder
02. november 1999 - 11:34 #6
Hov hov, kan I begge to (snorga og erikjacobsen) lige lade være med at være online så meget :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester