ビギグラマーのノート

自作PCやプログラミングについてのブログです。

Documents下に多次元配列からCSVファイルを作る

環境 swift 3.0.2 xCode 8.2.1 対象 iOS10.2

 

 

二次元配列からcsvファイルを作成するコードです。場所はDocuments下になるので主にユーザーが編集できる場所になります。

仕組みとしては

  1. ファイルを保存するパスを作成
  2. 二次元配列のfileArrDataをcsv用に「,」や改行を入れてString型のfileStrDataに入れる
  3. 作成したパスにcsv形式でwriteする

これは単にTest用のswiftファイルで関数を作っているため、同名ファイルを作った時の警告等のUIに深く関わってくるところはのぞいています。 あと、セルをダブルクォートで囲む理由はカンマを使用した際に崩れるのを防止するためです。詳しくはWiki等のCSVの仕様を確認してください。他のこの仕様に対応していないプログラムでファイルを作ってそれを読み込む場合も作らなければなりません。(カンマを使っていたら崩れてしまいますが諦めるほかありません

 

追記- 2日後

 

 これでDocumentsのファイルを全て調べることができる。本来ならCSVファイルしか読み取らないようにする予定だったが、まあいいや。それはテーブルでゴニョゴニョするとき、拡張子をもぎ取る必要があるからそのとき振り分けってことで。

最初は二進も三進も分からず、BundleクラスのBandle.main.pathsで探そうとしたけどBundleってつまりアプリの要素としてバンドルされているものを探すもの。だからDocuments内は探せない。その場合はFileManagerを使う。

余談だがFileManagerクラスのURLをWeb限定の用語だと思っていたが、ディスク上にあるローカルなファイルや、リモートのファイルなども扱えるらしい。(読み込み不足・・・