如何从 Objective-C 中的文本文件解析坐标?
How to parse coordinates from a text file in Objective-C?
我有一个名为 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,
我想解析整个文件,并将第一个坐标添加到名为纬度的整型变量,将第二个坐标添加到名为经度的整型变量。然后将两个变量打印到控制台并为每一行执行此操作 separately.I 知道我应该使用循环,但我不确定如何做到这一点,请大家帮帮我!
编辑:
到目前为止,这是我的代码:
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]);
我知道如何将整个文本读入 latitude 变量,而不仅仅是第一部分,而不是逐行读入。读取的文本也存储为字符串,所以我不确定如何将它们转换成双精度数。
PS: 很抱歉这个菜鸟问题!!:/
假设文本文件在您的包中,您可以将文本存储在 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);
}
我有一个名为 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,
我想解析整个文件,并将第一个坐标添加到名为纬度的整型变量,将第二个坐标添加到名为经度的整型变量。然后将两个变量打印到控制台并为每一行执行此操作 separately.I 知道我应该使用循环,但我不确定如何做到这一点,请大家帮帮我!
编辑:
到目前为止,这是我的代码:
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]);
我知道如何将整个文本读入 latitude 变量,而不仅仅是第一部分,而不是逐行读入。读取的文本也存储为字符串,所以我不确定如何将它们转换成双精度数。
PS: 很抱歉这个菜鸟问题!!:/
假设文本文件在您的包中,您可以将文本存储在 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);
}