795 lines
23 KiB
C++
795 lines
23 KiB
C++
#include <qmap.h>
|
||
#include <qthread.h>
|
||
#include <qstringlist.h>
|
||
#include <tutouInfGenerator.h>
|
||
#include "slf.h"
|
||
#include "geometryutils.h"
|
||
//CGJtutouInfGenerator::CGJtutouInfGenerator(){}
|
||
//CGJtutouInfGenerator::~CGJtutouInfGenerator(){}
|
||
|
||
QString CGJtutouInfGenerator::wellName_Gen(QString wellName, QString name, bool needSum)
|
||
{
|
||
QString result;
|
||
QStringList wellNameNum_List;
|
||
int wellNameNumSum = 0;
|
||
bool hasName = true;
|
||
|
||
if(wellName == ""){
|
||
wellName = "00000000";
|
||
hasName = false;
|
||
}
|
||
|
||
QStringList wellName_List = wellName.split("");
|
||
|
||
int cutNum = 1;
|
||
if(wellName_List[wellName_List.size() - 2] == "井") cutNum = 2;
|
||
|
||
for(int i = 1; i < wellName_List.size() - cutNum; i++){
|
||
result += "'" + wellName_List[i];
|
||
if(i + 1 != wellName_List.size())
|
||
result += "',";
|
||
|
||
QString nameNum = (wellName_List[i].contains(QRegExp("[\\x4e00-\\x9fa5]+"))) ? QString("2") : QString("1");
|
||
if(!hasName)
|
||
nameNum = "0";
|
||
|
||
wellNameNum_List.append(nameNum);
|
||
wellNameNumSum += nameNum.toInt();
|
||
}
|
||
|
||
//弥补14位
|
||
for(int i = 0; i < 14 - (wellName_List.size() - cutNum); i++)
|
||
{
|
||
result += "'0',";
|
||
}
|
||
|
||
result += "'";
|
||
if(needSum)
|
||
{
|
||
//result += QString("%1").arg(wellNameNumSum);
|
||
result += QString("9");
|
||
}
|
||
else
|
||
result += "0";
|
||
result += blanksWord(name);
|
||
result += " ";
|
||
for(int i = 0; i < wellNameNum_List.size(); i++){
|
||
result += " ";
|
||
result += wellNameNum_List[i];
|
||
result += ", ";
|
||
}
|
||
//弥补14位
|
||
for(int i = 0; i < 14 - (wellName_List.size() - cutNum); i++)
|
||
{
|
||
result += " 0,";
|
||
}
|
||
|
||
result += " 0\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::wellDate_2row_Gen(QString date, QString dateName, bool needTime)
|
||
{
|
||
bool rightDate = true;
|
||
QString yearW = "年";
|
||
QString monthW = "月";
|
||
QString dayW = "日";
|
||
QString timeW = "时";
|
||
QStringList last;
|
||
QStringList secRow;
|
||
QString year, month, day, time, temp = "";
|
||
QString result = "";
|
||
|
||
last = date.split(yearW);
|
||
if(splitTo2Finished(last)) {
|
||
year = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(year)));
|
||
temp = last[1];
|
||
}
|
||
else rightDate = false;
|
||
|
||
last = temp.split(monthW);
|
||
if(splitTo2Finished(last)) {
|
||
month = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(month)));
|
||
temp = last[1];
|
||
}
|
||
else rightDate = false;
|
||
|
||
last = temp.split(dayW);
|
||
if(splitTo2Finished(last)) {
|
||
day = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(day)));
|
||
temp = last[1];
|
||
}
|
||
else rightDate = false;
|
||
|
||
last = temp.split(timeW);
|
||
if(splitTo2Finished(last)) {
|
||
time = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(time)));
|
||
temp = last[1];
|
||
}
|
||
else{
|
||
time = QString("00");
|
||
secRow.append("2");
|
||
}
|
||
|
||
if(!rightDate){
|
||
if(needTime)
|
||
result = QString("0,'0',0,'0',0,'0',0,'0 " + dateName + "-------1'\n0,'0',0,'0',0,'0',0,'0 " + dateName + "----2'\n");
|
||
else
|
||
result = QString("0,'0',0,'0',0,'0 " + dateName + "-------1'\n0,'0',0,'0',0,'0 " + dateName + "----2'\n");
|
||
|
||
return result;
|
||
}
|
||
|
||
result = secRow[0] + ",'" + year + "',";
|
||
result += secRow[1] + ",'" + month + "',";
|
||
result += secRow[2] + ",'" + day;
|
||
if(needTime){
|
||
result += "',";
|
||
result += secRow[3] + ",'" + time;
|
||
}
|
||
|
||
if(needTime)
|
||
result += " " + dateName + "-------1'\n0,'0',0,'0',0,'0',0,'0 " + dateName + "----2'\n";
|
||
else
|
||
result += " " + dateName + "-------1'\n0,'0',0,'0',0,'0 " + dateName + "----2'\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::wellDateGen(QString date, QString dateName, bool needTime)
|
||
{
|
||
bool rightDate = true;
|
||
QString yearW = "年";
|
||
QString monthW = "月";
|
||
QString dayW = "日";
|
||
QString timeW = "时";
|
||
QStringList last;
|
||
QStringList secRow;
|
||
QString year, month, day, time, temp = "";
|
||
QString result = "";
|
||
|
||
last = date.split(yearW);
|
||
if(splitTo2Finished(last)) {
|
||
year = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(year)));
|
||
temp = last[1];
|
||
}
|
||
else rightDate = false;
|
||
|
||
last = temp.split(monthW);
|
||
if(splitTo2Finished(last)) {
|
||
month = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(month)));
|
||
temp = last[1];
|
||
}
|
||
else rightDate = false;
|
||
|
||
last = temp.split(dayW);
|
||
if(splitTo2Finished(last)) {
|
||
day = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(day)));
|
||
temp = last[1];
|
||
}
|
||
else rightDate = false;
|
||
|
||
last = temp.split(timeW);
|
||
if(splitTo2Finished(last)) {
|
||
time = last[0];
|
||
secRow.append(QString("%1").arg(strWordNum(time)));
|
||
temp = last[1];
|
||
}
|
||
else{
|
||
time = QString("00");
|
||
secRow.append("2");
|
||
}
|
||
|
||
if(!rightDate){
|
||
if(needTime)
|
||
result = QString("0,'0',0,'0',0,'0',0,'0 " + dateName + "'");
|
||
else
|
||
result = QString("0,'0',0,'0',0,'0 " + dateName + "'");
|
||
|
||
return result;
|
||
}
|
||
|
||
result = secRow[0] + ",'" + year + "',";
|
||
result += secRow[1] + ",'" + month + "',";
|
||
result += secRow[2] + ",'" + day;
|
||
if(needTime){
|
||
result += "',";
|
||
result += secRow[3] + ",'" + time;
|
||
}
|
||
|
||
result += blanksWord(dateName);
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::Bushing_3_Gen(float* Bushing_Inside_Diameter, float* Bushing_Detpth)
|
||
{
|
||
QString result;
|
||
|
||
if(Bushing_Inside_Diameter[0] > -99 && Bushing_Detpth[0] > -99){
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bushing_Inside_Diameter[0]))), true, false, false);
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bushing_Detpth[0]))), true, false, false);
|
||
}
|
||
else
|
||
result += "0,'0',";
|
||
if(Bushing_Inside_Diameter[1] > -99 && Bushing_Detpth[1] > -99){
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bushing_Inside_Diameter[1]))), true, false, false);
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bushing_Detpth[1]))), true, false, false);
|
||
}
|
||
else
|
||
result += "0,'0',";
|
||
if(Bushing_Inside_Diameter[2] > -99 && Bushing_Detpth[2] > -99){
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bushing_Inside_Diameter[2]))), true, false, false);
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bushing_Detpth[2]))), false, false, true);
|
||
}
|
||
else
|
||
result += "0,'0";
|
||
|
||
result += blanksWord("套管");
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::Diameter_3_Gen(float* Bit_Diameter, float* Bit_Depth)
|
||
{
|
||
QString result;
|
||
|
||
if(Bit_Diameter[0] > -99 && Bit_Depth[0] > -99){
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Diameter[0]))), true, false, false);
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Depth[0]))), true, false, false);
|
||
}
|
||
else
|
||
result += "0,'0',";
|
||
if(Bit_Diameter[1] > -99 && Bit_Depth[1] > -99){
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Diameter[1]))), true, false, false);
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Depth[1]))), true, false, false);
|
||
}
|
||
else
|
||
result += "0,'0',";
|
||
if(Bit_Diameter[2] > -99 && Bit_Depth[2] > -99){
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Diameter[2]))), true, false, false);
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Depth[2]))), true, false, false);
|
||
}
|
||
else
|
||
result += "0,'0',";
|
||
|
||
if(Bit_Diameter[3] > -99 && Bit_Depth[3] > -99){
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Diameter[3]))), true, false, false);
|
||
result += numWord(QString("%1").arg(setdec(ConvertDataByFloat(Bit_Depth[3]))), false, false, true);
|
||
}
|
||
else
|
||
result += "0,'0";
|
||
|
||
result += blanksWord("钻头");
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::tutouCurveGen(QString curveStr, QString curveName)
|
||
{
|
||
const int maxNum = 11;
|
||
|
||
QString result;
|
||
|
||
QStringList curveList = curveStr.split(" ");
|
||
/*
|
||
QStringList staticCurveList;
|
||
staticCurveList.append("高分辨率深感应");
|
||
staticCurveList.append("数字聚焦");
|
||
staticCurveList.append("深侧向");
|
||
staticCurveList.append("球型聚焦电阻率");
|
||
staticCurveList.append("浅侧向");
|
||
staticCurveList.append("密度");
|
||
staticCurveList.append("中子");
|
||
staticCurveList.append("声波");
|
||
staticCurveList.append("自然电位");
|
||
staticCurveList.append("井径");
|
||
staticCurveList.append("自然伽马");
|
||
|
||
QString tempCurveName = staticCurveList[0];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = staticCurveList[1];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, true);
|
||
else result += zeroWord(tempCurveName, false, false, true);
|
||
|
||
result += blanksWord(curveName);
|
||
|
||
tempCurveName = staticCurveList[2];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = staticCurveList[3];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
result += "\n";
|
||
tempCurveName = staticCurveList[4];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = staticCurveList[5];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
result += "\n";
|
||
tempCurveName = staticCurveList[6];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = staticCurveList[7];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
result += "\n";
|
||
tempCurveName = staticCurveList[8];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = staticCurveList[9];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
|
||
for(int i = 0; i < curveList.size(); i++){
|
||
if(!staticCurveList.contains(curveList[i])){
|
||
result += ",";
|
||
result += numWord(curveList[i], false, false, false);
|
||
}
|
||
}
|
||
|
||
result += "\n";
|
||
tempCurveName = staticCurveList[10];
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
*/
|
||
bool isFirst = true;
|
||
int fileNum = (curveList.size() > maxNum) ? 11 : curveList.size();
|
||
for(int i = 0; i < fileNum; i++)
|
||
{
|
||
if(isFirst)
|
||
result += numWord(curveList[i], true, false, false);
|
||
else{
|
||
result += numWord(curveList[i], false, false, false);
|
||
result += "\n";}
|
||
isFirst = !isFirst;
|
||
}
|
||
for(int i = 0; i < (maxNum - fileNum); i++)
|
||
{
|
||
if(isFirst)
|
||
result += zeroWord("0", true, false, false);
|
||
else{
|
||
result += zeroWord("0", false, false, false);
|
||
result += "\n";}
|
||
isFirst = !isFirst;
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::curveGen(QString curveStr, QString curveName)
|
||
{
|
||
QString result;
|
||
|
||
QStringList curveList = curveStr.split(" ");
|
||
|
||
QString tempCurveName = "CBL";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = "VDL";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, true);
|
||
else result += zeroWord(tempCurveName, false, false, true);
|
||
|
||
result += blanksWord(curveName);
|
||
|
||
tempCurveName = "CCL";
|
||
if(curveList.indexOf(tempCurveName) >= 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = "GR";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
result += "\n";
|
||
tempCurveName = "CAL";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = "AC";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
result += "\n";
|
||
tempCurveName = "CAL2";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = "AAC";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
result += "\n";
|
||
tempCurveName = "CAL2";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, true, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = "AAC";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, true, false, false);
|
||
tempCurveName = "SBT";
|
||
if(curveList.indexOf(tempCurveName) > 0) result += numWord(tempCurveName, false, false, false);
|
||
else result += zeroWord(tempCurveName, false, false, false);
|
||
|
||
result += "\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::voiceCurveGen()
|
||
{
|
||
QString result;
|
||
|
||
result += "3,'CBL',3,'CCL 声幅所用曲线'\n";
|
||
result += "0,'AC ',3,'CAL'\n";
|
||
result += "0,'CCL',0,'GR'\n";
|
||
result += "0,'AC',0,'CAL'\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::scale_noFile_Gen()
|
||
{
|
||
QString result;
|
||
|
||
result += "0,'0',0,'0',0,'0 自然伽马刻度'\n";
|
||
result += "0,'0',0,'0 声幅刻度',1,'声幅单位标志'\n";
|
||
result += "0,'0',0,'0 磁定位刻度'\n";
|
||
result += "0,'0',0,'0 井径刻度',0,'井径单位标志',0,'井径个数标志'\n";
|
||
result += "0,'0',0,'0 声波刻度',0,'声波单位标志'\n";
|
||
result += "0,'0',0,'0 声波变密度刻度'\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::scale_Gen(QMap<QString, QStringList> pltMap)
|
||
{
|
||
QString result;
|
||
|
||
if(pltMap.find("GR") == pltMap.end()){
|
||
result += "0,'0',0,'0',0,'0 自然伽马刻度'\n";
|
||
}
|
||
else{
|
||
result += numWord(pltMap["GR"][0], true, false, false);
|
||
result += numWord(pltMap["GR"][1], true, false, false);
|
||
result += zeroWord("0", false, false, true);
|
||
result += blanksWord("自然伽马刻度");
|
||
}
|
||
|
||
if(pltMap.find("CBL") == pltMap.end()){
|
||
result += "0,'0',0,'0 声幅刻度',1,'声幅单位标志'\n";
|
||
}
|
||
else{
|
||
result += numWord(pltMap["CBL"][0], true, false, false);
|
||
result += numWord(pltMap["CBL"][1], false, false, true);
|
||
result += blanksWord("声幅刻度", false);
|
||
result += ",1,'声幅单位标志'\n";
|
||
}
|
||
|
||
if(pltMap.find("CCL") == pltMap.end()){
|
||
result += "0,'0',0,'0 磁定位刻度'\n";
|
||
}
|
||
else{
|
||
result += numWord(pltMap["CCL"][0], true, false, false);
|
||
result += numWord(pltMap["CCL"][1], false, false, true);
|
||
result += blanksWord("磁定位刻度");
|
||
}
|
||
|
||
if(pltMap.find("CAL") == pltMap.end()){
|
||
result += "0,'0',0,'0 井径刻度',0,'井径单位标志',0,'井径个数标志'\n";
|
||
}
|
||
else{
|
||
result += numWord(pltMap["CAL"][0], true, false, false);
|
||
result += numWord(pltMap["CAL"][1], false, false, true);
|
||
result += blanksWord("井径刻度", false);
|
||
result += ",0,'井径单位标志',0,'井径个数标志'\n";
|
||
}
|
||
|
||
if(pltMap.find("AC") == pltMap.end()){
|
||
result += "0,'0',0,'0 声波刻度',0,'声波单位标志'\n";
|
||
}
|
||
else{
|
||
result += numWord(pltMap["AC"][0], true, false, false);
|
||
result += numWord(pltMap["AC"][1], false, false, true);
|
||
result += blanksWord("声波刻度", false);
|
||
result += ",0,'声波单位标志'\n";
|
||
}
|
||
|
||
if(pltMap.find("LVDL") == pltMap.end()){
|
||
result += "0,'0',0,'0 声波变密度刻度'\n";
|
||
}
|
||
else{
|
||
result += numWord(pltMap["LVDL"][0], true, false, false);
|
||
result += numWord(pltMap["LVDL"][1], false, false, true);
|
||
result += blanksWord("声波变密度刻度");
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::techHeadGen(QString tech)
|
||
{
|
||
QString result;
|
||
|
||
if(tech == ""){
|
||
result = QString("0") + "," + QString("0") + ",";
|
||
result += "'技术说明: 总条数 行数'\n";
|
||
return result;
|
||
}
|
||
|
||
QStringList techList = tech.split("\n");
|
||
QStringList techNum = tech.split(QRegExp("[;;.。]"));
|
||
|
||
result = QString("%1").arg(techNum.size()) + "," + QString("%1").arg(techList.size()) + ",";
|
||
result += "'技术说明: 总条数 行数'\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::techBodyGen(QString tech)
|
||
{
|
||
QString result;
|
||
|
||
if(tech != ""){
|
||
QStringList techList = tech.split(QRegExp("[;;.。]"));
|
||
|
||
for(int i = 0; i < techList.size(); i++){
|
||
result += QString("%1").arg(i + 1);
|
||
result += numWord(techList[i].simplified(), false, true, false);
|
||
|
||
result += "\n";
|
||
}
|
||
|
||
}
|
||
else{
|
||
result += "0,0,'技术说明: 总条数 行数'\n\
|
||
1,18,'本井水泥上返地面,固井质量不作评价;'\n\
|
||
9,9,'本次为通钻后测井;'\n\
|
||
2,28,'第5~6、11~13、17~21层之间的第二界面胶结差;'\n";
|
||
}
|
||
|
||
result += "end\n";
|
||
result += "end\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::resultTu(QString word){
|
||
QString result;
|
||
|
||
word = word.toLower();
|
||
|
||
if(word == "porp")
|
||
result += "0";
|
||
else if(word == "protn")
|
||
result += "1";
|
||
else if(word == "tcra")
|
||
result += "2";
|
||
else
|
||
result += "0";
|
||
|
||
result += ",0 成果图 -- 成果图井径标志(选择:0 porp; 1 portn; 2 cra 选择:0 英制; 1公制)\n";
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::zeroWord(QString word, bool needTailComma, bool needHeadComma, bool isTail)
|
||
{
|
||
QString result = "";
|
||
if(needHeadComma) result += ",0,"; //需要与前面有逗号连接符
|
||
else result += "0,";
|
||
|
||
result += "'" + word;
|
||
|
||
if(!isTail) result += "'";
|
||
|
||
if(needTailComma) result += ",";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::numWord(QString word, bool needTailComma, bool needHeadComma, bool isTail)
|
||
{
|
||
QString result = "";
|
||
|
||
int num = strWordNum(word);
|
||
|
||
word = (word == "") ? "0" : word;
|
||
|
||
if(needHeadComma) result += "," + QString("%1").arg(num) + ","; //需要与前面有逗号连接符
|
||
else result += QString("%1").arg(num) + ",";
|
||
|
||
result += "'" + word;
|
||
|
||
if(!isTail) result += "'";
|
||
|
||
if(needTailComma) result += ",";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::blanksWord(QString word, bool nextLine)
|
||
{
|
||
QString str = " " + word + "'";
|
||
if(nextLine) str += "\n";
|
||
|
||
return str;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::chaiFenRange(QString word, bool needTailComma, bool needHeadComma, bool isTail)
|
||
{
|
||
QString cf = "-";
|
||
QString result;
|
||
|
||
if(needHeadComma) result += ",";
|
||
|
||
if(word == ""){
|
||
if(isTail)
|
||
result += "0,'0',0,'0";
|
||
else
|
||
result += "0,'0',0,'0'";
|
||
}
|
||
else{
|
||
QStringList wordList = word.split(cf);
|
||
if(wordList.size() != 2){
|
||
if(isTail)
|
||
result += "0,'0',0,'0";
|
||
else
|
||
result += "0,'0',0,'0'";
|
||
}
|
||
else{
|
||
result += numWord(wordList[0], true, false, false);
|
||
result += numWord(wordList[1], false, false, isTail);
|
||
}
|
||
}
|
||
|
||
if(needTailComma) result += ",";
|
||
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::tutouTailGen_1(){
|
||
QString result;
|
||
|
||
result += "0,'30',2,'60 井斜 第二刻度'\n\
|
||
2,'20',2,'7050 2.5米梯度 第二刻度'\n\
|
||
0,'285',3,'435 自然伽马 第二刻度'\n\
|
||
1,'4',2,'22 井径 第一刻度'\n\
|
||
0,'22',2,'40 井径 第二刻度'\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::tutouTailGen_2(){
|
||
QString result;
|
||
|
||
result += "2,'1011',2,'3536 微电极第二刻度'\n\
|
||
2,'3024',2,'80144 4米 第二刻度'\n\
|
||
4,'47003800',4,'3450800 电导率 第二刻度'\n\
|
||
1,'侧向电导率 (选择:0 感应;1 侧向)'\n";
|
||
|
||
/*
|
||
|
||
|
||
*/
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::tutouTailGen_3(){
|
||
QString result;
|
||
|
||
result += "0,'150',3,'300 自然伽马 第二刻度'\n\
|
||
2,'60',3,'160 自然电位 第一刻度'\n\
|
||
0,'-90',2,'100 自然电位 第二刻度'\n\
|
||
1,'6 ',2,'16 井径 第一刻度'\n\
|
||
0,'16',2,'26 井径 第二刻度'\n\
|
||
2,'RDHRID ',6,'深侧向电阻率高分辨率深感应电阻率高分辨率深感应电阻率'\n\
|
||
0,'100',6,'1000000000'\n\
|
||
2,'RSHRIM ',6,'浅侧向电阻高分辨率中感应电阻率率高分辨率中感应电阻率'\n\
|
||
0,'100',6,'1000000000'\n\
|
||
4,'MSFL RSFL ',8,'微球型聚焦电阻率邻近侧向电阻率微数字聚焦电阻率'\n\
|
||
3,'100',6,'1000000000'\n\
|
||
0,'DEN',2,'密度岩性'\n\
|
||
3,'1.96',3,'2.96'\n\
|
||
3,'0.96',3,'1.96'\n\
|
||
0,'2.7',3,'3.7'\n\
|
||
0,'CNL',2,'中子补偿中子'\n\
|
||
2,'45 ',3,'-15'\n\
|
||
0,'105',2,'45 '\n\
|
||
2,'AC',2,'声波'\n\
|
||
3,'150',2,'500 '\n\
|
||
0,'250',0,'150'\n\
|
||
0,'PE',10,'有效光电吸收截面指数'\n\
|
||
1,'0',2,'10'\n\
|
||
0,' 标准曲线图标志(选择:0 zpi标准; 1 cli标准; 2 cli声波标准)'\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::tutouTailGen_4(){
|
||
QString result;
|
||
|
||
result += "0,' 放大曲线图标志(选择:0 微电极放大; 1 声波放大)'\n\
|
||
0,'10',2,'20 放大曲线微电极第二刻度'\n\
|
||
0,'5',2,'10 海上测井曲线图微电极第二刻度'\n";
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::tutouTailGen_5(){
|
||
QString result;
|
||
|
||
result += "0,' 河口采油厂图头标志(选择:0 常规图; 1 河口图)'\n\
|
||
3,'500',3'250 河口组合图声波(公制)刻度'\n\
|
||
3,'CRA 复杂岩性剖面岩性种数(不包括泥岩)'\n\
|
||
3,2,'砂岩 ',11 ,'SAND'\n\
|
||
1,2,'灰岩 ',16 ,'LIME'\n\
|
||
2,3,'白云岩',21 ,'DOLM'\n\
|
||
4,2,'石膏 ',32 ,'OTHR'\n\
|
||
2,2,'砾岩 ',300,'GRAV'\n\
|
||
5,3,'角砾岩',26 ,'CONG'\n\
|
||
7,3,'凝灰岩',299,'TUFF'\n\
|
||
8,3,'安山岩',303,'ANDE'\n\
|
||
9,2,'侵入岩',301,'BASD'\n\
|
||
10,2,'玄武岩',44 ,'BASA'\n\
|
||
11,2,'辉长岩',41 ,'GRWA'\n\
|
||
12,2,'辉绿岩',38 ,'GRAN'\n\
|
||
13,2,'片麻岩',40 ,'ANHY'\n\
|
||
0,'临盘宽行标志(选择:0 不生成宽行图; 1 带微电极宽行图; 2 不带微电极宽行图)'\n\
|
||
0'cli5标志(选择:0 生成cli 不生成cli5; 1 生成cli5 不生成cli)'\n\
|
||
0,'U Te K 曲线图标志(选择:1 生成; 0 不生成)'\n\
|
||
0,'GRKT 自然伽马能谱'\n\
|
||
0,'GKUT 计算自然伽马'\n\
|
||
0,'THOR TH 钍'\n\
|
||
3,'-20',2,'10 TH 钍 第一刻度'\n\
|
||
0,'10',2,'20 第二刻度'\n\
|
||
0,'POAK K 钾'\n\
|
||
1,'0',2,'10 K 钾 第一刻度'\n\
|
||
0,'10',2,'20 第二刻度'\n\
|
||
0,'URAN U 铀'\n\
|
||
1,'0',2,'40 U 铀 第一刻度'\n\
|
||
0,'40',2,'80 第二刻度'\n";
|
||
|
||
|
||
return result;
|
||
}
|
||
|
||
QString CGJtutouInfGenerator::tutouTailGen_6(){
|
||
QString result;
|
||
|
||
result += "2,'水平图深度比例 (选择:0 1:500 1:1000)'\n\
|
||
0,'2000',4,'5000 水平图垂直深度左右刻度'\n\
|
||
2,'垂直图深度比例 (选择:0 1:500 1: 1:1000)'\n\
|
||
3,'100',3,'500 垂直图水平位移左右刻度'\n\
|
||
0,'(选择:1 高频感应 :2 高分率阵列感应 :0 不生成高频感应或高分率阵列感应)'\n\
|
||
0,1,1,1,1,1,'(高频感应 阵列感应第二刻度标志 :0 没有 :1 有)'\n\
|
||
3,'R20 '3,'R07 高频感应所用曲线'\n\
|
||
4,'自然电位'4,'自然伽马'\n\
|
||
0,'中子 '2,'声波'\n\
|
||
0,'密度 '2,'井径'\n\
|
||
0,'1000.3-2490.5 rmt 测量井段 第一点 至 最后一点 '\n\
|
||
10,'800-2490.5 rmt 垂直井段 第一点 至 最后一点 '\n\
|
||
-9999\n\
|
||
end\n";
|
||
|
||
|
||
return result;
|
||
}
|
||
|
||
bool CGJtutouInfGenerator::splitTo2Finished(QStringList strList)
|
||
{
|
||
if(strList.size() != 2) return false;
|
||
if(strList[0] != "" || strList[1] != "") return true;
|
||
else return false;
|
||
}
|
||
|
||
int CGJtutouInfGenerator::strWordNum(QString str)
|
||
{
|
||
QStringList r = str.split("");
|
||
int result = r.size();
|
||
if(r.size() <= 2) return 0;
|
||
else return r.size() - 2;
|
||
}
|