2

重複の可能性:
Sqlite テーブル データをプログラムで csv ファイルにエクスポートする - xcode iOS 5 (iPad アプリの場合)

私は簡単なアプリを開発しています。sqlite を使用してデータをテーブルに保存しています (ローカルで、アプリ ドキュメント フォルダーに)。このテーブル データを csv ファイルに問題なくエクスポートし、メールで送信したいと考えています。つまり、変換後に iPad で csv ファイルに物理的にアクセスしたいということです。ダウンロードするアプリケーションの例を教えてください。それともコード?助けてください

4

1 に答える 1

7

これにより、良いアイデアが得られるはずです。2 行のテーブルを想定すると、このコードはテーブル内のすべての値を読み取り、それらを およびNSStringに書き込みます。この値はドキュメント ディレクトリの CSV ファイルに書き込まれます。このコードを特定のプロジェクトで機能させる方法について明確にする必要がある場合はお知らせください。

    NSString *csv = [[NSString alloc] init];

    sqlite3 *database;

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *sqLiteDb
    = [documentsDirectory stringByAppendingPathComponent:@"INSERT_DATABASE_NAME.sqlite3"];


    if(sqlite3_open([sqLiteDb UTF8String], &database) == SQLITE_OK) {
        const char *sqlStatement = [[NSString stringWithFormat:@"SELECT * FROM myTable"] UTF8String];
        sqlite3_stmt *compiledStatement;
        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

           while(sqlite3_step(compiledStatement) == SQLITE_ROW) { 
             //this assumes that there are two rows in your database you want to get data from   
             [csv stringByAppendingFormat:@"%@,%@\n", [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)], [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]];
           }

          sqlite3_finalize(compiledStatement);
          sqlite3_close(database);
        }else{
            NSLog(@"database error");
        }
    }

NSError *error = nil;
[csv writeToFile:[documentsDirectory stringByAppendingPathComponent:@"myFile.csv"]
      atomically:YES encoding:NSUTF8StringEncoding error:&error];

[csv release];
于 2012-08-17T21:56:10.783 に答える