Как узнать количество строк в текстовом файле, не читая его целиком?

1. dmt 66 11.04.16 06:22 Сейчас в теме
Последовательно считываю большой файл.
У пользователя возникает вполне естественный вопрос, когда же закончится процедура.

Логично бы вывести некий прогресс-бар,
но непонятно как узнать количество строк не читая файл целиком.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. mudrak 11.04.16 06:53 Сейчас в теме
(1) dmt, количество строк не узнать никак заранее, зато у вас есть размер файла. На основе размера файла и длины строки сделаете прогресс-бар.
PlatonStepan; fzt; +2 Ответить
4. fzt 11.04.16 07:13 Сейчас в теме
6. dmt 66 11.04.16 07:31 Сейчас в теме
(2) mudrak, идея здравая, но попробовал посчитать, и получилось так,
что прогресс уже закончил прогрессировать, а загрузилось чуть больше половины файла.

Получилось так, что
1. первая строка небольшого размера
2. количество байт в файле больше, чем количество символов
9. fzt 11.04.16 07:49 Сейчас в теме
(6) dmt,
количество байт в файле больше, чем количество символов
а может на это и упороться? Вероятно недостающее число символов /2 = число строк.
Если я не заглючил, то в андроиде перевод строки состоит из двух байт, или одного? #10#13
Кажется один для перевода и EOF в конце..

Короче можно. Если знать кодировку файла ахаха %)
(число символов) - байт/(сколько байт (бит?) кодируют символ) - EOF
Как-то так, санитаров мне.
10. dmt 66 11.04.16 08:03 Сейчас в теме
(9) fzt, похоже, что символ латиницей занимает 1 байт, а кириллицей 2.

Чот сложно все. Передам-ка я количество строк из источника данных.
11. fzt 11.04.16 08:47 Сейчас в теме
(10) dmt, ну количество байт же известно.
Обработано 90005 из 598053968 байт ну и в проценты запнуть. Таким образом беру свои слова назад из (4).
Верный ответ в (2).
А то что в конце прогресс бар "прыгнет" на процентов 20-30% да и черт бы с ним.
13. dmt 66 11.04.16 09:23 Сейчас в теме
(11) fzt, спасибо.

(12) dj_serega, спасибо.
3. fzt 11.04.16 07:13 Сейчас в теме
Выполнить:
find /c /v "" <"1.txt"

Считать результат из консольки, или в файл запулить число строк и считать, дальше объяснять? ;-)
5. dj_serega 392 11.04.16 07:18 Сейчас в теме
(3) fzt, а на андроиде? Допустим.
8. fzt 11.04.16 07:46 Сейчас в теме
(5) dj_serega, в ТЗ не стояло. Желаете оформить новое? ;-)
А я хз какой там фреймворк 1С использует для андроида мобильных поделок. Да и вообще не было нужды мобильное ковырять.
Там никак не выполнить
wc -l file
?
7. dmt 66 11.04.16 07:32 Сейчас в теме
(3) fzt, действительно, нужно на мобильном устройстве.
12. dj_serega 392 11.04.16 09:01 Сейчас в теме
(7) dmt, Как знал :) Потому что и мне нужно было такое сделать. Решил так:
Каждая загрузка +- одинаковое количество строк. В конце загрузки пишу в константу "КоличествоСтрокПоследнейЗагрузки". Потом при открытии обработки обмена пишу в реквизит формы. А в процессе загрузки считываю сколько прочитано.
Работает и ладно :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот