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写完收工!!!
- IOS开发之路-Objective-C 集合下(实战)
- IOS开发之路-Objective-C 集合下(实战2)
- IOS开发之路-Objective-C 集合上(笔记)
- IOS开发之路-Objective-C 复合
- IOS开发之路-Objective-C 字符串
- 【学习ios之路:Objective-C】字典.集合.
- 【iOS开发之Objective-C】Objective-C语言中的OOP
- IOS开发之路-Objective-C 面向对象编程基础
- IOS开发之路-Objective-C 继承,多态
- IOS开发之路-Objective-C 类目、延展、协议
- IOS开发之路-Objective-C ARC入门详解
- IOS开发之路-Objective-C OC学习总结
- iOS开发--Objective-C之KVC
- 【iOS开发之Objective-C】继承
- 【iOS开发之Objective-C】复合
- 【iOS开发之Objective-C】初始化对象
- iOS开发系列---Objective-C之基础知识
- objective-c、ios开发
- 黑马程序员---string字符串总结
- Binary Apple Tree
- 《Spring Security 3》 【第三章】增强用户体验(2)
- javascript获取超链接传递的参数,此方法亦能解决2个通过js超链页面传递参数的乱码问题
- 编写线程安全的JSP应用程序
- IOS开发之路-Objective-C 集合下(实战)
- poj 1094 Sorting It All Out(拓扑排序 + 邻接表)
- 【怎样正确认识Windows XP系统待机、休眠、睡眠】
- c++ I/O
- UVa:10132 File Fragmentation
- Hdu 3255 Farming
- JILK - (6) - 32-Bit and 16-Bit Address and Operand Sizes
- 数据库存储索引
- 怎么使用JavaBean组件