csvファイルからplistを生成するPHPスクリプト
エクセルとかGoogle docsで編集されたデータをplistファイルとしてアプリに持たせたい、といった場合用の、csvファイルからplistファイルへの変換スクリプトです。
こちらに置いてあります。
https://github.com/shu223/csv2plist
たとえばこういうcsvファイルを読み込ませると、
(sample.csv)
id,name,age,birth 0,tsutsumi,32,5/26 1,sato,27,1/11 2,tanaka,21,11/3
こんな感じでplistファイルを出力します。
(sample.plist)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <dict> <key>id</key> <string>0</string> <key>name</key> <string>tsutsumi</string> <key>age</key> <string>32</string> <key>birth</key> <string>5/26</string> </dict> <dict> <key>id</key> <string>1</string> <key>name</key> <string>sato</string> <key>age</key> <string>27</string> <key>birth</key> <string>1/11</string> </dict> <dict> <key>id</key> <string>2</string> <key>name</key> <string>tanaka</string> <key>age</key> <string>21</string> <key>birth</key> <string>11/3</string> </dict> </array> </plist>
使い方
ターミナルから次のように実行します。
$ php csv2plist.php -t hoge.csv
CSVファイルにタイトル行がない場合は、-tのオプションなしで実行してください。
$ php csv2plist.php hoge.csv
補足
plistファイルは、こんな感じで initWithContentsOfFile: メソッドに渡してやるだけで NSArray や NSDictionary のオブジェクトとして取り扱えるようになります。
NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"hoge" ofType:@"plist"]; NSArray *arr = [[[NSArray alloc] initWithContentsOfFile:path] autorelease];
- あまり変更のないデータはplistで
- 変更があるけど項目が増えていかないデータ(設定値とか)はNSUserDefaultで
- 変更があって数に増減のあるデータはDBで
っていう使い分けが定石かと思います。