Objective - C / Cocoa应用程序文本文件解析

时间:2013-09-16 22:42:17

标签: objective-c cocoa parsing

我正在尝试为Mac OS X创建一个cocoa应用程序,其中用户选择一个文本文件,并将文本文件的列放入GUI的表中。文本文件将始终具有类似的格式。

基本上,我非常感谢(1)我如何解析文本文件中的数据,然后(2)我如何安排数据进行显示和/或未来的操纵。

例如,文本文件的格式可以是:

c18                 10706      463029             A
c2                  10841      91075              G
c16                 11164      .                  A
c19                 11257      41553              C 

我感谢任何帮助!我熟悉如何在MATLAB甚至bash脚本中执行此操作,但我只是难以通过X-Code / Objective-C / Cocoa的“初学者”阶段。谢谢!

1 个答案:

答案 0 :(得分:0)

用于解析,例如:

NSScanner *scanner = [[NSScanner alloc] initWithString:...];
NSMutableArray *rows = [NSMutableArray array];
NSArray *columnNames = @[@"one", @"two", @"three", @"four"];
NSCharacterSet *whiteSpaceSet = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSCharacterSet *allowedSet = [whiteSpaceSet invertedSet];

while (![scanner isAtEnd) {

    NSMutableDictionary *row = [NSMutableDictionary dictionary];

    for (NSString *columnName in columnNames) {

         NSString *content = nil;

        [scanner scanUpToCharactersFromSet:allowedSet intoString:&content];

        [row setObject:content forKey:columnName];

        [scanner scanUpToCharactersFromSet:whiteSpaceSet intoString:nil];
    }

    [rows addObject:row];
}

显然你可以更改列名。

(徒手打印所以检查名称和格式)。