读取省市区文件,并对文件内的数据进行处理和存储

来源:互联网 发布:脑电数据.归一化 编辑:程序博客网 时间:2024/05/01 20:32

读取省市区文件,并对文件内的数据进行处理和存储

area.txt文件内的部分内容

北京 1

 北京市 1

   西城区 1

   东城区 2

   崇文区 3

   宣武区 4

   朝阳区 5

   丰台区 6

   石景山区 7

   海淀区 8

   门头沟区 9

   房山区 10

   通州区 11

   顺义区 12

   昌平区 13

   大兴区 14

   怀柔区 15

   平谷区 16

   密云区 17

   延庆区 18

天津 2

 天津市 2

   和平区 19

   河东区 20

   河西区 21

   南开区 22

   河北区 23

   红桥区 24

   塘沽区 25

   汉沽区 26

   大港区 27

   东丽区 28

   西青区 29

   津南区 30

   北辰区 31

   武清区 32

   宝坻区 33

   宁河县 34

   静海县 35

   蓟县 36


省市区的存储视图:

country数组:proDic1,proDic2,.....

              |

                       proName(省名),citys(数组):cityDic1,cityDic2,...
                                                                     |
                                                              cityName(市名),zones(数组):zoneDic1,zoneDic2,....
                                                                                                               |
                                                                                                           zoneName(区名)
country(国家数组),里存放的是各个省的字典; 
每个省字典里存放一个本省的名字,和本省管辖的市数组; 市数组里存放的是各个市的字典.
每个市字典里存放一个本市的名字,和本市管辖的区数组; 区数组里存放的是各个区的字典.
每个区字典里存放一个本区的名字.

        //文件地址        NSString *path = @"/Users/dllo/Desktop/OC作业/OC06_字典,数组嵌套练习/OC06_字典,数组嵌套练习/area.txt";        //读取文件字符        NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];        //分割成存储每行的数组        NSArray *lineArray = [str componentsSeparatedByString:@"\n"];        //创建一个国家数组,用来存储省        NSMutableArray *country = [NSMutableArray array];        //遍历每行字符串        for (NSString *line in lineArray) {            //判断当前行是否为省            if (![line hasPrefix:@" "]) {       //省                //创建省字典 (就两键值对 proName<->... citys<->array)                NSMutableDictionary *proDic = [NSMutableDictionary dictionary];                //向省字典内添加键值对 proName                [proDic setObject:line forKey:@"proName"];                //为该省创建市数组, 并加入 citys                NSMutableArray *citysArray = [NSMutableArray array];                [proDic setObject:citysArray forKey:@"citys"];                //将该省字典添加到国家数组中                [country addObject:proDic];            }            //以两个空格开头, 并且不以三个空格开头的是市            else if ([line hasPrefix:@"  "] && ![line hasPrefix:@"   "]) {                //创建一个市的字典 (就俩键值对 cityName<->... zones<->array)                NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];                //向市字典内添加键值对: cityName                [cityDic setObject:line forKey:@"cityName"];                //为市创建区数组, 并加入 zones                NSMutableArray *zonesArray = [NSMutableArray array];                [cityDic setObject:zonesArray forKey:@"zones"];                                //获得当前省字典!!!                NSMutableDictionary *proDic = [country lastObject];                                //将该市字典添加到, 省字典的 市数组中                [[proDic objectForKey:@"citys"] addObject:cityDic];            }            else {  //区                //创建区字典 (就一个键值对 zoneName<->...)                NSMutableDictionary *zoneDic = [NSMutableDictionary dictionary];                //向区字典内添加键值对                [zoneDic setObject:line forKey:@"zoneName"];                                //找到最后一个省的市数组                NSMutableDictionary *proDic = [country lastObject];                NSMutableArray *citysArray = [proDic objectForKey:@"citys"];                                //找到最后一个市的区数组, 并将该区加入                NSMutableDictionary *cityDic = [citysArray lastObject];                [[cityDic objectForKey:@"zones"] addObject:zoneDic];            }        }                //打印省市区        for (NSMutableDictionary *proDic in country) {            //打印省名            NSLog(@"pro:%@", [proDic objectForKey:@"proName"]);            //遍历该省下的市数组            for (NSMutableDictionary *cityDic in [proDic objectForKey:@"citys"]) {                //打印市名                NSLog(@"city:  %@", [cityDic objectForKey:@"cityName"]);                //遍历该市下的区数组                for (NSMutableDictionary *zoneDic in [cityDic objectForKey:@"zones"]) {                    //打印区名                    NSLog(@"zone:    %@", [zoneDic objectForKey:@"zoneName"]);                }            }        }


0 0
原创粉丝点击