有这样几行
C:\Program Files\Realtek\Audio\HDA\RAVCpl64.exe -s
在注册表项中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
现在我想把绝对路径和参数从行中分离出来。
如果行是
C:\Space Dir\Dot.Dir\Sample Name.Dot.exe param path."C:\Space Dir\Dot.Dir\Sample Name.Dot.exe"
我应该使用哪个分隔符来处理这一行?有没有什么Windows API函数可以解决这个问题?
您需要的函数在您可以在 Windows 中使用的标准 C 库中。
char theDrive[5],thePath[MAX_PATH],theFilename[MAX_PATH],theExtension[MAX_PATH];
_splitpath(theSCTDataFilename,theDrive,thePath,theFilename,theExtension);
您还可以使用像这样的更通用的标记化函数,它接受任何字符串、一个字符和一个 CStringArray..
void tokenizeString(CString theString, TCHAR theToken, CStringArray *theParameters)
{
CString temp = "";
int i = 0;
for(i = 0; i < theString.GetLength(); i++ )
{
if (theString.GetAt(i) != theToken)
{
temp += theString.GetAt(i);
}
else
{
theParameters->Add(temp);
temp = "";
}
if(i == theString.GetLength()-1)
theParameters->Add(temp);
}
}
CStringArray thePathParts;
tokenizeString("your\complex\path\of\strings\separated\by\slashes",'/',&thePathParts);
这将为您提供一个 CString 数组(CStringArray 对象),其中包含输入字符串的每个部分。您可以使用此函数解析主要 block ,然后解析次要 block ,只要您知道要拆分字符串的分隔符即可。
我是一名优秀的程序员,十分优秀!