|
0 / 0 / 0
Регистрация: 13.03.2007
Сообщений: 28
|
|
Прочитать текстовый файл и вывести последних N-строк11.04.2007, 14:32. Показов 1918. Ответов 5
Метки нет (Все метки)
Привет
может подскажите как лучше реализовать алгоритм: Надо из текстового файла в ДОС-кодировке вывести послних 10 строк в обратном порядке. Задачу решил быстро: через Scripting.FileSystemObject считываю все строки построчно в массив потом в обратном порядке считываю строки и вывожу. ДОС-кодировка тож не проблема через content='text/html; charset=cp866' Но я в смущении - а что если текстовый файл будет занимать несколько гигов - получается для того чтоб вывести 10 последних записей я должен перелопатить весь файл? Жалко ресурсов сервера. И второй момент - хотелось бы все-таки результат выводить в кодировке windows-1251
0
|
|
| 11.04.2007, 14:32 | |
|
Ответы с готовыми решениями:
5
Как можно прочитать файл текстовый в кодировке UTF-8? Вывести 10 последних строк лога! Как вывести вывести в текстовый файл элементы из List? |
|
Sergik
|
|
| 11.04.2007, 20:32 | |
|
Насчет кодировки компонентов бесплатных всяких полно. Насчет алгоритма:
1) через FSO открываешь файл 2) делаешь file.readall в переменную 3) делаешь четыре раза InStrRev с chr(13) 4) получаешь таким образом номер последнего символа в четвертой строке с конца |
|
|
0 / 0 / 0
Регистрация: 13.03.2007
Сообщений: 28
|
|
| 12.04.2007, 09:15 [ТС] | |
|
>Насчет кодировки компонентов бесплатных всяких полно.
Легче уж тогда свой перекодировщик написать на скрипте :-) >1) через FSO открываешь файл >2) делаешь file.readall в переменную Вот тут момент тоже интересный - а как идет работа с переменной в памяти - что если текстовый файл несколько гигов???
0
|
|
|
Sergik
|
|
| 12.04.2007, 11:55 | |
|
Согласен, алгоритм не годится :-)
К сожалению не знаю как действительно открывается файл. Если извесно заранее максимальное кол-во символов в строке (к примеру 255), то можно сделать так: узнал бы размер файла; открыл его как TextStream; вызвал метод Skip, в качестве параметра передал бы ему Размер_файла-255*кол-во_нужных строк; считал все оставшееся в переменную; выполнил бы описанные в предпредыдущем сообщении действия (InstrRev и т.д.). Возникает один вопрос: что быстрее - ReadAll и два гигабайта в памяти ;-) или Skip двух гигабайтов и коротенькая переменная в памяти |
|
|
lemming
|
|
| 12.04.2007, 12:39 | |
|
Я бы написал свой объект для работы с файлом. На низком уровне все очень просто, думаю, Вам это известно. FSO не содержит полной функциональности. К тому же, пардон, задача нестандартная и решать ее стандартными средствами неэффективно.
|
|
|
Sergik
|
|
| 12.04.2007, 13:13 | |
|
Полностью согласен, естественно, что с помощью ASP решать эту проблему бессмысленно, обсуждение носило чисто теоретический характер, к тому же алгоритмы везде одинаковы и если писать на чем-то другом (исключая, разве что, обработку FAT ассемблером), то тока синтаксис и поменяется
|
|
| 12.04.2007, 13:13 | |
|
Помогаю со студенческими работами здесь
6
Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла Дано число k и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл согласно своему варианту. Dev C++
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|