Sample code for 30+ languages & platforms
Visual FoxPro

Implement Preprocessor #include with StringBuilder

Demonstrates how to implement #include with a Chilkat StringBuilder.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL loSbSrc
LOCAL lcFilePath
LOCAL loSbIncludeFile

* First build a string that has a preprocessor include
loSbSrc = CreateObject('Chilkat.StringBuilder')
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 <> 1) THEN
    ? "No #include's found."
    RELEASE loSbSrc
    CANCEL
ENDIF

? "filePath: " + lcFilePath

* Load the contents of the filePath
loSbIncludeFile = CreateObject('Chilkat.StringBuilder')
loSbIncludeFile.LoadFile(lcFilePath,"utf-8")

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

? loSbSrc.GetAsString()

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

RELEASE loSbSrc
RELEASE loSbIncludeFile