down votefavorite 
<http://stackoverflow.com/questions/43336683/how-to-store-binary-file-data-in-structure#>

Hi all,

I have a file shown below(Material.dat) which is binary file , I want to 
read data from the file and put in the structure(Header) for that I have 
used GetRecord() function.

HANDLE hFileMac = ::CreateFile(_T("Material.dat"), GENERIC_READ, 
FILE_SHARE_READ, NULL,
  OPEN_EXISTING, FALSE ? FILE_FLAG_SEQUENTIAL_SCAN : FILE_ATTRIBUTE_NORMAL, 
NULL);

 if (!(hFileMac != INVALID_HANDLE_VALUE))
 {
  return;
 }

 GetRecord(hFileMac, RECORD_NUMBER, sizeof(Header), reinterpret_cast<void 
*>(&Header));

My doubt is what to pass as a record number to Get Record() function?

GetRecord(hFileMac, RECORD_NUMBER, sizeof(Header), 
reinterpret_cast(&Header));

int GetRecord(HANDLE hFile, int RecordNumber, int RecordSize, void *RecordPtr){
 if (RecordNumber <= 0 || RecordSize <= 0)
  return 1;
 LONG lOffset = (RecordNumber - 1) * RecordSize;

 if (SetFilePointer(hFile, lOffset, NULL, FILE_BEGIN) == 0xFFFFFFFF)
  return 2;

 DWORD dwSize;

 if (::ReadFile(hFile, RecordPtr, RecordSize, &dwSize, NULL) == 0)
  return 3;

 return 0;}

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to