Sample code for 30+ languages & platforms
B4X

Implement Preprocessor #include with StringBuilder

Demonstrates how to implement #include with a Chilkat StringBuilder.

Chilkat B4X Downloads

B4X
'  First build a string that has a preprocessor include
Dim sbSrc As ChilkatStringBuilder
sbSrc.Initialize
sbSrc.Append("1" & Chr(13) & Chr(10) & "2" & Chr(13) & Chr(10) & "3" & Chr(13) & Chr(10))
sbSrc.Append("#include <qa_data/txt/helloWorld.txt>" & Chr(13) & Chr(10))
sbSrc.Append("4" & Chr(13) & Chr(10) & "5" & Chr(13) & Chr(10))

Log(sbSrc.GetAsString)

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


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


Dim filePath As String = sbSrc.GetAfterBetween("#include", "<", ">")
If sbSrc.LastMethodSuccess <> True Then
    Log("No #include's found.")
    Return
End If


Log("filePath: " & filePath)

'  Load the contents of the filePath
Dim sbIncludeFile As ChilkatStringBuilder
sbIncludeFile.Initialize
sbIncludeFile.LoadFile(filePath, "utf-8")

'  Replace the first occurrence of #include <...> line with the contents of the include file.
sbSrc.ReplaceAllBetween("#include", ">", sbIncludeFile.GetAsString, True)

Log(sbSrc.GetAsString)

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