📄 msg_header.cpp
字号:
uint pos, len;
long nhi;
unsigned long nReadBytes;
GetHeaderInfo();
pos = m_PrimaryHeader.Total_Header_Length;
len = m_PrimaryHeader.Data_Field_Length;
if(dwBufSize<len)
{
if(data!=NULL) delete data;
data = new unsigned char[len];
if(data!=NULL) dwBufSize = len;
else dwBufSize = 0;
}
if(data!=NULL)
{
hFile = CreateFile(szFileName, GENERIC_READ, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile!=INVALID_HANDLE_VALUE)
{
nReadBytes = 0;
nhi = 0;
SetFilePointer(hFile, pos, &nhi, FILE_BEGIN);
ReadFile(hFile, data, len, &nReadBytes, NULL);
CloseHandle(hFile);
}
hFile=CreateFile(fs,GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile!=INVALID_HANDLE_VALUE)
{
nReadBytes = 0;
nhi = 0;
SetFilePointer(hFile, pos, &nhi, FILE_BEGIN);
WriteFile(hFile, data, len, &nReadBytes, NULL);
CloseHandle(hFile);
}
}
}
*/
//---------------------------------------------------------------------------
void THritFile::SaveHeadStructToFile(char *fs)
{
char *s0[] =
{
"Header_Type = %d\r\n",
"Header_Record_Length = %d\r\n",
"File_Type_Code = %d\r\n",
"Total_Header_Length = %d\r\n",
"Data_Field_Length = %d\r\n"
};
char *s1[] =
{
"Header_Type = %d\r\n",
"Header_Record_Length = %d\r\n",
"NB = %d\r\n",
"NC = %d\r\n",
"NL = %d\r\n",
"Compression_Flag = %d\r\n"
};
char *s2[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"Projection_Name[32] = %s\r\n",
"CFAC = %d\r\n",
"LFAC = %d\r\n",
"COFF = %d\r\n",
"LOFF = %d\r\n"
};
char *s3[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"ImageDataFunction: \r\n%s\r\n"
};
char *s4[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"Annotation: = %s\r\n"
};
char *s5[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"CDS_P_Field = %d\r\n",
"CDS_T_Field_day = %d\r\n",
"CDS_T_Field_ms = %d\r\n"
};
char *s6[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"AncillaryText: \r\n%s\r\n"
};
char *s7[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"Key_Number = %d\r\n",
};
char *s80[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"Image_Segm_Seq_No = %d\r\n",
"Total_No_Image_Segm = %d\r\n",
"Line_No_Image_Segm = %d\r\n"
};
char *s81[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"Station_Number = %d\r\n"
};
char *s82[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"ImageCompensationInfo: \r\n%s\r\n"
};
char *s83[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"stImageObserveTime: \r\n%s\r\n"
};
char *s84[] =
{
"Header_Type = %d\r\n",
"Header_Recrd_Length = %d\r\n",
"ImageQualityInfo: \r\n%s\r\n"
};
char *ss[] =
{
"Primary Header:\r\n\r\n",
"Image Structure:\r\n\r\n",
"Image Navigation:\r\n\r\n",
"Image Data Function:\r\n\r\n",
"Annotation:\r\n\r\n",
"Time Stamp:\r\n\r\n",
"Ancillary Text:\r\n\r\n",
"Key Header:\r\n\r\n",
"Image Segment Identification:\r\n\r\n",
"Encryption key Message Header:\r\n\r\n",
"Image Compensation Information Header:\r\n\r\n",
"Image Observation Time Header:\r\n\r\n",
"Image Quality Information Header:\r\n\r\n"
};
char *s_ = "------------------------------------------------\r\n";
FILE *fp = fopen(fs, "wb");
int i = 0;
if(fp!=NULL)
{
if(m_PrimaryHeader.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s0[0], m_PrimaryHeader.Header_Type);
fprintf(fp, s0[1], m_PrimaryHeader.Header_Record_Length);
fprintf(fp, s0[2], m_PrimaryHeader.File_Type_Code);
fprintf(fp, s0[3], m_PrimaryHeader.Total_Header_Length);
fprintf(fp, s0[4], m_PrimaryHeader.Data_Field_Length);
}
i++;
if(m_ImageStruct.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s1[0], m_ImageStruct.Header_Type);
fprintf(fp, s1[1], m_ImageStruct.Header_Record_Length);
fprintf(fp, s1[2], m_ImageStruct.NB);
fprintf(fp, s1[3], m_ImageStruct.NC);
fprintf(fp, s1[4], m_ImageStruct.NL);
fprintf(fp, s1[5], m_ImageStruct.Compression_Flag);
}
i++;
if(m_ImageNavigation.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s2[0], m_ImageNavigation.Header_Type);
fprintf(fp, s2[1], m_ImageNavigation.Header_Record_Length);
fprintf(fp, s2[2], m_ImageNavigation.Projection_Name);
fprintf(fp, s2[3], m_ImageNavigation.CFAC);
fprintf(fp, s2[4], m_ImageNavigation.LFAC);
fprintf(fp, s2[5], m_ImageNavigation.COFF);
fprintf(fp, s2[6], m_ImageNavigation.LOFF);
}
i++;
if(m_ImageDataFunction.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s3[0], m_ImageDataFunction.Header_Type);
fprintf(fp, s3[1], m_ImageDataFunction.Header_Record_Length);
fprintf(fp, s3[2], m_ImageDataFunction.szText);
}
i++;
if(m_Annotation.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s4[0], m_Annotation.Header_Type);
fprintf(fp, s4[1], m_Annotation.Header_Record_Length);
fprintf(fp, s4[2], m_Annotation.szText);
}
i++;
if(m_TimeStamp.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s5[0], m_TimeStamp.Header_Type);
fprintf(fp, s5[1], m_TimeStamp.Header_Record_Length);
fprintf(fp, s5[2], m_TimeStamp.CDS_P_Field);
fprintf(fp, s5[3], m_TimeStamp.CDS_T_Field_day);
fprintf(fp, s5[4], m_TimeStamp.CDS_T_Field_ms);
}
i++;
if(m_AncillaryText.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s6[0], m_AncillaryText.Header_Type);
fprintf(fp, s6[1], m_AncillaryText.Header_Record_Length);
fprintf(fp, s6[2], m_AncillaryText.szText);
}
i++;
if(m_KeyHeader.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s7[0], m_KeyHeader.Header_Type);
fprintf(fp, s7[1], m_KeyHeader.Header_Record_Length);
fprintf(fp, s7[2], m_KeyHeader.Key_Number);
}
i++;
if(m_ImageSegmentID.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s80[0], m_ImageSegmentID.Header_Type);
fprintf(fp, s80[1], m_ImageSegmentID.Header_Record_Length);
fprintf(fp, s80[2], m_ImageSegmentID.Image_Segm_Seq_No);
fprintf(fp, s80[3], m_ImageSegmentID.Total_No_Image_Segm);
fprintf(fp, s80[4], m_ImageSegmentID.Line_No_Image_Segm);
}
i++;
if(m_EncryptionKeyMsgHeader.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s81[0], m_EncryptionKeyMsgHeader.Header_Type);
fprintf(fp, s81[1], m_EncryptionKeyMsgHeader.Header_Record_Length);
fprintf(fp, s81[2], m_EncryptionKeyMsgHeader.Station_Number);
}
i++;
if(m_ImageCompensationInfo.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s82[0], m_ImageCompensationInfo.Header_Type);
fprintf(fp, s82[1], m_ImageCompensationInfo.Header_Record_Length);
fprintf(fp, s82[2], m_ImageCompensationInfo.szText);
}
i++;
if(m_ImageObserveTime.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s83[0], m_ImageObserveTime.Header_Type);
fprintf(fp, s83[1], m_ImageObserveTime.Header_Record_Length);
fprintf(fp, s83[2], m_ImageObserveTime.szText);
}
i++;
if(m_ImageQualityInfo.bValid)
{
fprintf(fp, s_);
fprintf(fp, ss[i]);
fprintf(fp, s84[0], m_ImageQualityInfo.Header_Type);
fprintf(fp, s84[1], m_ImageQualityInfo.Header_Record_Length);
fprintf(fp, s84[2], m_ImageQualityInfo.szText);
fprintf(fp, s_);
}
fclose(fp);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -