|
1 / 1 / 1
Регистрация: 17.10.2013
Сообщений: 41
|
|
Реализация команды "tail" на Windows на языке C++09.09.2016, 10:16. Показов 4338. Ответов 6
Метки нет (Все метки)
В общем задание следующее: В консоли Linux есть команда "tail", аналог которой надо сделать под консоль Windows на языке C++. В идеале требуется реализация посредством WinAPI, но можно и иначе. В общем надеюсь на помощь.
Заранее спасибо.
0
|
|
| 09.09.2016, 10:16 | |
|
Ответы с готовыми решениями:
6
Команды безусловного и условного переходов в языке Ассемблер. Реализация конструкции if-else на языке c++ Разработать командный файл (аналог команды tail в Unix) Разработать командный файл (аналог команды tail в Unix). Командный файл печатает конец файла |
|
Заблокирован
|
|
| 09.09.2016, 11:14 | |
|
Хорошо. А в чем вопрос? Позиция для чтения в файле может быть установлена любая. Соответственно, ты можешь установить ее ближе к концу, прочитать буфер, вывести строки. И так читать, двигаясь в началу файла, пока не наберешь нужное кол-во строк, либо не достигнешь конца файла.
1
|
|
|
|
|
| 09.09.2016, 16:11 | |
|
1
|
|
| 09.09.2016, 23:32 | |
|
Именно, как советует nimazzzy: отобразить в память, для бинарных данных отсчитать от конца файла размер, для текстовых - обратным поиском отсчитать нужное число EOL и с этого места вывести текст.
0
|
|
|
|
||
| 10.09.2016, 11:42 | ||
|
Твой вариант представляет собой топорное решение, которое не будет работать в случае, когда большой файл не лезет в память Обе проблемы можно решить так. Допустим, нам надо 10 последних строк. Завожу массив из 10 элементов. Потом побайтно (построчно, не суть) читаю файл и ищу те позиции, которые соответсвуют началу строки. В 1-й элемент массива заношу позицию в файле начала 1-й строки, во 2-й элемент массива заношу позицию в файле начала 2-й строки и т.п. Когда доходим до 11-й строки, то делаю сдвиг в массиве таким образом, что 1-й элемент массива начинает содержать позицию 2-й строки, 2-й элемент массива начинает содержать позицию 3-й строки и т.п. В освободившийся 10-й элемент записываем позицию 11-й строки. И так далее. Постоянно сдвигая массив и записывая в конец позицию текущей строки мы будем иметь информацию о позициях последних 10 строк. Математически оно выглядит как постоянный сдвиг массива, но технически это будет кольцевой буфер без операций сдвига, хотя принципиально разницы не играет, т.к. основные потери времени будут в чтении файла, а вовсе не в сдвиге массива Но лучше всего взять и разобраться с исходниками вражеского tail'а и не изобретать велосипеды
0
|
||
| 10.09.2016, 12:12 | ||
0
|
||
|
|
|
| 10.09.2016, 13:07 | |
|
0
|
|
| 10.09.2016, 13:07 | |
|
Помогаю со студенческими работами здесь
7
Реализация UNIX команды "cat" в консоли Windows с использованием WinAPI Реализация команды "cat" в консоли Windows WPF команды и MVVM. Часть 2. Всплытие команд. Реализация команды для списка элементов [WPF, Элд Хасп] Выполните последовательно команды на языке программирования Команды пересылки и обмена данными в языке Ассемблер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|