一、以空格为判断
注:0x00  ==0x00是不可见字符-,所以不能用广西方式 定稿。必须用二进制方式 打开文件后才能写入。否则,0x00被认为是字符串结束标志。

调用 :
   CStringArray arr;
 GetCmdLinePara(arr);
值获取:arr.GetAt(0);……
void CUpdateInstall::GetCmdLinePara(CStringArray &paraArr)
{
 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);

posted on 2006-06-20 17:11  泡泡  阅读(852)  评论(0编辑  收藏  举报