2016-10-18 11 views
0

SwiftCSV, CSwiftV와 같은 다른 라이브러리를 보았습니다. AFAIK, 그들은 이전 버전의 신속하게 만들었습니다. 나는 신속한 3을위한 아주 간단한 실현이 필요하다 : 열린 파일, 라인 읽기, 배열에 넣기; 또는 열어서 csv 파일에 배열을 작성하면됩니다. 어떤 도움이 필요합니까?Swift 3에서 CSV 파일 읽기 및 쓰기

내가 가진 : CSVImporter 프레임 워크를 사용하는

struct Data { 
    var DataTime: Date = Date() 
    var Price: Double = 0.0 
} 

func DatafromCSV(_ CSV: String, _ separator: String) -> [Data] { 
    var x = [Data]() 

    //open file, read line, put into array, close file 

    return x 
} 

func DatatoCSV(_ CSV: String, _ separator: String) -> [Data] { 
    var x = [Data]() 

    //create file (erase data if exists, write data from array, close file 

    return x 
} 
+0

공식 코드베이스가 변환 될 때까지 현재 사용되는 lib를 직접 3로 바꾸는 것은 어떨까요? Xcode는이를 위해 매우 유용한 도구 세트를 제공합니다. – brigadir

+0

물론, 내가 신속하게 프로라면 그렇게 할 것입니다. 필자는 직접 파일을 열어 보려고 노력했지만, 이해할 수있는 한, Apple의 실현은 없습니다. 나는 신속하고 새로운 언어의 문법을 아직 이해하지 못했으며 매우 간단하고 신뢰할 수있는 코드를 원한다. – Anton

+0

제 제안은 Xcode를 사용하여 libfs 파일을 자동으로 3 (오픈 소스 lib를 사용하는 경우)로 변환하는 것입니다. 따라서 Xcode는 실패하지 않을 경우 모든 작업을 처리 할 것입니다 :) 세부 정보 : https://swift.org/migration-guide/ – brigadir

답변

0

시도를 매우 간단합니다. 이 링크를 프로젝트에 추가 할 수 있습니다 : 이것은 비동기하지만,이 프레임 워크는 또한 몇 가지 동기화 방법이있다 https://github.com/Flinesoft/CSVImporter

static func extractFromCSV(){ 
     //the Path of the csv 
     let documentsUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL! 
     let destinationFileUrl = documentsUrl.appendingPathComponent("name.csv") 
     let path = destinationFileUrl.path 
     let importer = CSVImporter<YourClassName?>(path: path,delimiter: ";") 
     importer.importRecords{ recordValues -> Sede_Azienda? in 
     //this piece of code is called for each row. You can access to each field with recordValues[x] and manage the data. 
     return nil //or the object if you need it 
     } 
} 

. 문서를보십시오.

NB : YourClassName은 필요한 경우 반환 된 개체의 클래스 형식입니다.