logplus/logPlus/ObjTextResult.cpp

88 lines
2.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "ObjTextResult.h"
#include "MemRdWt.h"
#include "geometryutils.h"
//气测/FMT/射孔/文本
CObjTextResult::CObjTextResult()
{
}
CObjTextResult::~CObjTextResult()
{
};
bool CObjTextResult::LoadFromSLF(QMyCustomPlot *widget, QString strSlfName, QString csCurve)
{
Slf_TxtPOS *m_pResult=NULL;
CMemRdWt *logio=new CMemRdWt();
if(strSlfName==""||!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeRead))
{
delete logio;
// QMessageBox::information(NULL,"提示","SLF文件打开失败请检查",QMessageBox::Yes);
return false;
}
int iIndex=logio->OpenTable(csCurve.toStdString().c_str());
if(iIndex>-1) {
int count = logio->GetTableRecordCount(iIndex);
int fieldnum = logio->GetTableFieldCount(iIndex);
int len = logio->GetTableRecordLength(iIndex);
Slf_TABLE_FIELD *pField=new Slf_TABLE_FIELD[fieldnum+1];
logio->GetTableFieldInfo(iIndex,pField);
m_FieldNameList.clear();
m_FieldUnitList.clear();
m_FieldHZNameList.clear();
m_FieldHZUnitList.clear();
//
for(int i=0;i<fieldnum;i++)
{
m_FieldNameList.push_back(QString::fromLocal8Bit(pField[i].Name));
m_FieldHZNameList.push_back(QString::fromLocal8Bit(pField[i].HZName));
m_FieldUnitList.push_back(QString::fromLocal8Bit(pField[i].Unit));
m_FieldHZUnitList.push_back(QString::fromLocal8Bit(pField[i].HZUnit));
}
delete pField;
//
m_pResult=(Slf_TxtPOS *)new char[len+1];
char buf[200];
for(int i=0;i<count;i++) {
logio->GetTableFieldData(iIndex,0,buf,i+1);
m_pResult->Order=atof(buf);
logio->GetTableFieldData(iIndex,1,buf,i+1);
m_pResult->Depth=atof(buf);
logio->GetTableFieldData(iIndex,2,buf,i+1);
m_pResult->CorrDepth=atof(buf);
double top=m_pResult->Depth;
double bottom=m_pResult->Depth;
if(m_FieldNameList.size()>2&&
(m_FieldNameList[2].indexOf("EDEP")>-1 ||
m_FieldNameList[2].indexOf("ENDEP")>-1)
)
{
bottom=m_pResult->CorrDepth;
}
CoreValues.clear();
ValueTypes.clear();
for(int j=0;j<fieldnum;j++)
{
int iType = logio->GetTableFieldData(iIndex,j,buf,i+1);
ValueTypes.append(iType);
float val=0;
val=atof(buf);
CoreValues.append(QString::number(val));
}
//
widget->addJiegutextToPlot(-bottom, -top, CoreValues, iMaxNum);
}
logio->CloseTable(iIndex);
delete m_pResult;
}
delete logio;
return true;
}