|
使用C++/MFC读取野外Segd地震数据,说白了就是找到数据位置,将32位IEEE格式浮点数以字符方式读取,进行高低位交换,然后以32位IBM格式浮点数输出……- void mySwap(BYTE A4[], BYTE B4[])
- {//4字节高低交换
- A4[0] = B4[3]; A4[1] = B4[2];
- A4[2] = B4[1]; A4[3] = B4[0];
- }
- float ReadFlt(DWORD dwPos, BYTE B4[])
- {//读4字节浮点数</P>
- //预先要定义好全局的CFile对象m_pFile
- m_pFile->Seek(dwPos, CFile::begin);
- m_pFile->Read(B4, 4);
- BYTE A4[4];
- mySwap(A4, B4);
- return *(float*)A4;
- }
- BYTE B4[4];
- float fSeisData = ReadFlt(5972, B4); //地震数据中第一道的第一个样点值就读入到fSeisdata变量中了
复制代码
来看一看效果吧,从Segd文件中读取了前10道数据,截取了前面的2000ms: |
|