v8: Как прочитать текстовый файл начиная с конца? #399674


#0 by ЭЦ
Здравствуйте. Прошу подсказать, как v8 прочитать текстовый файл начиная с последней строки? При последовательном доступе похоже читается только с начала. А другого способа доступа чтото не нашол. Спасибо
#1 by Torquader
Прочитать сначала в буфер, а потом уже из буфера - как левая нога пожелает.
#2 by ЭЦ
В буфер читать не хочу т.к. файл сильно большой. Хочу сразу читать с конца !
#3 by Jump
Дык не пихай в буфер сразу весь файл, а только последние строки.
#4 by ЭЦ
А как же это я туда последние строчки запихну?
#5 by Jump
Ну к примеру в файле десять строк, читаешь с первой по восьмую в Null, а с восьмой по десятую в буфер.
#6 by dimoff
Кто ж данные в текстовом файле хранит, чудо?
#7 by ЭЦ
Это здорово, только не понятно как узнать скока в файле строк. Его для этого придется сначала весь прочитать
#8 by ЭЦ
Да и в NULL читать - как то уж больно кондово.
#9 by sergeante
Где начало того конца, которым оканчивается начало? (с) А по сути сдаётся мне, что только с помощью WSH
#10 by sam_sam
программисты нах.
#11 by ЭЦ
Уважаемый То что Вы написали, это и есть последовательное чтение файла в буфер причем именно сначала. А мы тут думаем как бы прочитать файл сконца. Бо не раздувать этот буфер и впустую не тратить время на чтение.
#12 by Jump
Ну сказале же уже, либо WSH, либо последовательное чтение в буфер, чтобы не засорять память ненужные строки находящиеся в начале можно выкидывать. Ты бы вообще объяснил для чего тебе это нужно, может проще решение есть.
#13 by sam_sam
Ну, звыняй в 1С такого нету. Чего вы там всегда такое мастерите?
#14 by sam_sam
(+13) очумелые ручки. :))))
#15 by H A D G E H O G s
ВОТ! Ап стену. Рождаются же программистами. Возьмите Нетленку. Там. Это. Реализовано.
#16 by H A D G E H O G s
Объект Addin.FileStream Свойства Позиция Размер Процедура/функция ОкрытьФайл ПрочитатьФайл
#17 by ЭЦ
Да вот собственно хотелось убедиться, что в 8.1 без использования внешних компонент можно только сначала файл прочитать. А нужно для того, чтобы шипко длинные файлы обрабатывать т.к. известно, что нужная информация в них чаще находится ближе к концу. А файлы не мои я их в готовом виде получаю.
#18 by Живой Ископаемый
а что приходит ? ну, что в этих файлах?
#19 by Serg_1960
(в качестве бреда) Создаем DBF-файлик, заливаем в него строки текстового файла. После этого можно "читать" как угодно :))
#20 by H A D G E H O G s
Бред
#21 by Живой Ископаемый
Берем открываем в ФАРе этот файл по Ф3 - и жмем Контрол+Енд, читаем... Более того, если этот текстовый файл в данный момент пишется, то мы сразу увидим добавляемые строки...
#22 by H A D G E H O G s
Не факт. Смотря в каком режиме "своместности" был открыт файл.
#23 by Hard man
Аф_фтар признайся, "Отче наш" хочешь читать?
#24 by H A D G E H O G s
Британнику. Раздел - благодарности.
#25 by Hard man
Так не интересно.
#26 by ЭЦ
ГОСПОДА В файлах котировки ценных бумаг Но какое это имеет значение?
#27 by H A D G E H O G s
Ойк. 500$ и все вам сделаю.
#28 by Hard man
Как это какое? Попробуй громко и отчётливо читать "Отче наш" встав возле церкви, сразу узнаешь какое.
#29 by Hard man
+ Задом наперёд конечно читать.
#30 by hhhh
и что текстовый файл котировки ценных бумаг приближается к 1 ГБ? Это фантастика.
#31 by Господин ПЖ
текстовой файл по своей сути последовательно пишется и читается. Хотите "произвольный доступ" - пользуйте соответствующие структуры
#32 by H A D G E H O G s
Что в этом мире не есть "текстовый файл" ? :-)
#33 by Господин ПЖ
в конце концов забросить с таблицу sql и выбрать нужное. если fso и т.п. - это медленно.
#34 by Господин ПЖ
ну грубо говоря все состоит из символов. Но txt и mdf+ldf - две большие разницы по возможностям
#35 by romix
Чтение с конца м.б. придется имитировать через многократное чтение, буферизуя строк по 100. А м.б. там метод seek есть, надо смотреть.
#36 by romix
Или можно разрубить на мелкие файлики, только потом не забыть их стереть.
#37 by Serg_1960
ALL: после прочтения постов, мой вариант мне уже не кажется бредом :) Ага. Сделать такую мелкую гальотинку и порубить на файлики... авторов :)
#38 by Господин ПЖ
не бред. Только в dbf будет медленно. Bulk Insert или DTS так просто не обгонишь.
#39 by Serg_1960
Медленно - согласен. Но пусть сначала автор озвучит сколько строк в его файлике - кроме того что он "сильно большой". А то может быть и не стоит огород городить...
#40 by Torquader
Scripting.FileSystemObject позволяет пропускать данные (Skip). Но, чтобы прочитать последнюю строку файла нужно сначала найти разделитель последней и предпоследней строк, а это можно сделать только последовательным чтением файла сначала. Также хочу заметить, что данная функция честно читает файл по строкам, а не весь сразу в память, чем существенно экономит память и повышает производительность. Хотя, можно читать файл посимвольно назад. Для этого можно делать следующее:
#41 by Torquader
P.S. код писался с лёту, поэтому работоспособность не гарантиую (по крайней мере описание цикла не будет работать ни в одном мне известном языке) - перевод с JavaScript на 1С - сложное дело.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям