1

などの行があります。

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 関数はありますか?

4

1 に答える 1

0

必要な関数は、Windows で使用できる標準 C ライブラリにあります。

char theDrive[5],thePath[MAX_PATH],theFilename[MAX_PATH],theExtension[MAX_PATH];

_splitpath(theSCTDataFilename,theDrive,thePath,theFilename,theExtension);

このような、任意の文字列、char、および 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 オブジェクト) の配列が得られます。この関数を使用して、文字列を分割する区切り文字がわかっている限り、主要なチャンクを解析してからマイナーなチャンクを解析できます。

于 2012-09-15T03:18:28.803 に答える