Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/75: Рейтинг темы: голосов - 75, средняя оценка - 4.89
7 / 9 / 4
Регистрация: 25.02.2017
Сообщений: 139

Считать последнюю строку из файла

08.11.2017, 07:23. Показов 16609. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, у меня есть текстовый файл с содержимым
C#
1
2
3
1 audi 1999 vasil
0 ford 2009 genri
0 lada 1980 leonid
Мне нужно в строку считать только последнюю строку. Возможно ли это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2017, 07:23
Ответы с готовыми решениями:

Как добаватить текст в последнюю строку текстового файла
пересмотрел много в Гугле, подскажите пожалуйста,как добавить текст в первую строку текстового файла,перед всем остальным текстом ...

Удалить последнюю строку из файла и посчитать количество символов в тексте
Прочитали текст из файла и теперь нужно удалить последнюю строку и посчитать количество символов в тексте.

Считать последнюю строку файла
Доброго времени суток! есть файл который имеет структуру(ниже), надо считать данные. До последней строки получается. Как быть с последней...

28
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
08.11.2017, 21:00
Студворк — интернет-сервис помощи студентам
Usaga, У самого был опыт решения подобной задачи (не спрашивайте зачем). В итоге залез в исходники ReadLine у StreamReader (тогда еще исходников не было в свободном доступе) и реализовал так же, но в обратную сторону. Получилось на подобие, как предлагали вы. Мне казалось это наиболее оптимальным. Но учитывая, что текстовый файл не предназначен для чтения определенных строк и соответственно любое решению уже будет своего рода костылем, то понятие оптимальный получается достаточно неоднозначным. По быстродействию, по памяти, по времени написания кода и т.п.. И, например, считывать строки последовательно перезаписывая ими некую переменную, которая после выхода их цикла и станет последней строкой, может стать в некотором случае более оптимальным. Но я за первый вариант, ибо при почти любом размере файла он будет стабилен.
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
09.11.2017, 06:25
Цитата Сообщение от Shogun31337 Посмотреть сообщение
В частности, если не стоят жесткие требования к производительности, то почему бы не использовать метод менее производительный, зато на порядки быстрее в реализации?
Менее производительный (менее, Карл!) - да, можно и нужно применять, если это написать намного быстрее. Но ReadAllLine().Last() - это максимально хреновый вариант.

Цитата Сообщение от Shogun31337 Посмотреть сообщение
И раз уж зашел разговор о собеседовании, то встает вопрос - согласится ли работодатель оплачивать время, потраченное на решение задачи, на решение которой нужно 2 секунды (повторюсь, при условии, что о производительности речи не идет)
Написать нормальное решение, в данном случае, минутное дело: промотать поток назад от конца файла до первого CRLF, а потом вызвать ReadLine(). Можно буферизировать чтение через BufferedStream для поднятия производительности, благо, что это всего одна строчка кода дополнительная. Такое решение покажет работодателю, что человек умеет пользоваться головой мозга и хоть что-то понимает, а не хватает первое попавшееся средство из BCL, лишь бы выдало что-то похожее на результат.

Цитата Сообщение от sldp Посмотреть сообщение
И, например, считывать строки последовательно перезаписывая ими некую переменную, которая после выхода их цикла и станет последней строкой, может стать в некотором случае более оптимальным.
Нет не будет. Вместо того, чтобы сразу найти нужную строку в файле и прочитать только её (благо, что её положение известно заранее - последняя в документе), такой подход будет вычитывать ВСЕ данные (про которые заранее известно, что они на хрен не нужны), создавать объекты строк, и тут же их выкидывать, ибо они не нужны, мы же последнюю ищем. Да, создание объектов и их вычистка из нулевого поколения быстра, но ведь аргументом в пользу такого решение выступает не это, а то, что данное решение уже есть в BCL. А раз есть и работает (пофигу как), то оно автоматически становится "оптимальным".
0
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
09.11.2017, 12:27
Usaga, Оптимальнее с точки зрения проделанной работы компьютером - да. Оптимальнее с точки зрения затраченных человеко-часов и отказоустойчивости кода - нет. Повторюсь, что оба варианта являются костылями в контексте работы с текстовыми файлами. Костыль есть костыль. Я не топлю за второй вариант. Но на практике не всегда лучший вариант тот, который быстрее.
Главный аргумент в том, что такой подход будет работать стабильно и потребует меньше времени для его написания. Согласен, что может здесь и не лучший пример, но все равно слегка прослеживается классическая дилемма оптимизаций со своим начальным вопросом "А нужна ли здесь вообще оптимизация?".
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
09.11.2017, 12:34
sldp, вы путаете оптимизацию и нормальное решение.

Добавлено через 2 минуты
Нормальное решение - читать только то, что нужно только оттуда, откуда нужно. Хреновое решение - применить любой первый попавшийся под руку готовый механизм, лишь бы, хотя бы побочно, оно выдало то, что нужно. Чувствуете разницу?

Оптимизация тут вообще не причём.
0
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
09.11.2017, 12:37
Usaga, Наверно так и есть. Сам бы придрался к своему комментарию будь он не мой)
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
09.11.2017, 12:39
sldp, я с вами согласен, что "грязное" решение может быть лучше "нормального" в плане времени на него потраченного. Но тут же совсем уже хрень... Ну серьёзно...
0
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
09.11.2017, 12:45
Usaga, Смотрите. Первая мысль - решить задачу c помощью BCL, как завещали. Потом приходит осознание, что проделывается слишком избыточная работа. И вот тот и приходит оптимизация. Нужна ли она? Или есть возможность вообще по другому реализовать доступ и хранение информации?

Добавлено через 50 секунд
Это два ответа к первому сообщению)

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
я с вами согласен, что "грязное" решение может быть лучше "нормального" в плане времени на него потраченного. Но тут же совсем уже хрень... Ну серьёзно...
Тут да. Я в целом защищал абстрактный более медленный подход
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
09.11.2017, 12:47
Цитата Сообщение от sldp Посмотреть сообщение
Потом приходит осознание, что проделывается слишком избыточная работа.
Ага, щаЗ. Если что-то заработало хоть как-то, то из кругозора оно сразу же выпадает. Это если совсем уже конские тормоза появляются, тогда человек за мозг профилировщик берётся. Вы слишком высокого мнения о людях)
0
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
09.11.2017, 12:53
Usaga, Верим в лучшее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2017, 12:53

считать только последнюю строку из файла не обрабатывая другие
Можно как-то считать только последнюю строку из файла не обрабатывая другие...то-есть просто как-то поместить указатель в конце файла и...

Из текстового файла считать вторую строку и последнюю. Записать их в другой текстовой файл
Из текстового файла считать вторую строку и последнюю. Записать их в другой текстовой файл. Прошу помочь в написании программы. Буду...

Дан текстовый файл. Вставить в начало файла его последнюю строку, а в конец первую строку.
Помогите решить задание, заранее спасибо. Дан текстовый файл. Вставить в начало файла его последнюю строку, а в конец первую строку.

Считать с файла (input.txt) строку, перевернуть строку, записать файл (put.txt) эту строку
Считать с файла (input.txt) строку, перевернуть строку, записать файл (put.txt) эту строку.

Взять последнюю строку из файла
Я новичок! (не яд). Короче, у меня есть текстовый файл очень большого объема (36,6 Мб) и мне нужно взять из него только последнюю строку....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru