【iPhone開発】csvファイルの使い方

| トラックバック(0)
このエントリーをはてなブックマークに追加 
アプリの設定やデータの管理はplistファイルやXMLファイルを使うのが普通だが、
やっぱり慣れ親しんだcsvファイルを使いたい...


ということで、csvを使ったデータ管理をメモしていきますよ。

csvファイルからデータを読み取る(ファイルはDocumentsフォルダにあるものとする)



// CSVファイルからセクションデータを取得する
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *csvFile =
                  [documentsDirectory stringByAppendingPathComponent:@"data.csv"];
   
    //ファイルの有無を確認
    if ([[NSFileManager defaultManager] fileExistsAtPath:csvFile]) {
        NSData *csvData = [NSData dataWithContentsOfFile:csvFile];
        NSString *csv = [[[NSString alloc]   
                                    initWithData:csvDataencoding:
                                     NSUTF8StringEncoding] autorelease];

        NSScanner *scanner = [NSScanner scannerWithString:csv];
   
        // 改行文字の集合を取得
        NSCharacterSet *chSet = [NSCharacterSet newlineCharacterSet];
        // 一行ずつの読み込み
        NSString *line;
        while (![scanner isAtEnd]) {
        // 一行読み込み
            [scanner scanUpToCharactersFromSet:chSet intoString:&line];
            // カンマ「,」で区切る
            NSArray *array = [line componentsSeparatedByString:@","];
           
            /*データをarrayから取得してデータにセット*/
           
            // 改行文字をスキップ
            [scanner scanCharactersFromSet:chSet intoString:NULL];
        }
    }



csvファイルにデータを書き込む(ファイルはDocumentsフォルダに書き込まれる)



    NSMutableString *mstr = [NSMutableString stringWithString:@""];
    
    /*データをmstrにセットする*/
    
    //ファイルパスを取得
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
                                   NSDocumentDirectory,    NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* a_tmp_dir = [documentsDirectory  
                   stringByAppendingPathComponent:@"data.csv"];

    //ファイル書き込み
    NSData* out_data = [mstr dataUsingEncoding:NSUTF8StringEncoding];
    [out_data writeToFile:a_tmp_dir atomically:YES];



以上、csvファイルの使い方でした。

トラックバック(0)

トラックバックURL: http://blog.volv.jp/mt-tb.cgi/113

カスタム検索