Sample code for 30+ languages & platforms
Lianja

Implement Preprocessor #include with StringBuilder

Demonstrates how to implement #include with a Chilkat StringBuilder.

Chilkat Lianja Downloads

Lianja
// First build a string that has a preprocessor include
loSbSrc = createobject("CkStringBuilder")
loSbSrc.Append("1" + Chr(13) + Chr(10) + "2" + Chr(13) + Chr(10) + "3" + Chr(13) + Chr(10))
loSbSrc.Append("#include <qa_data/txt/helloWorld.txt>" + Chr(13) + Chr(10))
loSbSrc.Append("4" + Chr(13) + Chr(10) + "5" + Chr(13) + Chr(10))

? loSbSrc.GetAsString()

// sbSrc contains:
// 	1
// 	2
// 	3
// 	#include <qa_data/txt/helloWorld.txt>
// 	4
// 	5

// The qa_data/txt/helloWorld.txt file contains "Hello World!"

lcFilePath = loSbSrc.GetAfterBetween("#include","<",">")
if (loSbSrc.LastMethodSuccess <> .T.) then
    ? "No #include's found."
    release loSbSrc
    return
endif

? "filePath: " + lcFilePath

// Load the contents of the filePath
loSbIncludeFile = createobject("CkStringBuilder")
loSbIncludeFile.LoadFile(lcFilePath,"utf-8")

// Replace the first occurrence of #include <...> line with the contents of the include file.
loSbSrc.ReplaceAllBetween("#include",">",loSbIncludeFile.GetAsString(),.T.)

? loSbSrc.GetAsString()

// sbSrce now contains:
// 	1
// 	2
// 	3
// 	Hello World!
// 	4
// 	5


release loSbSrc
release loSbIncludeFile