Hi there,

I'm trying to read data from a dbase III file, and copy it to a newly created dbase III file.

I've got everything working, I am able to read all the data from the dbf file (such as version #, # of records, length of header...., descriptors...), but I'm facing a problem with reading the data from the actual records...

This is where I think the problem is originating from:

Code:
for(i=0; i < header.number_of_records; i++)
{
   fread( &ch, 1, sizeof(ch), infile);  // this 
   fwrite( &ch, 1, sizeof(ch), outfile);
   
if(ch == 0x20) /* the current record is valid (i.e, it is not deleted, there is no '*' before it) */
     printf("\n\nRecord is valid\n");
if(ch == '*')
     printf("\n\nRecord is deleted\n");     

for(j=0;j<num_fields;j++)
     {
           fread ( buffer,d[j].field_length,1, infile );
           fwrite ( buffer,d[j].field_length,1, outfile );
           printf("%s ",buffer);    
     }
     //printf("\n");         
}
i think the problem is with buffer (which is a char *)...maybe initialization issue....

This is what I'm getting:

It's giving me the value of the 1st field in the dbf file (there are two fields) + the path of where the program is actually running from....




Any ideas?