質問編集履歴

2 1列ではなく1行目でした。

testyoutatsu

testyoutatsu score 21

2018/07/29 15:53  投稿

【Swift/Excel】.csvを読み込むために複数ファイルの最初の1をまとめて削除したい
【Swift/Excel】.csvを読み込むために複数ファイルの最初の1をまとめて削除したい
### 前提・実現したいこと
プログラミング初心者です。
MacOSのXcodeで読み込むために大量の.csvファイル全ての最初の1列を削除したいです。
文字化けしている1列目を削除しないでxcodeで読み込める方法があればそちらについても回答をお願いします。
xcodeにて.csvファイルを読み込むために以下のようなコードを使いました。
```Swift
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
}
}
//改行コードを"\n"に統一
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
}
//" (スペース)"を削除し、"\n"と","で区切り配列を作る
func cnvert(data: String) -> [[String]] {
let deleteSpace = data.replacingOccurrences(of:" ", with:"")
var result: [[String]] = []
let rows = deleteSpace.components(separatedBy: "\n")
for row in rows {
let columns = row.components(separatedBy: ",")
result.append(columns)
}
return result
}
//変数dictionaryにデータを格納
var dictionary = [[String]]()
func dict() {
var data = readDataFromCSV(fileName: "ファイル名", fileType: "csv")
data = cleanRows(file: data!)
dictionary = cnvert(data: data!)
print(dictionary)
}
```
読み込もうとしている.csvファイルは以下です。
```.csvファイル
ì˙éû,éníl(BID),çÇíl(BID),à¿íl(BID),èIíl(BID),éníl(ASK),çÇíl(ASK),à¿íl(ASK),èIíl(ASK)
2018/01/03 07:00:00,112.269,112.271,112.245,112.263,112.313,112.313,112.294,112.307
2018/01/03 07:01:00,112.263,112.263,112.259,112.259,112.307,112.307,112.303,112.303
2018/01/03 07:02:00,112.259,112.302,112.259,112.277,112.303,112.317,112.295,112.301
2018/01/03 07:03:00,112.277,112.323,112.277,112.323,112.301,112.338,112.3,112.338
```
### 発生している問題・エラーメッセージ
1列目が文字化けしていて、このまま読み込もうとするとdo-catchでnilを返してしまいます。
### 試したこと
xcodeに取り込んだ.csvファイルの1列目を削除すると問題なく読み込むことができました。
  • Xcode

    4927 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Excel

    1927 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • Swift

    8763 questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1

testyoutatsu

testyoutatsu score 21

2018/07/28 02:27  投稿

【Swift/Excel】.csvを読み込むために最初の1列を削除したい
【Swift/Excel】.csvを読み込むために複数ファイルの最初の1列をまとめて削除したい
### 前提・実現したいこと
プログラミング初心者です。
MacOSのXcodeで読み込むために大量の.csvファイル全ての最初の1列を削除したいです。
文字化けしている1列目を削除しないでxcodeで読み込める方法があればそちらについても回答をお願いします。
xcodeにて.csvファイルを読み込むために以下のようなコードを使いました。
```Swift
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
}
}
//改行コードを"\n"に統一
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
}
//" (スペース)"を削除し、"\n"と","で区切り配列を作る
func cnvert(data: String) -> [[String]] {
let deleteSpace = data.replacingOccurrences(of:" ", with:"")
var result: [[String]] = []
let rows = deleteSpace.components(separatedBy: "\n")
for row in rows {
let columns = row.components(separatedBy: ",")
result.append(columns)
}
return result
}
//変数dictionaryにデータを格納
var dictionary = [[String]]()
func dict() {
var data = readDataFromCSV(fileName: "ファイル名", fileType: "csv")
data = cleanRows(file: data!)
dictionary = cnvert(data: data!)
print(dictionary)
}
```
読み込もうとしている.csvファイルは以下です。
```.csvファイル
ì˙éû,éníl(BID),çÇíl(BID),à¿íl(BID),èIíl(BID),éníl(ASK),çÇíl(ASK),à¿íl(ASK),èIíl(ASK)
2018/01/03 07:00:00,112.269,112.271,112.245,112.263,112.313,112.313,112.294,112.307
2018/01/03 07:01:00,112.263,112.263,112.259,112.259,112.307,112.307,112.303,112.303
2018/01/03 07:02:00,112.259,112.302,112.259,112.277,112.303,112.317,112.295,112.301
2018/01/03 07:03:00,112.277,112.323,112.277,112.323,112.301,112.338,112.3,112.338
```
### 発生している問題・エラーメッセージ
1列目が文字化けしていて、このまま読み込もうとするとdo-catchでnilを返してしまいます。
### 試したこと
xcodeに取り込んだ.csvファイルの1列目を削除すると問題なく読み込むことができました。
  • Xcode

    4927 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Excel

    1927 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • Swift

    8763 questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る