一、以空格为判断
注:0x00 ==0x00是不可见字符-,所以不能用广西方式 定稿。必须用二进制方式 打开文件后才能写入。否则,0x00被认为是字符串结束标志。
调用 :
CStringArray arr;
GetCmdLinePara(arr);
值获取:arr.GetAt(0);……
void CUpdateInstall::GetCmdLinePara(CStringArray ¶Arr)
{
paraArr.RemoveAll();
//CString strLine=::AfxGetApp()->m_lpCmdLine;
CString strLine;
strLine = "updateLobby 大厅安装程序4.0 http://192.168.0.2/update/updateLobby.ini";
if(strLine.IsEmpty())
return;
strLine.TrimLeft();
strLine.TrimRight();
int nLength=strLine.GetLength();
char *buf=new char[nLength+1];
strcpy(buf,strLine);
char *p=buf;
for(int i=0;i<128;i++)
{
if(buf[i]==0x20)//空格
{
buf[i]=0x00;
paraArr.Add(p);
i++;
p=buf+i;
}
if(buf[i]==0x00)//十进制的0
{
paraArr.Add(p);
break;
}
}
delete buf;
}
二。字符串分解
注:分解后,得到strSection = updateLobby
说明:m_strIniName.Find(m_strIniPath.GetAt(p)) 找到这个字符如('/')在字符串中的 第几个(如0 1 2 …
int p;
CString m_strIniPath = "./temp/updateLobby.ini"
CString m_strIniName = m_strIniPath;
for(int i=0;i<m_strIniPath.GetLength();i++)
{
if(m_strIniPath.GetAt(i)=='/')
{
p=i;
m_strIniName = m_strIniName.Right(m_strIniName.GetLength() - m_strIniName.Find(m_strIniPath.GetAt(p))-1);//取得它右边的字符串如得:updateLobby.ini
}
m_strSection =m_strIniName.Left(m_strIniName.Find("."));
}
三。
如 /temp/load/a.ini 分解得到a.ini
int n=strFile.ReverseFind('/');
str2 = strFile.Right(strFile.GetLength()-n-1);