65 lines
1.6 KiB
C++
65 lines
1.6 KiB
C++
#include <cassert>
|
||
#include "ObjGeostratums.h"
|
||
#include "LogIO.h";
|
||
#include <QTextStream>
|
||
#include <QApplication>
|
||
#include <QDir>
|
||
|
||
|
||
CObjGeostratums::CObjGeostratums()
|
||
{
|
||
}
|
||
|
||
bool CObjGeostratums::LoadFromSLF(QMyCustomPlot *widget, QString strSlfName, QString csCurve)
|
||
{
|
||
LAYER_DATA m_Result;
|
||
if(strSlfName=="") return false;
|
||
CLogIO *logio=new CLogIO();
|
||
if(!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 <0) {
|
||
iIndex=logio->OpenTable("LAYER_DATA");
|
||
}
|
||
|
||
if (iIndex >=0)
|
||
{
|
||
int count=logio->GetTableRecordCount(iIndex);
|
||
|
||
int ColorNum=6;
|
||
if(ColorNum<1) ColorNum=1;
|
||
QList<QRgb> rgbList;
|
||
rgbList.append(QRgb(4294967295));
|
||
rgbList.append(QRgb(4294966617));
|
||
rgbList.append(QRgb(4294944512));
|
||
rgbList.append(QRgb(4293345792));
|
||
rgbList.append(QRgb(4288741473));
|
||
rgbList.append(QRgb(4278190080));
|
||
|
||
for(int j=0;j<count;j++) {
|
||
memset(&m_Result,0,sizeof(LAYER_DATA));
|
||
logio->ReadTable(iIndex,j+1,&m_Result);
|
||
float sdep=m_Result.StartDepth;
|
||
float edep=m_Result.EndDepth;
|
||
//
|
||
char buf[490];
|
||
buf[0]=0;
|
||
::GetDescription(m_Result,buf);
|
||
|
||
QColor bkColor = rgbList.at(j%ColorNum);
|
||
|
||
//显示文本
|
||
widget->addTextToPlot(-edep, -sdep, QString::fromLocal8Bit(buf), bkColor);
|
||
}
|
||
logio->CloseTable(iIndex);
|
||
}
|
||
delete logio;
|
||
return true;
|
||
}
|
||
|