HOME > 問題解決一覧 > tsvファイルをSwiftで取り込みたい

事象

iOSアプリでカンマが多いデータを扱うため、csvファイルでなくtsvファイル(タブ区切り)を読み込みたいのですがどのようにすればよいでしょうか。

<環境>

  • Xcode8
  • Swift3.0

回答

tsvファイルはタブ区切りなのでタブの文字tで分割して配列に入れられます。

サンプルコード(Xcode8、Swift3.0)

data.tsv

1-1 1-2 1-3 1-4
2-1 2-2 2-3 2-4
3-1 3-2 3-3 3-4
4-1 4-2 4-3 4-4

ViewController.swift

// data.tsvファイルを配列に格納
if let tsvPath = Bundle.main.path(forResource: "data", ofType: "tsv") {
    var tsvString=""
    do{
        // ファイルパスからtsvファイルをStringとして取得
        tsvString = try NSString(contentsOfFile: tsvPath, encoding: String.Encoding.utf8.rawValue) as String
    } catch let error as NSError {
        print(error.localizedDescription)
    }
    // 1行づつ取得してパース
    tsvString.enumerateLines{ (line, stop) -> () in
        let datas = line.components(separatedBy: "t") // タブで区切る
        print("datas:(datas)")
    }
}

f79c734dc070918bd0afe668b91fee49

コメント

この記事に関する質問やご意見・ご感想がありましたら、下記よりコメントください。
Githubアカウントでログインしていれば誰でも投稿できます。