Последовательно достать строки с файла формата txt

У меня есть текстовый файл. Его содержимое например такое.

1. Первая строка#
2. Вторая строка#
3. n-я строка#

Есть для считывания такой метод.

func getDataFromFile(name: String , type:String) -> String {
    let pathFile = Bundle.main.path(forResource: name, ofType: type)
    let contentString = try! NSString(contentsOfFile: pathFile!, encoding: String.Encoding.utf8.rawValue)
    let  randomContent = contentString.components(separatedBy: ["#"]).randomElement()!.replacingOccurrences(of: "\"", with: "")
    return randomContent
}

C этим методом я могу считывать только рандомно строки, к тому же они повторяются. Как я могу считывать последовательно? Пример : у меня есть 10 строк, я считываю с 1-й по 10-ю и после этого например вывожу что уже каждая строка была извлечена с файла.


Ответы (1 шт):

Автор решения: Roman Podymov

Вы итак извлекаете все необходимые данные в getDataFromFile(name:type:). Просто возвращайте из этой функции все полученные строки. Вот как должна выглядеть getDataFromFile в таком случае:

func getDataFromFile(name: String , type: String) -> [String] {
    let pathFile = Bundle.main.path(forResource: name, ofType: type)
    let contentString = try! NSString(contentsOfFile: pathFile!, encoding: String.Encoding.utf8.rawValue)
    let fullContent = contentString.components(separatedBy: ["#"]).map { $0.replacingOccurrences(of: "\"", with: "") }
    return fullContent
}

Пример вызова:

let stringsFromFile = getDataFromFile(name: "file", type: "txt")
stringsFromFile.forEach {
    print($0)
}
→ Ссылка