Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 删除前导逗号_Ios_Objective C - Fatal编程技术网

Ios 删除前导逗号

Ios 删除前导逗号,ios,objective-c,Ios,Objective C,我正在将信息从sqlite数据库读取到.csv文件。我能够获得要构建的文件,但每一行都以“,”开头。我已经做了一些android编程,但没有太多的ios。我认为这个问题是由字符串连接而成的:@“,”因为它将所有东西连接在一起,但我不知道如何在每一行的开头使用这个字符串来摆脱“,”。是否有其他方法将它们连接起来写入csv文件,或是消除第一个逗号 NSMutableArray *exportBike = [[NSMutableArray alloc] init]; NSArray *paths =

我正在将信息从sqlite数据库读取到.csv文件。我能够获得要构建的文件,但每一行都以“,”开头。我已经做了一些android编程,但没有太多的ios。我认为这个问题是由字符串连接而成的:@“,”因为它将所有东西连接在一起,但我不知道如何在每一行的开头使用这个字符串来摆脱“,”。是否有其他方法将它们连接起来写入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];
改变

组件通过字符串连接的
方法中使用
“\n”
而不是
”,并在
添加对象
行中删除末尾的
“\n”


正如Martin在下面提到的,另一个选项是将新行字符保留在
addObject
行中,并使用
[exportBike components sjoinedbystring:@”“]
。这将在文件末尾添加一个新行字符。

exportBike
中只有一个对象吗?或者上面的代码在for循环中?从上面的代码中,您只需将字符串
[NSString stringWithFormat:@“%@、%d、%d、%d、%d、%d、%d、%d、%d、%d、%d、%d”“\n”、名称、stage1HR、stage1BP、stage2HR、stage2BP、stage4HR、stage4BP、stage5HR、stage5BP、stage7HR、stage7BP、recoveryHR]
写入文件即可。您不需要数组。@ACB。我发布了我用来从数据库获取信息以填充csv的全部代码。我甚至不确定这是不是正确的方法。我认为你仍然没有找到最后的括号。理想情况下,上述代码应该可以正常工作<如果
exportBike
数组中没有空字符串,则code>componentsJoinedByString
不应在开头添加逗号。您应该这样尝试,
[[exportBike componentsJoinedByString:@“\n”]
并删除
“\n”
在addObject字符串行的末尾。检查它。@ACB.就是这样,非常感谢!我知道它一定是我错过了一些简单的东西。请将它放在一个答案中,这样我就可以接受它。或者:将新行保留在
addObject
中,并使用
组件通过字符串连接:@“
。那么输出文件的最后一行也是换行终止的。@MartinR,好建议。但我不确定他是否需要在文件末尾换行。
[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];