IOS开发之路-Objective-C 集合下(实战)

来源:互联网 发布:windows 10安装大小 编辑:程序博客网 时间:2024/05/16 06:21


那天看oc读取文本文件的方法了,于是想把歌词文件读取进来.然后在进行处理导出.

对歌词文件进行处理,导出纯歌词到txt文件中.

注意以下文章

(技术含量不高)

如果心里产生某种反应请马上就医.

先上效果吧!

之前下好的歌词文件(附桌面美女一张 - -# 哈哈)

打开歌词后:




处理之后生成的文件


打开之后




如果我就想要歌词部分的话呢,那样我得一句一句去复制吗,这样很累呀.

于是我用今天学的集合和之前的字符串完美的解决了这个问题

做到这里有神马用呢,其实做音乐播放器的时候肯定是要进行歌词处理的 ,这样做肯定是有必要的.。


下面附上代码:

文件结构 很简单

一个ReadFile.h和一个ReadFile.m

main文件

////  main.m//  ReadFile////  Created by X's on 13-8-2.//  Copyright (c) 2013年 X‘s. All rights reserved.//#import <Foundation/Foundation.h>#import "ReadFile.h"int main(int argc, const char * argv[]){    @autoreleasepool {        ReadFile  *readFile =  [[ReadFile alloc]init];        //NSLog(@"%@",[readFile read]);  //输出读取文件的内容        NSMutableArray *rightArray =[NSMutableArray arrayWithArray:[readFile rightArray]];        [readFile writeFile:rightArray];   //导出到本地文件                //遍历完成的文件        for (id obj in rightArray)        {            NSLog(@"%@",obj);        }          [readFile release];    }    return 0;}

ReadFile.h

////  ReadFile.h//  ReadFile////  Created by X's on 13-8-2.//  Copyright (c) 2013年 X‘s. All rights reserved.//#import <Foundation/Foundation.h>@interface ReadFile : NSObject{    //NSString *fileTxt;    long int count ;}@property (nonatomic,copy)NSString *fileTxt;-(void)setCount:(NSArray *)array;-(long int )count;-(NSString *)read;-(NSArray *)comArray;- (NSMutableArray *)rightArray;-(void)writeFile:(NSMutableArray *)arr;@end

ReadFile.m

////  ReadFile.m//  ReadFile////  Created by X's on 13-8-2.//  Copyright (c) 2013年 X‘s. All rights reserved.//#import "ReadFile.h"@implementation ReadFile@synthesize fileTxt = _fileTxt;-(void)setCount:(NSArray *)array{    count = [array count];}-(long int)count{    return count;}-(void)setFileTxt:(NSString *)fileTxt{    _fileTxt = [self read];}-(NSString *)fileTxt{    return  _fileTxt;}-(NSString*)read{    NSString *path = @"/Users/ibokan/Desktop/快门慢舞.lrc";    NSError *error;    NSMutableString *string = [NSMutableString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];    if ( error == 0 )    {        //NSLog(@"读取成功%@",string);    }    else    {//       NSString *str  =   [NSString stringWithFormat:@"读取失败 出错原因:%@",error];//        return  str;    }    return  string;}-(NSArray *)comArray{    NSString *strFile = [self read];    NSArray *array =  [strFile componentsSeparatedByString:@"\n"]; //对字符串进行截断存进数组    return array;}-(NSMutableArray *)rightArray{//    NSArray *arrayFile =  [readFile comArray];//    [readFile setCount:arrayFile];    NSArray *arrayFile =  [self comArray];    [self setCount:arrayFile];    int Count = (int)self.count;    NSMutableArray *rightArray = [NSMutableArray arrayWithCapacity:40];    for (int i = 0; i<Count; i++)    {        if ( [[arrayFile objectAtIndex:i] length] >= 10  )        {            NSRange range =  [ [arrayFile objectAtIndex:i] rangeOfString:@"]"];            NSMutableString *str = [NSMutableString  stringWithString:    [[arrayFile objectAtIndex:i] substringFromIndex:range.location +1] ];            [rightArray addObject:str];        }    }    return rightArray;}-(void)writeFile:(NSMutableArray *)arr{    NSString * writePath = @"/Users/ibokan/Desktop/快门慢舞-完美提出版.txt";    NSMutableString *writeStr = [NSMutableString stringWithCapacity:40];    int arrCount = (int)[arr count];    NSError *error;    for (int i = 0;i<arrCount; i++)    {        if ([[arr objectAtIndex:i] length] > 1) {             [writeStr appendFormat:@"%@\n",[arr objectAtIndex:i]  ];        }        else        {            [writeStr appendFormat:@"%@",[arr objectAtIndex:i]  ];        }    }    BOOL b = [writeStr writeToFile:writePath atomically:NO encoding:NSUTF8StringEncoding error:&error];    if( b == NO)    {    NSLog(@"导出错误:%@ ",error);    }}@end

OK写完收工!!!


原创粉丝点击