ハマった。CSVレコードをsqliteテーブルに直接インポートできる機能はありますか? どんな助けもかなりのものです。
4 に答える
これを行うための大まかなコードを次に示します。必要に応じていくつかの変更を行ってください。
-(void)loadCSVData{
NSStringEncoding encoding;
NSString *path1=[[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename ofType:@"csv"] usedEncoding:&encoding error:nil];
//You will get the array of lines
NSArray *messArr=[path1 componentsSeparatedByString:@"\n"];
//Now start to process each single line.
if(messArr)
{
for(int i=0;i<=[messArr count]-1;i++)
{
NSMutableDictionary *d=[[NSMutableDictionary alloc] init];
NSString *StrValue=[NSString stringWithFormat:@"%@",[messArr objectAtIndex:i]];
StrValue=[StrValue stringByReplacingOccurrencesOfString:@"\"" withString:@""];
StrValue=[StrValue stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSArray *arr=[StrValue componentsSeparatedByString:@","];
/*Add value for each column into dictionary*/
[d setValue:[arr objectAtIndex:0] forKey:@"columnName"];
//Add this dictionary "d" into database
[d release]; //Cleanup.
}
}
[path1 release];
}
次の質問の回答も参照してください。独自のカスタム CSV パーサーを作成するための優れた説明があります。
csvファイルからデータを読み込む (iphone SDk) [ iPhoneアプリで動的にCSVデータをsqliteにインポートする方法
[2]: iPhoneアプリで動的にCSVデータをsqliteにインポートする方法
これがお役に立てば幸いです。
次のような方法を使用してCSVファイルを読み取ることができます
NSData *CSVdata = [NSData dataWithContentsOfFile:path];
NSString *CSVString = [CSVdata dataUsingEncoding:NSASCIIStringEncoding];
この文字列からデータをグループ化する必要があり、DB に挿入できます
これをプログラムで行う場合は、独自のロジックを作成する必要があります。1)行を読み取ります(ヘッダー行の場合、次のフィールドを含むテーブルを作成します) 2)特定のテーブルの列にマップされたさまざまなフィールドを使用して、テーブルにレコードを挿入します。
とにかくレコードを挿入することにのみ関心がある場合は、Mac 用のSQLiteManagerツールまたはブラウザ用のプラグインを使用できます。
次のスクリーングラブからヒントを得ることができます(SQliteManger for Macを使用。データベースを開く-->ファイル-->インポート-->その他)