1

sqlite データベースから .csv ファイルに情報を読み込んでいます。ビルドするファイルを取得できますが、新しい行はそれぞれ「,」で始まります。私はいくつかのAndroidプログラミングを行いましたが、iOSはあまりありません。問題は componentsJoinedByString:@"," であると考えていますが、これはすべてを結合するためですが、これを使用して各新しい行の先頭にある "," を取り除く方法がわかりません。それらを結合してcsvファイルに書き込む別の方法、または最初のコンマを取り除く方法はありますか?

NSMutableArray *exportBike = [[NSMutableArray alloc] init];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *docsPath = [paths objectAtIndex:0];

NSString *path = [docsPath stringByAppendingPathComponent:@"MemberDB.sql"];

FMDatabase *database = [FMDatabase databaseWithPath:path];

[database open];

FMResultSet *resultsBike = [database executeQuery:@"SELECT * FROM bike"];

while([resultsBike next]) {

    NSString *name = [resultsBike stringForColumn:@"name"];
    NSInteger stage1HR  = [resultsBike intForColumn:@"stage1HR"];
    NSInteger stage1BP = [resultsBike intForColumn:@"stage1BP"];
    NSInteger stage2HR = [resultsBike intForColumn:@"stage2HR"];
    NSInteger stage2BP = [resultsBike intForColumn:@"stage2BP"];
    NSInteger stage3HR  = [resultsBike intForColumn:@"stage3HR"];
    NSInteger stage3BP = [resultsBike intForColumn:@"stage3BP"];
    NSInteger stage4HR  = [resultsBike intForColumn:@"stage4HR"];
    NSInteger stage4BP = [resultsBike intForColumn:@"stage4BP"];
    NSInteger stage5HR  = [resultsBike intForColumn:@"stage5HR"];
    NSInteger stage5BP = [resultsBike intForColumn:@"stage5BP"];
    NSInteger stage6HR  = [resultsBike intForColumn:@"stage6HR"];
    NSInteger stage6BP = [resultsBike intForColumn:@"stage6BP"];
    NSInteger stage7HR  = [resultsBike intForColumn:@"stage7HR"];
    NSInteger stage7BP = [resultsBike intForColumn:@"stage7BP"];
    NSInteger recoveryHR = [resultsBike intForColumn:@"recoveryHR"];

    NSLog(@"%@,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",name, stage1HR, stage1BP, stage2HR, stage2BP, stage3HR, stage3BP, stage4HR, stage4BP, stage5HR, stage5BP, stage6HR, stage6BP, stage7HR, stage7BP, recoveryHR);

    [exportBike addObject:[NSString stringWithFormat:@"%@,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d""\n",name, stage1HR, stage1BP, stage2HR, stage2BP, stage3HR, stage3BP, stage4HR, stage4BP, stage5HR, stage5BP, stage6HR, stage6BP, stage7HR, stage7BP, recoveryHR]];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *savePath = [paths objectAtIndex:0];

    savePath = [savePath stringByAppendingPathComponent:@"bike.csv"];

    [[exportBike componentsJoinedByString:@","] writeToFile:savePath atomically:YES encoding:NSUTF8StringEncoding error:NULL];
4

1 に答える 1

3

変化する

[exportBike addObject:[NSString stringWithFormat:@"%@,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d""\n",name, stage1HR, stage1BP, stage2HR, stage2BP, stage3HR, stage3BP, stage4HR, stage4BP, stage5HR, stage5BP, stage6HR, stage6BP, stage7HR, stage7BP, recoveryHR]];

[[exportBike componentsJoinedByString:@","] writeToFile:savePath atomically:YES encoding:NSUTF8StringEncoding error:NULL];

[exportBike addObject:[NSString stringWithFormat:@"%@,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",name, stage1HR, stage1BP, stage2HR, stage2BP, stage3HR, stage3BP, stage4HR, stage4BP, stage5HR, stage5BP, stage6HR, stage6BP, stage7HR, stage7BP, recoveryHR]];

[[exportBike componentsJoinedByString:@"\n"] writeToFile:savePath atomically:YES encoding:NSUTF8StringEncoding error:NULL];

メソッドとインラインで","使用する"\n"代わりに、最後にあるを削除します。componentsJoinedByStringaddObject"\n"

マーティンが以下で述べたように、別のオプションは、改行文字を一列にaddObject並べて使用すること[exportBike componentsJoinedByString:@""]です。これにより、ファイルの最後に改行文字が追加されます。

于 2013-01-21T20:07:44.813 に答える