605 lines
22 KiB
C++
605 lines
22 KiB
C++
/*#include "MyDlisLib.h"
|
||
#include "MyLisLib.h"
|
||
#include "MyXtfLib.h"*/
|
||
#pragma once
|
||
#include "WisTableTran.h"
|
||
#include "BaseFun.h"
|
||
//#include "log.h"
|
||
//void AppendConsole(pai::log::Priority priority,const QString &output);
|
||
WisTableTran::WisTableTran()
|
||
{
|
||
m_TranNum=0;
|
||
WisDefTable=NULL;
|
||
SlfDefTable=NULL;
|
||
outinf=NULL;
|
||
}
|
||
WisTableTran::~WisTableTran()
|
||
{
|
||
if(m_TranNum)
|
||
{
|
||
//for(int i=0;i<m_TranNum;i++)delete []m_TTI[i].tinfo;
|
||
delete []m_TTI;
|
||
if(WisDefTable)delete []WisDefTable;
|
||
if(SlfDefTable)delete []SlfDefTable;
|
||
if(outinf)delete []outinf;
|
||
}
|
||
}
|
||
void WisTableTran::GetTTI(TRANTABLEINF &m_TTI,QStringList temp)
|
||
{
|
||
m_TTI.ZdNum=0;
|
||
m_TTI.tinfo=new ZdInf[temp.size()];
|
||
for(int i=0;i<temp.size();i++)
|
||
{
|
||
QString line=temp.at(i);
|
||
QStringList DataList=GetStringList(line,1,1,1,1,1);
|
||
if(DataList.count()<2)continue;
|
||
m_TTI.tinfo[m_TTI.ZdNum].OutZd=DataList.at(0);//logplus
|
||
m_TTI.tinfo[m_TTI.ZdNum].InZd=DataList.at(1);//wis
|
||
if(DataList.count()>2)m_TTI.tinfo[m_TTI.ZdNum].ZdType=DataList.at(2);
|
||
if(DataList.count()>3)m_TTI.tinfo[m_TTI.ZdNum].ZdLen=DataList.at(3);
|
||
if(DataList.count()>4)m_TTI.tinfo[m_TTI.ZdNum].ZdAlias=DataList.at(4);
|
||
m_TTI.ZdNum++;
|
||
}
|
||
}
|
||
bool WisTableTran::GetTranTableInf()
|
||
{//读TableTran.ini
|
||
m_TranNum=0;
|
||
QString ConfigName = GetConfPath()+"TableTran.ini";
|
||
QFile InFile(ConfigName);
|
||
if( !InFile.open(QIODevice::ReadOnly ) )return 0;
|
||
QTextStream textstream( &InFile );
|
||
QString line;
|
||
while(!textstream.atEnd())
|
||
{
|
||
line=textstream.readLine();
|
||
if(line.indexOf("//")>=0)continue;
|
||
if(line.indexOf("#")>=0)m_TranNum++;
|
||
}
|
||
if(!m_TranNum){
|
||
InFile.close();
|
||
return 0;
|
||
}
|
||
InFile.seek(0);
|
||
m_TTI=new TRANTABLEINF[m_TranNum];
|
||
|
||
int num=-1;
|
||
QStringList temp;
|
||
while(!textstream.atEnd())
|
||
{
|
||
line=textstream.readLine();
|
||
if(line.indexOf("//")>=0)continue;
|
||
line=line.toUpper();
|
||
if(line.indexOf("#")>=0)
|
||
{
|
||
if(num>=0)
|
||
{
|
||
GetTTI(m_TTI[num],temp);
|
||
temp.clear();
|
||
}
|
||
num++;
|
||
line=line.replace("#","");
|
||
QStringList DataList=GetStringList(line,1,1,1,1,1);
|
||
m_TTI[num].OutName=DataList.at(0);
|
||
m_TTI[num].InName=DataList.at(1);
|
||
if(DataList.count()>2)m_TTI[num].AliasName=DataList.at(2);
|
||
}
|
||
else temp.append(line);
|
||
}
|
||
GetTTI(m_TTI[num],temp);
|
||
InFile.close();
|
||
for(int i=0;i<m_TranNum;i++)
|
||
{
|
||
m_TTI[i].InNameList.clear();
|
||
for(int j=0;j<m_TTI[i].ZdNum;j++)
|
||
{
|
||
QString tempName=m_TTI[i].tinfo[j].InZd;
|
||
if(tempName.indexOf("+")>0)tempName=tempName.replace("+",",");
|
||
if(tempName.indexOf("-")>0)tempName=tempName.replace("-",",");
|
||
QStringList tempList=tempName.split(",");
|
||
for(int m=0;m<tempList.count();m++)m_TTI[i].InNameList.append(tempList.at(m));
|
||
}
|
||
}
|
||
return 1;
|
||
}
|
||
|
||
bool WisTableTran::ReadDefTable(DEFAULTTABLE *&WisDefTable,QString table_inf)
|
||
{
|
||
WisDefTable=new DEFAULTTABLE[m_TranNum];
|
||
for(int i=0;i<m_TranNum;i++)
|
||
{
|
||
WisDefTable[i].TableName="";
|
||
WisDefTable[i].ZdNum=0;
|
||
}
|
||
QString ConfigName = ::GetConfPath();
|
||
int iswis=0;
|
||
if(table_inf.indexOf("wis_",0,Qt::CaseInsensitive)>-1) {
|
||
ConfigName+=GetOilFieldName();
|
||
iswis=1;
|
||
}
|
||
ConfigName+=table_inf;
|
||
QFile InFile(ConfigName);
|
||
if( !InFile.open(QIODevice::ReadOnly ) )
|
||
{
|
||
QMessageBox::warning(NULL,"提示","打开缺省表配置文件"+ConfigName+"错误");
|
||
return 0;
|
||
}
|
||
QTextStream textstream( &InFile );
|
||
QString line;
|
||
|
||
QString TableName,TableAliasName;
|
||
//int ZdNum;
|
||
QStringList ZdName,HzName,ZdUnit,ZdLen,ZdType,ZdRes,DataList;
|
||
|
||
while(!textstream.atEnd())
|
||
{
|
||
line=textstream.readLine();
|
||
line=line.toUpper();
|
||
while(line.indexOf("#")>=0)
|
||
{
|
||
line=line.replace("#","");
|
||
DataList=GetStringList(line,1,1,1,1,1);
|
||
if(DataList.count()<2)continue;
|
||
TableName=DataList.at(0);
|
||
TableAliasName=DataList.at(1);
|
||
QString menuinfo[50];
|
||
for(int m=0;m<m_TranNum;m++)
|
||
{
|
||
QString name;
|
||
if(!iswis) name=m_TTI[m].OutName;
|
||
else name=m_TTI[m].InName;
|
||
if(TableName==name)
|
||
{
|
||
while(!textstream.atEnd())
|
||
{
|
||
line=textstream.readLine();
|
||
if(line.indexOf(",")>=0)
|
||
{
|
||
QString str=line;
|
||
str.trimmed();
|
||
int len=str.length();
|
||
if(len>-1&&str.at(len-1)==',')
|
||
{
|
||
while(!textstream.atEnd())
|
||
{
|
||
line=textstream.readLine();
|
||
str+=line;
|
||
str.trimmed();
|
||
int len=str.length();
|
||
if(len>-1&&str.at(len-1)!=',') break;
|
||
}
|
||
}
|
||
int ind=ZdName.size()-1;
|
||
if(ind>-1) menuinfo[ind]=str;
|
||
continue;//枚举行
|
||
}
|
||
line=line.toUpper();
|
||
if(line.indexOf("#")>=0)
|
||
{
|
||
break;
|
||
}
|
||
DataList=GetStringList(line,1,1,1,1,1);
|
||
if(DataList.count()<5)continue;
|
||
|
||
ZdName.append(DataList.at(0));
|
||
HzName.append(DataList.at(1));
|
||
ZdUnit.append(DataList.at(2));
|
||
|
||
bool IsZdType=0;
|
||
for(int j=0;j<11;j++)
|
||
{
|
||
if(DataList.at(3)==QString(Rep_STR[j]))
|
||
{
|
||
ZdType.append(QString::number(j+1));
|
||
IsZdType=1;
|
||
break;
|
||
}
|
||
}
|
||
if(!IsZdType)QMessageBox::warning(NULL,"提示","defauletable.ini文件中表"+TableName+"的字段名"+DataList.at(0)+"类型不正确");
|
||
ZdLen.append(DataList.at(4));
|
||
if(DataList.count()>5) {
|
||
if(DataList.at(5).toInt()>0)
|
||
{
|
||
QString filename=GetConfPath();
|
||
switch(DataList.at(5).toInt())
|
||
{
|
||
case 1:
|
||
filename+="RESULT.ini";
|
||
break;
|
||
case 2:
|
||
filename+="GujingOrder.ini";
|
||
break;
|
||
case 3:
|
||
filename+="CoreOil.ini";
|
||
break;
|
||
case 4:
|
||
filename+="CoreLith.ini";
|
||
break;
|
||
case 5:
|
||
filename+="Corecolor.ini";
|
||
break;
|
||
case 6:
|
||
filename+="colorind.ini";
|
||
break;
|
||
case 7:
|
||
filename+="GeoLith.ini";
|
||
break;
|
||
}
|
||
FILE *fp1=fopen(filename.toStdString().c_str(),"r+t");
|
||
QString str;
|
||
if(fp1) {
|
||
char buf1[100];
|
||
int flag=0;
|
||
str="MENU=";
|
||
while(!feof(fp1)) {
|
||
int ret=fscanf(fp1,"%s",buf1);
|
||
if(ret<1) break;
|
||
if(flag) str+=",";
|
||
else flag=1;
|
||
str+=buf1;
|
||
}
|
||
fclose(fp1);
|
||
}
|
||
int ind=ZdRes.size();
|
||
menuinfo[ind]=str;
|
||
}
|
||
ZdRes.append(DataList.at(5));
|
||
}
|
||
else ZdRes.append("0");
|
||
}
|
||
WisDefTable[m]=SetTableInf(TableName,TableAliasName,ZdName.count(),ZdName,HzName,ZdUnit,ZdType,ZdLen,ZdRes,menuinfo);
|
||
ZdName.clear();
|
||
ZdLen.clear();
|
||
ZdType.clear();
|
||
HzName.clear();
|
||
ZdUnit.clear();
|
||
ZdRes.clear();
|
||
for(int i=0;i<50;i++)
|
||
{
|
||
menuinfo[i]="";
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
InFile.close();
|
||
if(iswis){
|
||
//检查输出匹配表名是否在系统定义的缺省表中
|
||
int nn=0,mm=0;
|
||
QString mes="TableTran.ini中定义的输出表名:\r\n";
|
||
QString ZdMes="";
|
||
for(int i=0;i<m_TranNum;i++)
|
||
{
|
||
if(WisDefTable[i].TableName==""||WisDefTable[i].ZdNum<=0)
|
||
{
|
||
nn++;
|
||
mes+=m_TTI[i].InName+"\r\n";
|
||
WisDefTable[i].TableName="";
|
||
WisDefTable[i].ZdNum=0;
|
||
continue;
|
||
}
|
||
//检查输出匹配表m_TTI[i].InName中要匹配的字段名是否都存在于WisDefTable[i]中
|
||
QStringList FieldNameList;
|
||
for(int k=0;k<WisDefTable[i].ZdNum;k++)FieldNameList.append(QString(WisDefTable[i].tinfo[k].Name));
|
||
for(int n=0;n<m_TTI[i].InNameList.count();n++)
|
||
{
|
||
int find=-1;
|
||
for(int k=0;k<FieldNameList.count();k++)
|
||
{
|
||
if(m_TTI[i].InNameList.at(n)==FieldNameList.at(k))
|
||
{
|
||
find=k;
|
||
break;
|
||
}
|
||
}
|
||
if(find<0)
|
||
{
|
||
mm++;
|
||
ZdMes+="数据表"+m_TTI[i].InName+"的字段"+m_TTI[i].InNameList.at(n)+"\r\n";
|
||
WisDefTable[i].ZdNum=0;//字段定义不全的表不匹配
|
||
WisDefTable[i].TableName="";
|
||
}
|
||
}
|
||
}
|
||
mes+="不是系统定义的缺省表\r\n请在Wis_DefTable.ini配置文件中进行定义";
|
||
if(!nn)mes="";
|
||
if(mm)mes+="\r\nTableTran.ini文件中下列字段没有在wis_deftable.inf中定义\r\n";
|
||
if(mm)mes+=ZdMes;
|
||
if(nn+mm==0)return 1;
|
||
// AppendConsole(pai::log::PAI_INFO,mes);
|
||
// QMessageBox::warning(NULL,"提示",mes);
|
||
//如果所有匹配表信息都不全,返回0,主程序中就不需要再做工作
|
||
int num=0;
|
||
for(int i=0;i<m_TranNum;i++)
|
||
{
|
||
if(WisDefTable[i].ZdNum)num++;
|
||
}
|
||
if(num)return 1;
|
||
else {
|
||
delete WisDefTable;
|
||
WisDefTable=NULL;
|
||
return 0;
|
||
}
|
||
}
|
||
else {
|
||
//检查输出匹配表名是否在系统定义的缺省表中
|
||
int nn=0,mm=0;
|
||
QString mes="TableTran.ini中定义的输出表名:\r\n";
|
||
QString ZdMes="";
|
||
for(int i=0;i<m_TranNum;i++)
|
||
{
|
||
if(WisDefTable[i].TableName==""||WisDefTable[i].ZdNum<=0)
|
||
{
|
||
nn++;
|
||
mes+=m_TTI[i].OutName+"\r\n";
|
||
continue;
|
||
}
|
||
//检查输出匹配表m_TTI[i].OutName中要匹配的字段名是否都存在于SlfDefTable[i]中
|
||
QStringList FieldNameList;
|
||
for(int k=0;k<WisDefTable[i].ZdNum;k++)FieldNameList.append(QString(WisDefTable[i].tinfo[k].Name));
|
||
for(int n=0;n<m_TTI[i].ZdNum;n++)
|
||
{
|
||
int find=-1;
|
||
for(int k=0;k<FieldNameList.count();k++)
|
||
{
|
||
if(m_TTI[i].tinfo[n].OutZd==FieldNameList.at(k))
|
||
{
|
||
find=k;
|
||
break;
|
||
}
|
||
}
|
||
if(find<0)
|
||
{
|
||
mm++;
|
||
ZdMes+="数据表"+m_TTI[i].OutName+"的字段"+m_TTI[i].tinfo[n].OutZd+"\r\n";
|
||
}
|
||
}
|
||
}
|
||
mes+="不是系统定义的缺省表\r\n请在SlfDefTable.ini配置文件中进行定义";
|
||
if(!nn)mes="";
|
||
if(mm)mes+="\r\nTableTran.ini文件中下列字段没有在SlfDefTable.ini中定义\r\n";
|
||
if(mm)mes+=ZdMes;
|
||
if(nn+mm==0)return 1;
|
||
// AppendConsole(pai::log::PAI_INFO,mes);
|
||
// QMessageBox::warning(NULL,"提示",mes);
|
||
//如果所有匹配表信息都不全,返回0,主程序中就不需要再做工作
|
||
int num=0;
|
||
for(int i=0;i<m_TranNum;i++)
|
||
{
|
||
if(WisDefTable[i].ZdNum)num++;
|
||
}
|
||
if(num)return 1;
|
||
else {
|
||
delete WisDefTable;
|
||
WisDefTable=NULL;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
bool WisTableTran::HaveTranTable(QString wistype)//QStringList TableList)
|
||
{
|
||
//读数据表匹配与转换配置文件TableTran.ini
|
||
if(!GetTranTableInf())return 0;
|
||
//读wis缺省表Wis_deftable.inf(从Forward\system\deftable.inf拷贝到LogPlus\bin\conf\Wis_deftable.inf)
|
||
if(!ReadDefTable(WisDefTable,"wis_deftable.inf"))return 0;
|
||
//读slf缺省表WisDefTable.ini
|
||
if(!ReadDefTable(SlfDefTable,"DefauleTable.ini"))return 0;
|
||
return 1;
|
||
}
|
||
int WisTableTran::GetTranTableNo(QString TableName,int fieldNum,Slf_TABLE_FIELD* tableFieldInfo,bool IsS2W)
|
||
{
|
||
DEFAULTTABLE *DefTab;
|
||
int TranTable=-1;
|
||
for(int m=0;m<m_TranNum;m++)
|
||
{
|
||
#pragma region 相同表名
|
||
if(m_TTI[m].InName==TableName)//检查转换字段是否都存在
|
||
{
|
||
TranTable=m;
|
||
QStringList FieldNameList;
|
||
for(int k=0;k<fieldNum;k++)FieldNameList.append(QString(tableFieldInfo[k].Name));
|
||
// 检查输出字段名是否存在
|
||
for(int n=0;n<m_TTI[m].InNameList.count();n++)
|
||
{
|
||
int find=-1;
|
||
for(int k=0;k<FieldNameList.count();k++)
|
||
{
|
||
if(m_TTI[m].InNameList.at(n)==FieldNameList.at(k))
|
||
{
|
||
find=k;
|
||
break;
|
||
}
|
||
}
|
||
if(find<0)
|
||
{
|
||
TranTable=-1;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
#pragma endregion 相同表名
|
||
if(TranTable>=0)break;
|
||
#pragma region 相同字段
|
||
//如果没有和缺省表名相同的表,检查是否有同结构的表,如要把GEOSTRATUM转成LAYER_DATA的表
|
||
if(!IsS2W)DefTab=&WisDefTable[m];
|
||
else DefTab=&SlfDefTable[m];
|
||
if(fieldNum==DefTab->ZdNum)//m_TTI[m].OutName==TableName)
|
||
{
|
||
TranTable=m;
|
||
// 检查字段名、字段类型是否完全一致
|
||
for(int k=0;k<fieldNum;k++)
|
||
{
|
||
if(strcmp(DefTab->tinfo[k].Name,tableFieldInfo[k].Name)!=0
|
||
||DefTab->tinfo[k].RepCode!=tableFieldInfo[k].RepCode
|
||
||DefTab->tinfo[k].CodeLength!=tableFieldInfo[k].Length)
|
||
{
|
||
TranTable=-1;
|
||
break;
|
||
}
|
||
}
|
||
if(TranTable>=0)break;
|
||
}
|
||
#pragma endregion 相同字段
|
||
}
|
||
return TranTable;
|
||
}
|
||
void WisTableTran::GetOutInf(int TranTable)
|
||
{
|
||
if(outinf)delete []outinf;
|
||
outinf=new OUTINF[m_TTI[TranTable].ZdNum];
|
||
for(int n=0;n<m_TTI[TranTable].ZdNum;n++)
|
||
{
|
||
strcpy(outinf[n].OutName,m_TTI[TranTable].tinfo[n].OutZd.toStdString().c_str());
|
||
for(int j=0;j<SlfDefTable[TranTable].ZdNum;j++)
|
||
{
|
||
if(m_TTI[TranTable].tinfo[n].OutZd==WisDefTable[TranTable].tinfo[j].Name)
|
||
{
|
||
SlfDefTable[TranTable].toName[j]=m_TTI[TranTable].tinfo[n].InZd;
|
||
break;
|
||
}
|
||
}
|
||
for(int j=0;j<WisDefTable[TranTable].ZdNum;j++)
|
||
{
|
||
if(m_TTI[TranTable].tinfo[n].InZd==WisDefTable[TranTable].tinfo[j].Name)
|
||
{
|
||
WisDefTable[TranTable].toName[j]=m_TTI[TranTable].tinfo[n].OutZd;
|
||
break;
|
||
}
|
||
}
|
||
QString tempName=m_TTI[TranTable].tinfo[n].InZd;
|
||
QStringList tempNameList;
|
||
outinf[n].Sep="";
|
||
int varnum=1;
|
||
outinf[n].CodeType=0;
|
||
if(tempName.indexOf("+")>0||tempName.indexOf("-")>0)
|
||
{
|
||
if(tempName.indexOf("+")>0)outinf[n].Sep="+";
|
||
if(tempName.indexOf("-")>0)outinf[n].Sep="-";
|
||
tempNameList=tempName.split(outinf[n].Sep);
|
||
varnum=tempNameList.count();
|
||
}
|
||
if(varnum==1)strcpy(outinf[n].InName1,tempName.toStdString().c_str());
|
||
else
|
||
{
|
||
strcpy(outinf[n].InName1,tempNameList[0].toStdString().c_str());
|
||
strcpy(outinf[n].InName2,tempNameList[1].toStdString().c_str());
|
||
}
|
||
}
|
||
}
|
||
//
|
||
DEFAULTTABLE WisTableTran::SetTableInf(QString TableName,QString TableHzName,int num,QStringList ZdName,QStringList HzName,QStringList ZdUnit,QStringList ZdType,QStringList ZdLen,QStringList ZdRes,QString *menu)
|
||
{
|
||
DEFAULTTABLE DefTable;
|
||
memset(&DefTable.tinfo,0,sizeof(DefTable.tinfo));
|
||
DefTable.TableName=TableName;
|
||
DefTable.TableAliasName=TableHzName;
|
||
DefTable.ZdNum=num;
|
||
for(int i=0;i<num;i++)
|
||
{
|
||
strcpy(DefTable.tinfo[i].Name,ZdName[i].toStdString().c_str());
|
||
strcpy(DefTable.tinfo[i].HZName,HzName[i].toStdString().c_str());
|
||
strcpy(DefTable.tinfo[i].Unit,ZdUnit[i].toStdString().c_str());
|
||
strcpy(DefTable.tinfo[i].HZUnit,"");
|
||
DefTable.tinfo[i].RepCode=ZdType[i].toInt();
|
||
DefTable.tinfo[i].CodeLength=ZdLen[i].toInt();
|
||
|
||
DefTable.tinfo[i].Sequence=0;//2是否连续控制
|
||
DefTable.tinfo[i].Start=1;//4字段起始值
|
||
DefTable.tinfo[i].End=99999;//4字段起始值
|
||
DefTable.tinfo[i].Rlev=1;//4字段采样间隔
|
||
DefTable.tinfo[i].SamplePoint=1;//4一个阵列的横向采样样本点数
|
||
DefTable.tinfo[i].ArrayNum=1;//4阵列数
|
||
DefTable.tinfo[i].Vmin=-99999;//4字段最大值
|
||
DefTable.tinfo[i].Vmax=99999;//4字段最小值
|
||
DefTable.tinfo[i].DefVal=9999;//4缺省值
|
||
*(DWORD *)&DefTable.tinfo[i].Reserved=ZdRes[i].toInt();
|
||
if(menu)DefTable.menuinfo[i]=menu[i];
|
||
}
|
||
return DefTable;
|
||
}
|
||
|
||
void WisTableTran::InitDefauleTable(bool IsWis)
|
||
{
|
||
QString ConfigName = ::GetConfPath();
|
||
if(IsWis)ConfigName+="wis_deftable.inf";
|
||
else ConfigName+="DefauleTable.ini";
|
||
QFile InFile(ConfigName);
|
||
if( !InFile.open(QIODevice::ReadOnly ) )
|
||
{
|
||
QMessageBox::warning(NULL,"提示","打开缺省表配置文件"+ConfigName+"错误");
|
||
return ;
|
||
}
|
||
QTextStream textstream( &InFile );
|
||
QString line;
|
||
|
||
QString TableName,TableAliasName;
|
||
//int ZdNum;
|
||
QStringList ZdName,HzName,ZdUnit,ZdLen,ZdType,ZdRes,DataList;
|
||
|
||
while(!textstream.atEnd())
|
||
{
|
||
line=textstream.readLine();line=line.toUpper();
|
||
while(line.indexOf("#")>=0)
|
||
{
|
||
line=line.replace("#","");
|
||
DataList=GetStringList(line,1,1,1,1,1);
|
||
if(DataList.count()<2)continue;
|
||
TableName=DataList.at(0);
|
||
TableAliasName=DataList.at(1);
|
||
for(int m=0;m<m_TranNum;m++)
|
||
{
|
||
QString TTName;
|
||
if(IsWis)TTName=m_TTI[m].InName;
|
||
else TTName=m_TTI[m].OutName;
|
||
if(TableName==TTName)
|
||
{
|
||
while(!textstream.atEnd())
|
||
{
|
||
line=textstream.readLine();
|
||
if(line.indexOf(",")>=0)continue;//枚举行
|
||
line=line.toUpper();
|
||
if(line.indexOf("#")>=0)
|
||
{
|
||
break;
|
||
}
|
||
DataList=GetStringList(line,1,1,1,1,1);
|
||
if(DataList.count()<5)continue;
|
||
|
||
ZdName.append(DataList.at(0));HzName.append(DataList.at(1));ZdUnit.append(DataList.at(2));
|
||
|
||
bool IsZdType=0;
|
||
for(int j=0;j<11;j++)
|
||
{
|
||
if(DataList.at(3)==QString(Rep_STR[j]))
|
||
{
|
||
ZdType.append(QString::number(j+1));
|
||
IsZdType=1;
|
||
break;
|
||
}
|
||
}
|
||
if(!IsZdType)QMessageBox::warning(NULL,"提示","defauletable.ini文件中表"+TableName+"的字段名"+DataList.at(0)+"类型不正确");
|
||
ZdLen.append(DataList.at(4));
|
||
if(DataList.count()>5)ZdRes.append(DataList.at(5));
|
||
else ZdRes.append("0");
|
||
}
|
||
DEFAULTTABLE DefTable=SetTableInf(TableName,TableAliasName,ZdName.count(),ZdName,HzName,ZdUnit,ZdType,ZdLen,ZdRes,NULL);
|
||
if(IsWis)
|
||
{
|
||
//WisDefTable[m].tinfo=new Slf_OBJECT_FIELD[DefTable.ZdNum+1];
|
||
memcpy(&WisDefTable[m],&DefTable,sizeof(DefTable));
|
||
}
|
||
else
|
||
{
|
||
//SlfDefTable[m].tinfo=new Slf_OBJECT_FIELD[DefTable.ZdNum+1];
|
||
memcpy(&SlfDefTable[m],&DefTable,sizeof(DefTable));
|
||
}
|
||
ZdName.clear(),ZdLen.clear(),ZdType.clear(),HzName.clear();ZdUnit.clear();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
InFile.close();
|
||
return ;
|
||
}
|