|
7 / 9 / 4
Регистрация: 25.02.2017
Сообщений: 139
|
||||||
Считать последнюю строку из файла08.11.2017, 07:23. Показов 16343. Ответов 28
Метки нет (Все метки)
Привет, у меня есть текстовый файл с содержимым
0
|
||||||
| 08.11.2017, 07:23 | |
|
Ответы с готовыми решениями:
28
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
|
|
| 08.11.2017, 07:27 | |
|
Крок, да возможно. Только это "вручную" делать придётся. Открываете поток файла, перематываете указатель позиции чтения в самый конец потока, потом читаете посимвольно данные в обратном порядке, к началу, пока не попадётся символ переноса строки (CRLF или просто LF), это и будет начало последней строки. Можно будет или данные ранее прочитанные "развернуть" или заново всё прочитать, но уже в сторону конца файла. Ну и сразу же после перемотки вы можете видеть символ переноса строки, так как последняя строка таким символом тоже может заканчиваться, его нужно будет проигнорировать.
0
|
|
|
7 / 9 / 4
Регистрация: 25.02.2017
Сообщений: 139
|
|
| 08.11.2017, 07:37 [ТС] | |
|
Спасибо, буду пробовать
0
|
|
|
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
|
|
| 08.11.2017, 08:15 | |
|
Крок, а
string s = File.ReadAllLines("").Last(); Вам не подойдет? Или же Вам нужна именно последняя строка файла, без загрузки его в память?
0
|
|
| 08.11.2017, 08:20 | |
|
Не по теме: Shogun31337, я вот прямо ожидал, что кто-нибудь такое предложит. :)
0
|
|
| 08.11.2017, 08:30 | |
|
Не по теме: Usaga, ну дык самое очевидное решение. :)
0
|
|
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||||||||
| 08.11.2017, 11:24 | ||||||||
|
Не по теме:
и, находящихся на первых строках результата поиска решений, хватит на over9000 всемирных потопов :( Кликните здесь для просмотра всего текста
0
|
||||||||
|
20 / 36 / 14
Регистрация: 08.10.2015
Сообщений: 406
|
||||||
| 08.11.2017, 12:06 | ||||||
|
попробуй так, но не гарантирую, что ошибок не будет
0
|
||||||
|
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
|
||
| 08.11.2017, 12:44 | ||
|
Не по теме:
Хотя, немного исправлю себя - лучше, в данном случае, использовать ReadLines(), а не ReadAllLines(). Добавлено через 2 минуты Не по теме: Aumi, что то Вы совсем перемудрили! :)
0
|
||
| 08.11.2017, 13:16 | |||||
|
Не по теме:
ReadLines().Reverse() - возможно да, - это будет оптимально, однако я не искал инфы по перфомансу этой шняги (а вдруг там *опа) и решил положится на ответ авторитета (Jon Skeet)
0
|
|||||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
| 08.11.2017, 13:49 | |
|
0
|
|
| 08.11.2017, 14:05 | ||||
|
Не по теме:
0
|
||||
| 08.11.2017, 16:54 | |||||||||||||||
|
Не по теме:
При использовании Reverse потребление памяти растет астрономически. Last на реально мощном ноуте выдает посл. строку 1,5ГБ файла за 10 сек при стабильно малом потреблении памяти около 14мб (стоит ссд, но тестил на втором 5400rpm hdd) Тест
По поводу Reverse - это было "логичное" предположение идти с конца, но я не в курсе был что Reverse отожрет память. О чем собственно, подстраховался. Конкретно для этой задачи, - наверняка пофигу(сразу понятно было), что юзать, для других - 10 и более секунд может быть критично (да и там скорее БД будет лучше). Так же можно проверить перфоманс MiscUtils. пс Также в коде выше можете посмотреть время создания запросов. Еще, например для List<> Last() имеет сложность O(1) тк там будет выполнено
0
|
|||||||||||||||
| 08.11.2017, 19:21 | |||||
|
Не по теме:
0
|
|||||
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
|
||
| 08.11.2017, 19:29 | ||
|
Читать содержимое файла тоже можно по-разному. Я предложил самый эффективный вариант. Но и его изговнять можно, если читать файл по-байтово, а не блоками по несколько килобайт. Shogun31337, ваш вариант хорош только тем, что краток. Но он ниразу не эффективен, только бездумен. Такое можно использовать только в личных целях и молча, чтобы никто не видел, но советовать другим - откровенно вредить. Нуб не может отличить где что, хрень вы посоветовали или нет. Он возьмёт тот совет, что выглядит проще. Это потом уже, ему на собеседовании скажут, что он на фиг не нужен в роли программиста, когда начнёт демонстрировать подобные "навыки".
0
|
||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|||||||||||||
| 08.11.2017, 19:58 | |||||||||||||
|
Не по теме:
Это интерфейс :)
Например, тот же ReadLines
Добавлено через 3 минуты Плюс кодировку файла нужно учитывать при побайтовом чтении.
0
|
|||||||||||||
|
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
|
||||||
| 08.11.2017, 20:05 | ||||||
С точки зрения производительности, не эффективен! Согласен!
0
|
||||||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||||||
| 08.11.2017, 20:05 | ||||||
|
пс - тот же ReadLines - итератор
0
|
||||||
|
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
|
|||
| 08.11.2017, 20:13 | |||
![]()
0
|
|||
| 08.11.2017, 20:13 | |
|
Помогаю со студенческими работами здесь
20
считать только последнюю строку из файла не обрабатывая другие Из текстового файла считать вторую строку и последнюю. Записать их в другой текстовой файл
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|