如何在Swift中读取包含2列的文本文件?

时间:2017-03-07 23:37:41

标签: swift file import swift3

我有两个问题:

  1. 我需要打开文本文件
  2. 我需要读取数据(组织为2列)并存储到2个数组或多维数组中。 2列是数字x-y对(见下面的数据截图),所以无论哪种更容易对我有用,我只需要确保第一个x值对应第一个y值。
  3. enter image description here

    我的尝试:

    我尝试使用我在本网站上找到的代码,但它给了我一些我无法弄清楚的错误:

    let path:String = Bundle.mainBundle().pathForResource("README", ofType: "txt")!
     textView.text = String(contentsOfFile: path,
                     encoding: NSUTF8StringEncoding,
                     error: nil)
    

    第一个问题的代码错误:

      

    无法调用非功能类型'Bundle'的值

         

    使用未解析的标识符'textView'

1 个答案:

答案 0 :(得分:2)

对于第一个问题,这是有效的:

    let url = Bundle.main.url(forResource: "myResource", withExtension: "txt")
    let text = try? String(contentsOf: url!)
    print(text ?? "")

对于未解析的标识符部分,请确保textView的定义正确并且源代码将您的应用程序作为其目标

第二个问题:

让我们说我们的文本文件中有这三行: 第一酮\ n 第二个\ n 第三个

   var pairs = [(Double,Double)]()

    for line in (text?.components(separatedBy: "\n").dropFirst())!{
        if line != "" {
            let sep = # separator is here
            let words = line.components(separatedBy: sep)
            pairs.append((Double(words[0])!,Double(words[1])!))
        }
    }


    // for reading of the values

    for pair in pairs{
        print(pair) // equivalent to : (pair.0,pair.1)
    }