yuinh2007 发表于 2014-2-17 17:50:30

野外地震数据编程读取的核心代码

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

复制代码
来看一看效果吧,从Segd文件中读取了前10道数据,截取了前面的2000ms:
页: [1]
查看完整版本: 野外地震数据编程读取的核心代码