[iOS 读取Txt] 从文件读取数据并做轮询

今天有个功能要求每次传入不同数据 等一轮过后 重新轮询
手头上现有一份小文件 txt格式
这里写图片描述
记录一下实现的方法

1.由于txt文件格式规整 所以 在读取文档以后 使用 \n 换行来拆分字符串
2.使用 i%4 = 1 来获取特定行的数据

.h文件如下

//
//  LFFStringarr.h
//  LFFStringArray
//
//  Created by Lff on 16/10/14.
//  Copyright © 2016年 Lff. All rights reserved.
//

#import <Foundation/Foundation.h>
@interface LFFJieFengCompenyInfo : NSObject
@property (nonatomic,strong) NSMutableArray *arrJFName;
@property (nonatomic,strong) NSMutableArray *arrJFNO;
@property (nonatomic,strong) NSMutableArray *arrJFKey;
@end


@interface LFFStringarr : NSObject
-(LFFJieFengCompenyInfo*)getJieFengCompenyInfoModel;

@end



.m文件如

//
//  LFFStringarr.m
//  LFFStringArray
//
//  Created by Lff on 16/10/14.
//  Copyright © 2016年 Lff. All rights reserved.
//

#import "LFFStringarr.h"
@interface LFFJieFengCompenyInfo ( )
{

}
@end
@implementation LFFJieFengCompenyInfo

+(NSArray*)makeStringArrar{

    NSString *path = [[NSBundle mainBundle] pathForResource:@"捷丰商户" ofType:@"txt"];

    NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

    NSArray *arr = [string componentsSeparatedByString:@"\n"];

    NSLog(@"%ld",arr.count);

    return arr;
}
@end








@implementation LFFStringarr
-(LFFJieFengCompenyInfo*)getJieFengCompenyInfoModel{

    LFFJieFengCompenyInfo *model = [[LFFJieFengCompenyInfo alloc] init];
      model.arrJFNO = [NSMutableArray arrayWithCapacity:0];
      model.arrJFKey = [NSMutableArray arrayWithCapacity:0];
      model.arrJFName = [NSMutableArray arrayWithCapacity:0];

    NSArray *arr = [NSArray array];
    arr = [LFFJieFengCompenyInfo makeStringArrar];
        for (int i = 0; i<arr.count; i++) {
            if ((i+1)%4 == 1) {     //商户号
                if ([arr[i] rangeOfString:@"生产商户号:"].location == !NSNotFound ) {
                    NSArray *arrjf =  [arr[i] componentsSeparatedByString:@":"];
                    [model.arrJFNO addObject:arrjf[1]];
                }
            }
            if ((i+1)%4 == 2) {    //商户名
                if ([arr[i] rangeOfString:@"生产商户名称:"].location == !NSNotFound ) {
                    NSArray *arrjf =  [arr[i] componentsSeparatedByString:@":"];
                     [model.arrJFName addObject:arrjf[1]];
                }
            }
            if ((i+1)%4 == 3) {   //商户Key
                if ([arr[i] rangeOfString:@"生产商户密钥:"].location == !NSNotFound ) {
                    NSArray *arrjf =  [arr[i] componentsSeparatedByString:@":"];
                    [model.arrJFKey addObject:arrjf[1]];
                }
            }
            if ((i+1)%4 == 0) {   //空行
            }
        }
    return model;
}

@end

实例化方法如下

   LFFStringarr *lff = [[LFFStringarr alloc]init];
    LFFJieFengCompenyInfo *mode =   [lff getJieFengCompenyInfoModel];
    NSLog(@"%ld,%ld,%ld",mode.arrJFNO.count,mode.arrJFKey.count,mode.arrJFName.count);
    for (NSString *s in mode.arrJFNO) {
        NSLog(@"%@",s);
    }
    for (NSString *s in mode.arrJFKey) {
        NSLog(@"%@",s);
    }
    for (NSString *s in mode.arrJFName) {
        NSLog(@"%@",s);
    }

轮询实现

使用


 LFFStringarr *lff = [[LFFStringarr alloc]init];
        LFFJieFengCompenyInfo *mode =   [lff getJieFengCompenyInfoModel];

        NSString *ii = [[NSUserDefaults standardUserDefaults] objectForKey:@"ii"];
        NSInteger  iii = [ii integerValue];
        ZFBVc.infoArr = @[mode.arrJFNO[iii],ZFBBACKURL,mode.arrJFKey[iii],mode.arrJFName[iii]];
        iii = iii+1;
        if (iii == mode.arrJFName.count) {
            iii = 0;
             [[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithFormat:@"%li",(long)iii] forKey:@"ii"];
        }else{
             [[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithFormat:@"%ld",(long)iii] forKey:@"ii"];
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值