本文整理汇总了C++中CharArray::GetData方法的典型用法代码示例。如果您正苦于以下问题:C++ CharArray::GetData方法的具体用法?C++ CharArray::GetData怎么用?C++ CharArray::GetData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CharArray
的用法示例。
在下文中一共展示了CharArray::GetData方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ParseCode
CString Template::ParseCode(LPCTSTR codePtr, LPCTSTR bolPtr, WWhizTemplate* file)
{
// Build our master string.
CharArray buffer;
// Remove leading whitespace.
while (*codePtr != 0 && *codePtr != '\n' && *codePtr == ' ')
{
codePtr++;
}
TokenHelper helper;
helper.m_tabSize = 4;
helper.m_outBolPtr = bolPtr;
helper.m_file = file;
helper.m_helper = WNEW TemplateHelper(NULL);
// Get the parameter.
while (*codePtr != 0)
{
if (*codePtr == '@' && *(codePtr + 1) == '@')
{
CString out;
if (ParseTag(codePtr, out, &helper))
{
// Move the output string into the buffer.
for (int i = 0; i < out.GetLength(); i++)
buffer.Add(out[i]);
}
}
else
{
// Copy it straight.
buffer.Add(*codePtr++);
}
}
buffer.Add(0);
delete helper.m_helper;
return CString(buffer.GetData());
}
示例2: ParseToken
//.........这里部分代码省略.........
// Build our master string.
CharArray buffer;
// Remove leading whitespace.
while (*codePtr != 0 && *codePtr != '\n' && *codePtr == ' ')
{
codePtr++;
}
// Get the parameter.
bool inQuote = false;
if (*codePtr == '"')
{
inQuote = true;
codePtr++;
}
while (*codePtr != 0)
{
if (*codePtr == '\n')
{
if (inQuote)
{
CString err;
err.Format("Unexpected end of line while parsing a quoted string.");
throw TException(TException::UNEXPECTED_EOL, err);
}
break;
}
else if (*codePtr == '%')
{
switch (*(codePtr + 1))
{
case '"':
buffer.Add('"');
codePtr += 2;
break;
case '@':
buffer.Add('@');
codePtr += 2;
break;
case '%':
buffer.Add('%');
codePtr += 2;
break;
}
}
else if (*codePtr == '"')
{
if (inQuote)
{
codePtr++;
break;
}
else
{
buffer.Add(*codePtr++);
}
}
else if (*codePtr == '\\')
{
if (inQuote)
{
codePtr++;
}
buffer.Add(*codePtr++);
}
else if (*codePtr == ' ')
{
if (inQuote)
{
buffer.Add(*codePtr++);
}
else
{
codePtr++;
break;
}
}
else if (helper && *codePtr == '@' && *(codePtr + 1) == '@')
{
CString out;
if (ParseTag(codePtr, out, helper))
{
// Move the output string into the buffer.
for (int i = 0; i < out.GetLength(); i++)
buffer.Add(out[i]);
}
}
else
{
// Copy it straight.
buffer.Add(*codePtr++);
}
}
buffer.Add(0);
return CString(buffer.GetData());
}