teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2016/10/09 16:14

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -1,6 +1,9 @@
1
1
  文字列で取得する多次元配列でしたら以下の様になると思います。参考にしてみてください。
2
2
 
3
3
 
4
+ CSVに改行を入れている場合
5
+ ---
6
+
4
7
  ```swift
5
8
  import UIKit
6
9
 
@@ -45,4 +48,58 @@
45
48
  ```CSV
46
49
  1,2,3,4,5
47
50
  6,7,8,9,10
51
+ ```
52
+
53
+ CSVに改行を入れていない場合
54
+ ---
55
+
56
+ ```swift
57
+ import UIKit
58
+
59
+ class ViewController: UIViewController {
60
+
61
+ var str: Array<Array<String>> = []
62
+
63
+ override func viewDidLoad() {
64
+ super.viewDidLoad()
65
+
66
+ self.view.backgroundColor = UIColor.black
67
+
68
+ // CSV読み込み
69
+ if let csvPath = Bundle.main.path(forResource: "file", ofType: "csv") {
70
+ do {
71
+ var csvString = try NSString(contentsOfFile: csvPath, encoding: String.Encoding.utf8.rawValue) as String
72
+ csvString = csvString.replacingOccurrences(of: "\r\n", with: "")
73
+ let array:Array = csvString.components(separatedBy: ",")
74
+
75
+ var items = [String]()
76
+ array.enumerated().forEach { (index, value) in
77
+
78
+ items.append(value)
79
+
80
+ if (index + 1) % 5 == 0 {
81
+ str.append(items)
82
+ items = [String]()
83
+ }
84
+ }
85
+ } catch {
86
+ // エラー
87
+ }
88
+ }
89
+
90
+ print(str)
91
+ print(str[0][2])
92
+ //=> 3
93
+
94
+ print(str[1][4])
95
+ //=> 10
96
+ }
97
+ }
98
+ ```
99
+
100
+ ☆ file.csv
101
+
102
+ ```CSV
103
+
104
+ 1,2,3,4,5,6,7,8,9,10
48
105
  ```