Sample code for 30+ languages & platforms
Objective-C

Implement Preprocessor #include with StringBuilder

Demonstrates how to implement #include with a Chilkat StringBuilder.

Chilkat Objective-C Downloads

Objective-C
#import <CkoStringBuilder.h>
#import <NSString.h>

//  First build a string that has a preprocessor include
CkoStringBuilder *sbSrc = [[CkoStringBuilder alloc] init];
[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"];

NSLog(@"%@",[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!"

NSString *filePath = [sbSrc GetAfterBetween: @"#include" beginMark: @"<" endMark: @">"];
if (sbSrc.LastMethodSuccess != YES) {
    NSLog(@"%@",@"No #include's found.");
    return;
}

NSLog(@"%@%@",@"filePath: ",filePath);

//  Load the contents of the filePath
CkoStringBuilder *sbIncludeFile = [[CkoStringBuilder alloc] init];
[sbIncludeFile LoadFile: filePath charset: @"utf-8"];

//  Replace the first occurrence of #include <...> line with the contents of the include file.
[sbSrc ReplaceAllBetween: @"#include" endMark: @">" replacement: [sbIncludeFile GetAsString] replaceMarks: YES];

NSLog(@"%@",[sbSrc GetAsString]);

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