Мне нужно отфильтровать файл CSV по пользовательскому вводу и показать родственники данных ввода.
Я читал эту тему swift 3.1, как получить массив или словарь из CSV но здесь я должен указать координаты массива, мне нужно отфильтровать по определенному коду
CSV-файл выглядит так:
sku;name;price
1;shampoo;10,00
Я хочу выполнить поиск по sku иполучите имя и цену родственников для отображения в двух разных выходных данных.
это код:
import UIKit
class datiViewController: UIViewController {
@IBOutlet var textField: UILabel!
var datiPassati : String?
override func viewDidLoad() {
super.viewDidLoad()
textField.text = datiPassati
var data = readDataFromCSV(fileName: "catalogocsv", fileType: "csv")
data = cleanRows(file: data!)
let csvRows = csv(data: data!)
print(csvRows[3][1])
}
func readDataFromCSV(fileName:String, fileType: String)-> String!{
guard let filepath = Bundle.main.path(forResource: fileName, ofType: fileType)
else {
return nil
}
do {
var contents = try String(contentsOfFile: filepath, encoding: .utf8)
contents = cleanRows(file: contents)
return contents
} catch {
print("File Read Error for file \(filepath)")
return nil
}
}
func cleanRows(file:String)->String{
var cleanFile = file
cleanFile = cleanFile.replacingOccurrences(of: "\r", with: "\n")
cleanFile = cleanFile.replacingOccurrences(of: "\n\n", with: "\n")
return cleanFile
}
func csv(data: String) -> [[String]] {
var result: [[String]] = []
let rows = data.components(separatedBy: "\n")
for row in rows {
let columns = row.components(separatedBy: ";")
result.append(columns)
}
return result
}
}