2016-10-18 117 views
0

SwiftCSV、CSwiftVなどのさまざまなライブラリを見てきました。 AFAIK、彼らは迅速な以前のバージョンのために作った。私はswift 3のための非常に簡単な実現が必要です:ファイルを開いて、行を読み込み、配列に入れます。または開いて、csvファイルに配列を書き込んでください。それだけです。どんな助け?Swift 3でCSVファイルを読み書きする

私が持っている:

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

もちろん、私が迅速にプロであれば、私はそれをします。私は自分でそれを理解しようとしましたが、ファイルを開く方法はわかっていましたが、わかっていればアップルの実現はありません。私は迅速で新しく、言語の構文を理解していないので、非常にシンプルで信頼性の高いコードが必要です。 – Anton

+0

私の提案は、Xcodeを使用して自動的にlibファイルをswift 3(opensource libを使用している場合)に変換することでした。だからXcodeは失敗しない限り、あなたのためにすべての仕事をします:)詳細はこちら:https://swift.org/migration-guide/ – brigadir

答えて

0

は非常に簡単です、CSVImporterフレームワークを使用してみてください。あなたは、このリンクを次のプロジェクトに追加することができます:これは非同期ですが、このフレームワークはまた、いくつかの同期メソッドを持ってい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は、必要に応じて返されるオブジェクトのクラスの型です。

関連する問題