powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как прочитать файл с конца?
10 сообщений из 10, страница 1 из 1
Как прочитать файл с конца?
    #38430840
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста?
Хочу, к примеру, последние 10 строк вывести..
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38430852
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coder1cv8Подскажите, пожалуйста?
Хочу, к примеру, последние 10 строк вывести..
у стримов есть метод MoveTo, который переместит позицию чтения в нужное вам место, вот и двигайте ее в нужное место,
вот только так чтобы последние 10 строк не получится, проще вам сами прочитать все построчно с самого начала, или с конца читать блоками например по 100 символов и считать сколько там переводов строки.
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38430863
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно примерчик?

авторs stream = ##class(%FileCharacterStream).%New()
s stream.Filename = fileName
d stream.MoveToEnd()

Дальше while пока что?
Пусть не количество строк будет, а читаем пока не встретим определенного содержания строку, так проще?
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38430867
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если ты переместишься в конец, то читать уже будет нечего там уже конец файла, нет чтения в обратном порядке.
поэтому нужно сдвинуться на позицию Size-100, прочитать 100 символов, проверить, если нужно еще, двигаемся еще назад Size-200 и опять читаем 100, проверяем и так далее, пока не найдем нужные нам данные.
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38430876
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor , а! дошло. Спасибо!
Проще тогда с начала весь файл прочитать.
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38431080
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я каше не читал, но ... :)
а что под линуксом нельзя используя пайпы и команду tail передать каше на чтение нужное к-во строк
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38432235
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluconat_caя каше не читал, но ... :)
Тогда зачем советовать?
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38432249
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П.С.М.gluconat_caя каше не читал, но ... :)
Тогда зачем советовать?
Во первых "не читал каше" не означает "не знаком с М".
Во вторых, если мой "совет" в каше возможен, то зачем тогда замечание "зачем советовать?"
И в третьих - П.С.М нет в списке модераторов, так что ...
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38432366
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант с tail вполне допустим, напримерdo ##class(%Net.Remote.Utility).RunCommandViaCPIPE("tail ..\cconsole.log",,.s)
write s,!выводит последние 10 записей файла cconsole.log .

PS: утилиту tail.exe под Windows можно найти здесь .
...
Рейтинг: 0 / 0
Как прочитать файл с конца?
    #38432373
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на примере из главы 4 (Local Interprocess Communication) Cashe I/O Device Guide.
как-то такgettail
       ;n -кол-во строк
       ;file - откуда
       SET IO="/usr/bin/tail -n "_n_" "_file
       SET $ZTRAP="EOT"
       OPEN IO:"Q"
       USE IO
       FOR I=1:1  READ TAIL(I)
       QUIT
EOT
      SET $ZTRAP=""
      USE 0
      CLOSE IO
      QUIT
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как прочитать файл с конца?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]