Последовательно достать строки с файла формата 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)
}