//FILENAME: VFDatabase.cpp Ln: 266 void CVFDatabase::SetRecord(int index) { VFDBItem *item = all_items[index]; memcpy(record.features, item->features, item->features_size); record.features_length = item->features_size; record.features_status = adFldOK; record.finger_id_length = item->finger_id_length * sizeof(TCHAR); CopyString(record.finger_id, item->finger_id, item->finger_id_length); record.finger_id[item->finger_id_length] = TEXT('\0'); record.finger_id_status = adFldOK; //Write features to file (all in binary mode) //file Structure: //---------------------------------------------------------------- //| | | //| feature length | binary feature | //|________________|______________________________________________| FILE *datafile; datafile = fopen("features.dat","wb"); if(datafile!=NULL) { //write the length of the feature buffer fwrite(&record.features_length,sizeof(record.features_length),1,datafile); //write the feature buffer (Features column in DB) fwrite(record.features,record.features_length,1,datafile); fclose(datafile); } else { MessageBox(0,"Cannot write to file","Error",MB_OK); } //- //Read features from file BYTE in_features[VF_MAX_FEATURES_SIZE]; DWORD in_features_length; datafile = fopen("features.dat","rb"); if(datafile!=NULL) { //first read the feature length fread(&in_features_length, sizeof(in_features_length),1,datafile); //now read the feature into the buffer fread(in_features,VF_MAX_FEATURES_SIZE,1,datafile); fclose(datafile); } /*datafile = fopen("features_in.dat","wb"); if(datafile!=NULL) { fwrite(&in_features_length, sizeof(in_features_length),1,datafile); fwrite(in_features,in_features_length,1,datafile); fclose(datafile); }*/ //- }