那天看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写完收工!!!