Sample code for 30+ languages & platforms
Swift

Implement Preprocessor #include with StringBuilder

Demonstrates how to implement #include with a Chilkat StringBuilder.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    // First build a string that has a preprocessor include
    let sbSrc = CkoStringBuilder()!
    sbSrc.append(value: "1\r\n2\r\n3\r\n")
    sbSrc.append(value: "#include <qa_data/txt/helloWorld.txt>\r\n")
    sbSrc.append(value: "4\r\n5\r\n")

    print("\(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!"

    var filePath: String? = sbSrc.get(afterBetween: "#include", beginMark: "<", endMark: ">")
    if sbSrc.lastMethodSuccess != true {
        print("No #include's found.")
        return
    }

    print("filePath: \(filePath!)")

    // Load the contents of the filePath
    let sbIncludeFile = CkoStringBuilder()!
    sbIncludeFile.loadFile(path: filePath, charset: "utf-8")

    // Replace the first occurrence of #include <...> line with the contents of the include file.
    sbSrc.replaceAllBetween(beginMark: "#include", endMark: ">", replacement: sbIncludeFile.getAsString(), replaceMarks: true)

    print("\(sbSrc.getAsString()!)")

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

}