如何解析Objective-C中文本文件的坐标?

时间:2015-01-14 23:21:26

标签: ios objective-c parsing coordinates

我有一个名为coordinates.txt的文本文件,里面有一些坐标(令人惊讶)。格式如下:

20.580070,47.775910, 
20.582950,47.776640, 
20.585660,47.777460, 
20.587280,47.777960, 
20.588280,47.778300, 
20.621870,47.789710,

我想解析整个文件,并将第一个坐标添加到名为latitude的int变量,将第二个坐标添加到名为longitude的int变量。然后将两个变量打印到控制台并分别为每一行执行此操作。我知道我应该使用循环,但我不确定你们怎么可以帮助我!

修改

到目前为止,这是我的代码:

        NSString *latitude = @"0";
        NSString *longitude = @"0";
        NSString* filePath = @"/Users/Balazs/coordinates.txt";



        NSString *entireFileInString = [NSString stringWithContentsOfFile:filePath];
        NSArray *lines = [entireFileInString componentsSeparatedByString:@","];
        for (NSString *line in lines) {
                latitude = line;
        }
        NSLog([NSString stringWithFormat:@"%@",latitude]);

我知道如何将整个文本读入纬度变量,但不仅仅是第一部分,而不是逐行。此外,读取的文本存储为字符串,因此我不确定如何将它们转换为双打..

PS:对于noob问题抱歉!!:/

1 个答案:

答案 0 :(得分:2)

假设您的捆绑包中有文本文件,您可以将文本存储在NSString中,如下所示:

NSString* path = [[NSBundle mainBundle] pathForResource:@"coordinates" 
                                                 ofType:@"txt"];

NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];

然后使用componentsSeparatedByString:将文本分隔为行,使用循环遍历每一行,然后在打印前使用componentsSeparatedByString:将每行再次分隔为其经度和纬度值。例如:

NSArray *lines = [content componentsSeparatedByString:@"\n"];
for (NSString *line in lines) {
    NSArray *values = [line componentsSeparatedByString:@","];
    double latitude = [[values objectAtIndex:0] doubleValue];
    double longitude = [[values objectAtIndex:1] doubleValue];
    NSLog(@"%f, %f", latitude, longitude);
}