Sample code for 30+ languages & platforms
Go

Implement Preprocessor #include with StringBuilder

Demonstrates how to implement #include with a Chilkat StringBuilder.

Chilkat Go Downloads

Go
    // First build a string that has a preprocessor include
    sbSrc := chilkat.NewStringBuilder()
    sbSrc.Append("1\r\n2\r\n3\r\n")
    sbSrc.Append("#include <qa_data/txt/helloWorld.txt>\r\n")
    sbSrc.Append("4\r\n5\r\n")

    fmt.Println(*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!"

    filePath := sbSrc.GetAfterBetween("#include","<",">")
    if sbSrc.LastMethodSuccess() != true {
        fmt.Println("No #include's found.")
        sbSrc.DisposeStringBuilder()
        return
    }

    fmt.Println("filePath: ", *filePath)

    // Load the contents of the filePath
    sbIncludeFile := chilkat.NewStringBuilder()
    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)

    fmt.Println(*sbSrc.GetAsString())

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

    sbSrc.DisposeStringBuilder()
    sbIncludeFile.DisposeStringBuilder()