Как разделить путь к файлу и параметру?

Есть такие строки как

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 для решения этой проблемы?

1

Решение

Функция, которую вы хотите, находится в стандартной C-библиотеке, которую вы можете использовать в Windows.

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), который содержит каждый раздел входной строки. Вы можете использовать эту функцию для анализа главных и младших кусков, если вы знаете разделитель, на который хотите разбить строку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]