📄 midreader.cpp
字号:
#include "StdAfx.h"
#include "MidReader.h"
CMidReader::CMidReader(void)
{
m_pObject=NULL;
m_nObjectLen=0;
}
CMidReader::~CMidReader(void)
{
}
long CMidReader::GetObjectLength(const char *szPointFile)
{
long lLen=0;
CStdioFile file;
if(file.Open(szPointFile,CFile::modeRead|CFile::shareDenyNone))
{
CString strTmp=_T("");
while(file.ReadString(strTmp))
if(strTmp!=_T("")) lLen++;
file.Close();
}
return lLen;
}
long CMidReader::ReadPoint(const char *szPointFile,MemSearchObject *pObject,int nObjectLen)
{
long lLen=0;
CStdioFile file;
if(file.Open(szPointFile,CFile::modeRead|CFile::shareDenyNone))
{
CString strTmp=_T("");
char szTmp1[32],szTmp2[32];
while(file.ReadString(strTmp))
{
if(strTmp!=_T(""))
{
if(lLen>=nObjectLen) break;
//39.9062,116.388,"1"
sscanf(strTmp,_T("%[^,],%[^,],\"%d\""),
szTmp1,
szTmp2,
&pObject[lLen].m_OwnerObject.id);
pObject[lLen].m_OwnerObject.x=atof(szTmp1);
pObject[lLen].m_OwnerObject.y=atof(szTmp2);
lLen++;
}
}
file.Close();
}
m_pObject=pObject;
m_nObjectLen=lLen;
return lLen;
}
long CMidReader::ReadLine(const char *szLineFile)
{
long lLen=0;
CStdioFile file;
if(file.Open(szLineFile,CFile::modeRead|CFile::shareDenyNone))
{
long id1,id2,p3;//p3暂不使用
CString strTmp=_T("");
while(file.ReadString(strTmp))
{
if(strTmp!=_T(""))
{
//313,236,0
sscanf(strTmp,_T("%d,%d,%d"),&id1,&id2,&p3);
ConnectPoint(id1,id2);
lLen++;
}
}
file.Close();
}
return lLen;
}
bool CMidReader::ConnectPoint(long id1,long id2)
{
if(m_pObject==NULL || m_nObjectLen<=0) return false;
MemSearchObject *p1=NULL,*p2=NULL;
for(long i=0;i<m_nObjectLen;i++)
{
if(m_pObject[i].m_OwnerObject.id==id1)
p1=&m_pObject[i];
else
if(m_pObject[i].m_OwnerObject.id==id2)
p2=&m_pObject[i];
if(p1!=NULL && p2!=NULL)
break;
}
if(p1!=NULL && p2!=NULL)
{
CDijkstraSearch::ConnectObject(p1,p2,true);
return true;
}
return false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -