2015-03-18 2 views
2

Я не могу понять, как подсчитать строки в txt/log-файле.Подсчитайте количество строк в txt/log-файле, swift

var n = 0 
var x = 0 
while x < 1{ 
let path = NSBundle.mainBundle().pathForResource("test)", ofType: "log") 
var text = String(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: nil)! 

var textArr = text.componentsSeparatedByString("\r") 
var rad: String = textArr[n] 
n=n+1 
} 

С помощью этого кода я получаю «фатальную ошибку: индекс массива вне диапазона» в конце файла (но правильное количество строк в переменной п). Я не хочу ошибки, я хочу сохранить количество строк в переменной. Как мне это сделать?

+0

Переменная 'n' нигде не задана в вашем коде. - Вы знаете, что индексы массива * с нулевым значением *, т. Е. Последний действительный индекс - 'textArr.count - 1'? –

+0

'textArr as? Array.count' –

ответ

4

Я не могу помочь вам с быстрым, но логика предположит, что вы действуйте следующим образом: (который, кажется, очень близко к тому, что вы сделали)

  1. Получит ваш файл в string. Вы это сделали.
  2. Отделите string на array (с избыточным символом, который будет отмечать конец строки в документе или символ новой строки (\ n)). Вы сделали это.
  3. просто count элементы в array (Вы используете строку таким образом, что ускользает от меня, потому что я не могу прочитать скор)

Я угадывание

var myCount = textArr.count 

Это даст вам int, с которым вы можете делать все, что хотите.

Обратите внимание, что если вы хотите получить доступ к этой строке в массиве, вам нужно будет использовать n-1, потому что, как вы, безусловно, знаете, если ваш счет равен 1, элемент находится в индексе count-1, так что нуль. что также возможно, почему вы получаете ошибку за пределами

+0

Спасибо! Это решило. – Martik

Смежные вопросы