AfxExtractSubString
Essa função global pode ser usada para extrair uma subcadeia de caracteres de uma cadeia de caracteres de origem especificada.
BOOL AFXAPI AfxExtractSubString (
CString& rString,
LPCTSTR lpszFullString,
int iSubString,
TCHAR chSep = '\n'
);
Parâmetros
rString
- Referência a um objeto de CString que recebe uma subcadeia de caracteres individual.
lpszFullString
- Cadeia de caracteres que contém o texto completo da cadeia de caracteres para extrair do.
iSubString
- Índice de base zero da subcadeia de caracteres a extração de lpszFullString.
chSep
- Caractere de separador usado para limitar subcadeia de caracteres.
Valor de retorno
Verdadeiro se a função extraiu com êxito a subcadeia de caracteres no índice fornecido; caso contrário, Falso.
Comentários
Essa função é útil para extrair vários subcadeia de caracteres de uma cadeia de caracteres de origem quando um único caractere conhecido separa cada subcadeia de caracteres. Essa função pesquisa desde o início do parâmetro de lpszFullString cada vez que é chamada.
Esta função retornará FALSE se ou lpszFullString está definido como nulo ou a função atingir o final de lpszFullString sem localizar iSubString+1 ocorrências de caractere do separador especificado. O parâmetro de rString não será alterado do seu valor original se lpszFullString foi definido como nulo; caso contrário, o parâmetro de rString é definido como a cadeia de caracteres vazia se a subcadeia de caracteres não pôde ser extraídos para o índice especificado.
Exemplo
// The following example extracts a series of name, value pairs from a
// given source string:
// Input string consisting of a number of name, value pairs
LPCTSTR lpszSource = _T("\"Name\"=\"John Smith\"\n")
_T("\"Company\"=\"Contoso, Ltd\"\n\"Salary\"=\"25,000\"");
CString strNameValue; // an individual name, value pair
int i = 0; // substring index to extract
while (AfxExtractSubString(strNameValue, lpszSource, i))
{
// Prepare to move to the next substring
i++;
CString strName, strValue; // individual name and value elements
// Attempt to extract the name element from the pair
if (!AfxExtractSubString(strName, strNameValue, 0, _T('=')))
{
// Pass an error message to the debugger for display
OutputDebugString(_T("Error extracting name\r\n"));
continue;
}
// Attempt to extract the value element from the pair
if (!AfxExtractSubString(strValue, strNameValue, 1, _T('=')))
{
// Pass an error message to the debugger for display
OutputDebugString(_T("Error extracting value element\r\n"));
continue;
}
// Pass the name, value pair to the debugger for display
CString strOutput = strName + _T(" equals ") + strValue + _T("\r\n");
OutputDebugString(strOutput);
}
Requisitos
Cabeçalho: <afxwin.h>