2017-09-05 26 views
0

我已經創建了保存按鈕,我想創建一個.csv文件來存儲屏幕上的對象的x,y和名稱,因爲我無法檢查它,因爲我可以「T訪問該文件的創建如何通過數組訪問.csv文件目錄

@IBAction func saveButton(_ sender: Any) { 
    let objectsName = stringObjectName.joined(separator: ",") 
    let coX = stringObjectX.joined(separator: ",") 
    let coY = stringObjectY.joined(separator: ",") 

    let fileName = getDocumentsDirectory().appendingPathComponent("output.csv") 
    CSVFilesName.append(fileName) 

    var csvText = "Name, Data X, Data Y\n" 

    let count = stringObjectName.count 

    if count > 0 { 
     for _ in 0..<(stringObjectName.count-1) { 
      let newLine = "\(objectsName),\(coX),\(coY)\n" 

      csvText.append(contentsOf: newLine) 
     } 
    } 

    do { 
     try csvText.write(to: fileName, atomically: true, encoding: String.Encoding.utf8) 
    } catch { 
     print("error") 
    } 

    print(fileName) 
} 
在此之後我嘗試訪問它是假設在文件目錄存儲在另一個視口中的文件叫‘output.csv’

。所以,我創建的方法,通過使用和存儲CSVFile

var CSVFileName = [URL]() 

    func assignArray() { 

    let cameraVC = CameraViewController() 
    CSVFileName = cameraVC.CSVFilesName 
    print(CSVFileName) 

} 

和問題從這裏開始,因爲我有陣列假設存儲在字符串

文件名稱來傳遞從另一視圖控制器當前視圖控制器方法
let fileNames = ["sth1.csv", "sth2.csv"] 

但我無法找到從保存按鈕轉換爲CSVFileName字符串,並將「靜態數組」替換爲「動態數組」,並更改以下方法以獲取來自FileManager()的 URL default.url而不是fileURL給TableViewController數據顯示和訪問

 private func prepareFileURLS() { 
    for file in fileNames { 
     let fileParts = file.components(separatedBy: ".") 
     print(fileParts[0]) 
     if let fileURL = Bundle.main.url(forResource: fileParts[0], withExtension: fileParts[1]) { 
      if FileManager.default.fileExists(atPath: fileURL.path) { 
       print(fileURL) 
       fileURLs.append(fileURL as NSURL) 
      } 
     } 
    } 
    print(fileURLs) 
} 

回答

0

這裏是你可以看你的CSV文件的方式:

func filterMenuCsvData() 
     { 
      do { 
       // This solution assumes you've got the file in your bundle 
       if let path = Bundle.main.path(forResource: "products_category", ofType: "csv"){ 
        // STORE CONTENT OF FILE IN VARIABLE 
        let data = try String(contentsOfFile:path, encoding: String.Encoding.utf8) 
        var rows : [String] = [] 
        var readData = [String]() 
        rows = data.components(separatedBy: "\n") 
        for data in 0..<rows.count - 1{ 
         if data == 0 || rows[data].contains(""){ 
          continue 
         } 
         readData = rows[data].components(separatedBy: ",") 
         Category.append(readData[0]) 
         if readData[2] != ""{ 
         Occassions.append(readData[2]) 
         } 
         selectedOccassionsRadioButtonIndex = Array(repeating: false, count: Occassions.count) 
         selectedCategoryRadioButtonIndex = Array(repeating: false, count: Category.count) 
        } 
       } 
      } catch let err as NSError { 
       // do something with Error} 
      print(err) 
     } 
    }