Avatar billede casperwollesen Nybegynder
29. marts 2001 - 14:07 Der er 5 kommentarer og
1 løsning

Læsning af filer.

Hej !

Jeg har arbejdet i stykke tid med at ændre i tekst filer osv med borland c++ builder. Jeg ønsker nu at indlæse de eks. første fire hex værdier af en fil, er der nogen der ved hvordan man gør det ?

Tak.

Casper W.
Avatar billede mfc Nybegynder
29. marts 2001 - 14:25 #1
#include <stdio.h>
#include <stdlib.h>

void main( void )
{
  FILE *stream;
  char buffer[81];
  int  i, ch;

  /* Open file to read line from: */
  if( (stream = fopen( \"fgetc.c\", \"r\" )) == NULL )
      exit( 0 );

  /* Read in first 80 characters and place them in \"buffer\": */
  ch = fgetc( stream );
  for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
  {
      buffer[i] = (char)ch;
      ch = fgetc( stream );
  }

  /* Add null to end string */
  buffer[i] = \'\\0\';
  printf( \"%s\\n\", buffer );
  fclose( stream );
}
Avatar billede casperwollesen Nybegynder
29. marts 2001 - 14:35 #2
Det er ikke fordi der er forkert, men det er exe filer jeg ønsker at læse ud fra, og det hvad man læser ud fra dit kode er det ikke acsii tegn, eller jeg helt på den ? ?
Avatar billede mfc Nybegynder
29. marts 2001 - 14:44 #3
#include <stdio.h>
#include <stdlib.h>

void main( void )
{
  FILE *stream;

  int  i, ch;

 
  if( (stream = fopen( \"c:\\\\w.exe\", \"r\" )) == NULL )
      exit( 0 );

 
  ch = fgetc( stream );
  for( i=0; (i < 3 ) && ( feof( stream ) == 0 ); i++ )
  {
   
      printf(\"%x\",ch);
   
  }

 
  fclose( stream );
}
Avatar billede casperwollesen Nybegynder
29. marts 2001 - 14:53 #4
Jeg er lige blevet forstyret med noget andet noget. Håber det ok, at jeg lige lade spørgsmålet stå åbent lidt. Men det er rigtig nok det du kom med her til sidst, eller delvist. Det kan også godt være at det er mig der har formuleret mig lidt forkert.

Casper
Avatar billede mfc Nybegynder
29. marts 2001 - 15:12 #5



#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>

void main( void )
{
  int  fh2;

  long pos;

  fh2 = _open( \"c:\\\\w.exe\",_O_BINARY, _S_IREAD |  _S_IWRITE );
  if( fh2 == -1 )
      perror( \"Open failed on output file\" );
  else
  {
      printf( \"Open succeeded on output file\\n\" );
   
  }


  int buffer[3];

 

  /* Seek the beginning of the file: */
  pos = _lseek( fh2, 0L, SEEK_SET );
  if( pos == -1L )
      perror( \"_lseek to beginning failed\" );
  else
      printf( \"Position for beginning of file seek = %ld\\n\", pos );

 
    _read( fh2, buffer, 4 );
        printf(\"%x\",buffer);
    //_write( fh2, buffer, sizeof( buffer ))) ;
    _close( fh2 );

}



Avatar billede casperwollesen Nybegynder
29. marts 2001 - 15:29 #6
Det sidste der, det var lige det jeg manglede. Jeg siger mange tusind tak for din indsats.

Takker og bukker :p

Casper W.
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