Unicode C
Unicode C
Implement Preprocessor #include with StringBuilder
Demonstrates how to implement #include with a Chilkat StringBuilder.Chilkat Unicode C Downloads
#include <C_CkStringBuilderW.h>
void ChilkatSample(void)
{
HCkStringBuilderW sbSrc;
const wchar_t *filePath;
HCkStringBuilderW sbIncludeFile;
// First build a string that has a preprocessor include
sbSrc = CkStringBuilderW_Create();
CkStringBuilderW_Append(sbSrc,L"1\r\n2\r\n3\r\n");
CkStringBuilderW_Append(sbSrc,L"#include <qa_data/txt/helloWorld.txt>\r\n");
CkStringBuilderW_Append(sbSrc,L"4\r\n5\r\n");
wprintf(L"%s\n",CkStringBuilderW_getAsString(sbSrc));
// sbSrc contains:
// 1
// 2
// 3
// #include <qa_data/txt/helloWorld.txt>
// 4
// 5
// The qa_data/txt/helloWorld.txt file contains "Hello World!"
filePath = CkStringBuilderW_getAfterBetween(sbSrc,L"#include",L"<",L">");
if (CkStringBuilderW_getLastMethodSuccess(sbSrc) != TRUE) {
wprintf(L"No #include's found.\n");
CkStringBuilderW_Dispose(sbSrc);
return;
}
wprintf(L"filePath: %s\n",filePath);
// Load the contents of the filePath
sbIncludeFile = CkStringBuilderW_Create();
CkStringBuilderW_LoadFile(sbIncludeFile,filePath,L"utf-8");
// Replace the first occurrence of #include <...> line with the contents of the include file.
CkStringBuilderW_ReplaceAllBetween(sbSrc,L"#include",L">",CkStringBuilderW_getAsString(sbIncludeFile),TRUE);
wprintf(L"%s\n",CkStringBuilderW_getAsString(sbSrc));
// sbSrce now contains:
// 1
// 2
// 3
// Hello World!
// 4
// 5
CkStringBuilderW_Dispose(sbSrc);
CkStringBuilderW_Dispose(sbIncludeFile);
}