HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 在iOS数据库中创建csv文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_262_2@
我想把数据从sql文件写入csv文件.我从数组中的sql文件收集了所有数据,并使用for循环我将数据附加到.csv文件.但是它似乎只显示一行中的数据,而不是新行创建新行.
我用 this作参.
这是我的代码

-(NSString *)DATAFILEPath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,@R_675_993@,YES); 
    NSString *documentsDirectory = [paths objectATindex:0]; 
    return [documentsDirectory StringByAppendingPathComponent:@"myfile.csv"];
}

- (IBACtion)saveAsFileAction:(id)sender {    
    if (![[NSFileManager defaultManager] fileExistsAtPath:[self DATAFILEPath]]) {
        [[NSFileManager defaultManager] createFileAtPath: [self DATAFILEPath] contents:nil attributes:nil];
        NSLog(@"Route creato");        
    }

    NSString *writeString;    
    for (int i=0; i<[dataArray count]; i++) {        
        writeString = [NSString StringWithFormat:@"%@,%@,%0.2f,",[[dataArray objectATindex:i]dates],[[dataArray objectATindex:i] time],[[dataArray objectATindex:i] category],[[dataArray objectATindex:i]place],[[dataArray objectATindex:i] amount]];        
        NSLog(@"writeString :%@",writeString);        
        NSFileHandle *handle;
        handle = [NSFileHandle fileHandleForWriTingAtPath: [self DATAFILEPath] ]; 
        //say to handle where's the file fo write
        [handle truncateFileAtOffset:[handle seekToEndOfFile]]; 
        //position handle cursor to the end of file
        [handle writeData:[writeString dataUsingEncoding:NSUTF8StringEncoding]];      
    }    
}
@H_262_2@

解决方法

这只会写一行,因为您每次通过循环重写文件.最好不要在文件上写入数据,直到循环完成.我也会像这样使用NSMutableString:

- (IBACtion)saveAsFileAction:(id)sender {

    if (![[NSFileManager defaultManager] fileExistsAtPath:[self DATAFILEPath]]) {
        [[NSFileManager defaultManager] createFileAtPath: [self DATAFILEPath] contents:nil attributes:nil];
        NSLog(@"Route creato");
    }

    NSMutableString *writeString = [NSMutableString StringWithCapacity:0]; //don't worry about the capacity,it will expand as necessary

    for (int i=0; i<[dataArray count]; i++) {
        writeString = [writeString appendString:[NSString StringWithFormat:@"%@,\n",[[dataArray objectATindex:i] amount]]]; //the \n will put a newline in
      }
    }

    //Moved this stuff out of the loop so that you write the complete String once and only once.
    NSLog(@"writeString :%@",writeString);

    NSFileHandle *handle;
    handle = [NSFileHandle fileHandleForWriTingAtPath: [self DATAFILEPath] ]; 
    //say to handle where's the file fo write
    [handle truncateFileAtOffset:[handle seekToEndOfFile]]; 
    //position handle cursor to the end of file
    [handle writeData:[writeString dataUsingEncoding:NSUTF8StringEncoding]];
}
@H_262_2@ @H_262_2@
@H_262_2@
@H_262_2@

大佬总结

以上是大佬教程为你收集整理的objective-c – 在iOS数据库中创建csv文件全部内容,希望文章能够帮你解决objective-c – 在iOS数据库中创建csv文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。