Как сделать так чтобы число файлов открытых последними было равно 6

Обновлено: 04.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Всё началось с того, что я заинтересовался, как найти в системе файлы созданные или изменённые за определённый промежуток времени. Например, как узнать, какие файлы в папке /etc были изменены за последний день или за последнюю неделю?

С этой задачей прекрасно справляется команда find, правда выяснилось, что у каждого файла доступны следующие метки времени:

  • Доступ
  • Модифицирован
  • Изменён
  • Создан

Чтобы понимать, что именно мы нашли, нужно чётко знать разницу между этими свойствами файла.

Именно этому и посвящена данная статья, в ней будет рассказано:

  • как посмотреть время изменения файла и чем время изменения отличается от времени модификации файла
  • как узнать, когда файл последний раз открывали
  • как узнать время создания файла в Linux
  • как поменять время доступа, модификации и изменения файла.
  • как поменять время создания файла в Linux и возможно ли это вообще
  • как найти файлы, которые недавно были изменены или открыты
  • как найти файлы, которые открывали, редактировали или создавали в определённый день или определённое время назад

Все эти вопросы имеют практический смысл: от простого домашнего использования — поиск файла, для которого мы не помним имя, но для которого помним время создания; до серьёзного профессионального — появление новых файлов на сервере, либо недавние модификации важных файлов, могут свидетельствовать о взломе системы или неавторизованном доступе, могут помочь при расследовании подобных случаев для понимания событий произошедшего. Либо быть применены с противоположными мотивами — что и как нужно поменять в метках времени, чтобы снизить возможности криминалистического исследования.

Временные метки файла в файловой системе и в метаданных

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

Кроме как в свойствах файла в файловой системе, временные метки могут храниться в метаданных самого файла. Очень многие форматы имеют метаданные и довольно часто эти метаданные содержат свой собственный набор временных меток, которые отличаются по составу и даже по текущему их значению от меток времени в файловой системе. Например, для документов Word в метаданных кроме даты создания могут также содержаться метки времени о дате печати файла, об общем времени редактировании файла и так далее.

Для изображений в EXIF метаданных также могут содержаться независимая от файловой системы информация о времени создания файла.

Нельзя ни в коем случае забывать о метаданных если ваша цель отредактировать метки времени! Для доступа/редактирования к метаданным используются различные приложения и эти вопросы не входят в тему данной статьи. Данная статья посвящена меткам времени файлов и папо, которые хранит файловая система.

Как посмотреть время создания, редактирования и открытия файла в Linux

Сразу все временные метки файла можно посмотреть с помощью команды stat. Запуск очень простой:

Например, я хочу узнать информацию о файле prog.txt:


С временем создания всё понятно — это когда файл был создан. Между прочим, эту информацию программа stat стала показывать довольно недавно. До этого на вопрос «как узнать время создания файла?» знатоки отвечали, что ядро Linux это не поддерживает. В качестве рабочего решения нужно было посмотреть иноду интересующего файла, а затем другой командой посмотреть дату создания этой иноды — это и считалось временем создания файла.

Выше показан вывод для команды на файловой системе ext4. Для файловой системы ext2 дата создания файла по-прежнему недоступна:


Теперь давайте разберёмся, что означают другие метки времени в Linux.

Что такое время доступа к файлу, время модификации файла и время изменения файла в Linux

Метки времени (timestamps):

Доступ (Access - last access) — время, когда файл был прочитан последний раз. Это время меняется при доступе таких системных вызовов как mknod(2), utimes(2) и read(2). Если это текстовый файл, то дата последнего доступа обновляется при каждом его открытии. Если это исполнимый файл, то дата доступа обновится при его запуске.

Но прежде чем придумывать практическое использование времени последнего доступа к файлу (например, чтобы проверить, какие команды запускалась за последний час), нужно учитывать очень важные нюансы. Выше показано, что поддержка определённых меток времени зависит от файловой системы. Ещё поведение меток времени зависит от того, с какими опциями была смонтирована файловая система. Например, при запуске скрипта мы ожидаем, что время доступа к этому файлу изменится на текущее. Это так — для выполнения скрипта его нужно прочитать и atime должна поменяться на время выполнения. Обычно это так и происходит. Но если запускаемый/читаемый файл находится в файловой системе, которая смонтирована с опциями noatime или relatime (или другими возможными опциями, которые могут повлиять на изменение atime — к пример «только чтение»), то поведение будет другим.

noatime

Не обновлять на этой файловой системе время доступа к иноде (например, для ускорения производительности за счёт исключения ненужных операций)

relatime

Обновлять время доступа к иноде относительно времени модификации или изменения. Время доступа обновляется только если предыдущее время доступа было более старым, чем время модификации или изменения, либо если предыдущее время доступа старше 1 дня.

Итак — время последнего доступа к файлу может быть неточным! По сути, если при монтировании диска используется опция relatime, то получается, что оно показывает:

1) время последнего изменения или модификации файла

2) время сегодняшнего первого открытия файла

3) ИНОГДА оно действительно показывает время последнего доступа к файлу (если сегодня файл открывали только один раз), либо если этот доступ к файлу выполнен после его модификации или изменения статуса

Модифицирован (Modify - last modified) — время последнего изменения содержимого файла. То есть если это текстовый файл, то время модификации поменяется когда вы его откроете и удалите какое-то слово или что-то допишите. Меняется системными вызовами mknod(2), utimes(2) и write(2).

Изменён (Change - last changed) — Время последнего изменения метаданных файлов в файловой системе. То есть если в файле изображения вы измените EXIF метаданные — это будет модификация (поскольку по сути поменяется содержимое файла). Примером Изменения файла является смена разрешений доступа к нему (чтение, запись, выполнение), смена владельца, группы и т. д. Меняется с chmod(2), chown(2), link(2), mknod

Что такое время доступа, время модификации и время изменения директории в Linux

Посмотреть метки времени папки можно также с помощью команды stat:

Например, чтобы посмотреть информацию о текущей папке:

Для папок время последнего доступа обновляется при просмотре списка файлов внутри неё. Действуют такие же правила, как и для файлов — зависит от опций, с которыми смонтирована файловая система.

При создании или удалении нового файла внутри директории, при модификации содержимого или изменении свойств файла внутри папки, одновременно обновляется и время изменения, и время модификации данной папки.

Какое время показывает команда ls -l

Если запустить команду ls с опцией -l, то она покажет последнее время модификации содержимого файла (или директории). Используя опцию --time можно вызвать показ других меток времени:

Как можно увидеть, с помощью ls невозможно вывести время создания файла, поскольку эта возможность была добавлена в ядро недавно.

Если добавить опцию --sort=time, то будет также выполнена сортировка по выбранной метки времени.

Имеется несколько сокращённых опций:

Можно выбрать формат времени:

Значением TIME_STYLE могут быть: full-iso, long-iso, iso, locale или +ФОРМАТ.

Значение ФОРМАТа как в date(1). Если значение ФОРМАТа равно ФОРМАТ1<новая строка>ФОРМАТ2, то ФОРМАТ1 применяется не к последним файлам, а ФОРМАТ2 к новым. Если TIME_STYLE начинается с «posix-», то он применяется только для локалей отличных от POSIX. Также, используемый стиль по умолчанию задаёт переменная окружения TIME_STYLE.

Есть сокращение популярного варианта:

Поиск и сортировка файлов по времени модификации, доступа и изменения

Теперь мы переходим к потрясающей команде find. С её помощью мы будем выводить нужные файлы по дате изменения, а также искать файлы, которые были изменены или к которым был получен определённое время назад.

Кстати, настоятельно рекомендуется к изучению следующий материал по команде find:

С помощью команды find можно настроить очень гибкий поиск и вывод результатов.

Предположим, я хочу просмотреть файлы в папке /etc отсортированные по дате модификации:

Аналогично, но файлы отсортированы по дате доступа:

И снова аналогичный пример, но файлы отсортированы по времени изменению статуса:

В команде find вы можете настроить формат даты под свои нужды, а также указать любые фильтры, которые она поддерживает. Например, ниже команда для показа файлов, отсортированных по дате модификации, но только тех из них, у которых в имени встречается ssh:

Или только файлов с расширением .desktop:

Или любых файлов, отсортированных по дате доступа, но только первых 20:

Поиск файлов по времени изменения

Для этого мы опять будем использовать команду find. Для поиска по времени у неё есть следующие опции:

-amin n

Последний раз к файлу был совершён доступ n минут назад.

-atime n

К файлу был совершён доступ n*24 часов назад. Когда find определяет, как много 24-часовых периодов назад к файлу был совершён доступ, любая дробная часть игнорируется, поэтому для соответствия -atime +1 к файлу должен быть сделан доступ по крайней мере два дня назад.

-cmin n

Статус файла был изменён последний раз n минут назад.

-ctime n

Последний раз статус файла был изменён n*24 часов назад. Смотрите комментарий для -atime для понимания, как округление влияет на интерпретацию времени изменения статуса файла.

-mmin n

Данные файла последний раз были изменены n минут назад.

-mtime n

Данные файла были изменены последний раз n*24 часов назад. Смотрите комментарий для -atime для понимания, как округление влияет на интерпретацию времени модификации файла.

То есть если в опции слово min — то число n трактуется как минуты, а если в опции присутствует слово time, то n трактуется как сутки.

В качестве числа n можно указать точное значение, а также выражения «больше чем n» и «меньше чем n» следующими способами:

С find можно строить весьма сложные конструкции условий чтобы найти именно то, что вам нужно. Далее всего несколько примеров — но количество возможностей безгранично. С опцией -name можно указывать шаблон имени, можно комбинировать с поиском по любым другим свойствам файла: размер, права доступа и т.д.

Чтобы найти все файлы, содержимое которых было изменено ровно 50 дней назад:

Чтобы найти все файлы, к которым был получен доступ ровно 50 дней назад:

Чтобы найти все файлы, содержимое которырх было модифицировано более 50 дней назад и менее 100 дней назад:

Чтобы найти файлы, статус которых был изменён за последний час:

Чтобы найти файлы, которые содержимое которых было модифицировано за последний час:

Чтобы найти все файлы, доступ к которым был сделан за последний час:

Чтобы найти все файлы в текущей папке с расширением .php, которые были изменены или созданы за последние 10 дней:

Чтобы найти все исполнимые файлы в текущей папке, которые были изменены или созданы за последние 10 дней:

Как отредактировать метки времени файла

С помощью команды touch можно изменить три метки времени файла или папки:

  • время доступа
  • время модификации
  • время изменения статуса

Если вы хотите изменить все эти значения на текущее время, то достаточно запустить команду вида:

Можно отдельно поменять только время доступа или только время модификации, соответствующие опции:

С помощью опции -t можно установить любое время, на которое мы хотим поменять метки файла. Формат указания времени следующий:

В этой строке то, что в фигурных скобках, является необязательным. Значения букв следующее:

  • CC – Первые две цифры года (от слова century — века)
  • YY – Вторые две цифры года
  • MM – Месяц года (01-12)
  • DD – День месяца (01-31)
  • hh – Часы дня (00-23)
  • mm – Минуты часа (00-59)
  • ss – Секунды (00-59)

Если не указать века или год вообще, то будет использоваться текущий год. Если не указать секунды, то значением по умолчанию является 00.

С помощью опции -t невозможно указать доли секунды и в выводе команды stat на их месте всегда будет 000000000

С помощью опции -d можно использовать разные более человечные способы указать время, например, «две недели назад». Это должно работать на английском, не знаю как с национальными языками. Опция -d (судя по описанию) понимает много разных вариантов синтаксиса, но для меня самым интересным свойством является возможность установить доли секунды, чтобы метки времени выглядели естественно, поскольку временные метки с девятью нулями на конце наводят мысль о том, что они спуфлены. Пример установки времени с указанием долей секунды:

То есть формат строки такой (из неё можно пропустить дефисы и двоеточия — опция -d всё равно её поймёт, но я их добавил для наглядности):

Как в Linux изменить время создания файла

Хотя файловая система ext4 поддерживает такое свойство файлов как «время создания», в ядро Linux возможность чтения этого свойства была добавлена недавно. Что касается возможности изменения времени создания файла, то такой функции нет (и не факт, что файловые системы это вообще поддерживают).

Но, как обычно, можно что-то придумать.

Время назад

При копировании файла в другой файл, его временем создания становится текущее время. Если перевести системное время на то, которое вы хотите установить для файла в качестве времени создания, а затем скопировать содержимое файла в новый, то таким образом можно установить любое время создания для нового файла.

Изменение времени создания в других ОС или файловых системах

В Интернете попадаются инструкции об изменении времени создания файла в операционных системах, которые это поддерживают. Также предлагается использовать некоторые другие файловые системы — например, сетевые, в которых также можно поменять это свойство.

Действительно, в Windows можно изменить не только время модификации файла, но и время создания. Но проблема в том, что при переносе в Linux сохраняется только время модификации. В качестве времени создания записывается текущее (то есть время создания иноды в файловой системе). И если это понимать — что временем создания файла является время модификации иноды, то становится понятно, невозможно никак перенести файл (ни в архиве, ни как-то ещё) с сохранением временем создания.

Также становится понятно, что из Windows невозможно изменить время создания файла, который находится в совместной папке в файловой системе ext4 (хотя я на всякий случай попробовал).

То есть вариантов поменять дату создания файла в Linux всего два: 1) поменять время системы; 2) низкоуровневое редактирование файловой системы (например, шестнадцатеричным редактором или специальными инструментами (если они существуют)) — с соответствующими рисками нарушить целостность файловой системы.

То есть плохая новость в том, что изменить время создания файла очень трудно или практически невозможно. Но хорошая новость в том, что время создания файла на практике почти не используется из-за того, что это поддерживают не все файловые системы, и в самой Linux эта поддержка появилась недавно. Например, команда find ничего не знает о времени создания файла (хотя может искать по другим трём меткам времени: модификация, доступ, изменение статуса), команда ls также не умеет отображать время создания файла (только обычные три метки времени).

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

Как изменить время создания и модификации файла в Windows

Кстати, если вам интересно, как поменять время создания файла в Windows, то это можно сделать с помощью утилиты NirCmd:

Я проверил команду nircmd.exe — сработала идеально в последней Windows 10.


Заключение

Путешествие в мир меток времени файлов в Linux оказалось намного длиннее чем я сам ожидал. Зато мы узнали о четырёх разных метках времени, о том, как их посмотреть и изменить, а также как искать файлы по любой из трёх меток времени.

Я об этом уже говорил, но напомню ещё раз — редактируя метки времени файла, не нужно забывать о соответствующих метках времени в метаданных самого файла (а не файловой системы). Про просмотр и удаление метаданных вы найдёте больше информации по ссылкам:

Microsoft Office программы отображают несколько последних документов, открытых в этой программе, чтобы вы могли использовать эти ссылки для быстрого доступа к файлам. Эта функция по умолчанию включена, но вы можете самостоятельно отключать или включать ее, очищать список и настраивать количество отображаемых в нем файлов.

Если эта возможность была выключена и затем включена, то будут отображаться только файлы, открытые и сохраненные после ее включения.

Если закрыть файл, а затем переместить его (например, с помощью проводника), ссылка на него в программе, где он был создан, перестанет работать. Вам потребуется перейти к файлу и открыть его, выбрав Файл > Открыть. После открытия файла в новом расположении ссылка на него будет добавлена в список. Дополнительные сведения о том, как отрыть файл таким образом, см. в статье: Открытие файлов из меню "Файл"

Закрепление файла в списке последних использованных документов

Откройте вкладку Файл.

Выберите пункт Открыть, чтобы просмотреть список последних использованных файлов.

Наведите указатель мыши на файл, который вы хотите закрепить, и выберите пункт Закрепить этот элемент в списке (справа от списка файлов).
Если файл закреплен в списке, значок булавки выглядит так: В более старых версиях Office он выглядит так:

Совет: Чтобы открепить файл, щелкните значок булавки еще раз.

Файлы, закрепленные в списке, выводятся в обратном хронологическом порядке (начиная с новых записей).

Удаление отдельного файла из списка недавно использовавшихся файлов

Если вы хотите удалить какие-либо файлы из списка, просто щелкните их правой кнопкой мыши и выберите команду Удалить из списка.

Контекстное меню для в списка недавно использовашихся файлов

Внимание: Обязательно нажмите кнопку Удалить из списка, а не Удалить файл, если вы не хотите удалить сам файл из системы.

Изменение количества файлов, отображаемых в списке последних использованных файлов

Откройте вкладку Файл.

Выберите пункт Параметры.

Выберите пункт Дополнительно.

В группе Отображение в списке Число документов в списке последних файлов: выберите необходимое количество отображаемых файлов.

Совет: Чтобы не отображать файлы в списке последних использованных файлов, выберите в списке Число документов в списке последних файлов значение, равное нулю.

Удаление незакрепленных файлов из списка последних использованных файлов

Откройте вкладку Файл.

Щелкните правой кнопкой мыши файл в списке и выберите команду Очистить незакрепленные документы.

Почему в списке недавно использовавшихся файлов появились файлы, которые давно (или вообще) не открывались?

Начиная с Office 2013 список последних использовавшихся файлов синхронизируется с учетной записью Майкрософт. Это удобно, так как если вы используете несколько устройств (например, компьютер и ноутбук), в обоих списках будут одни и те же файлы.

Однако если у вас есть старый компьютер, который вы давно не включали, при его подключении к сети он может синхронизироваться, из-за чего некоторые документы их старого списка могут попасть в новый.

Кроме того, иногда это происходит, если кто-то другой — например, член вашей семьи — пользуется вашим компьютером. Если они вошли с вашей учетной записью, все документы, над которыми они работали, появятся в списке.

Лучший способ удалить такие файлы из списка — выполнить процедуру, описанную выше в разделе "Удаление отдельного файла из списка недавно использовавшихся файлов". Щелкните правой кнопкой мыши ненужные файлы и выберите команду Удалить из списка.

Закрепление файла в списке последних использованных документов

Откройте вкладку Файл.

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

Щелкните правой кнопкой мыши файл, который вы хотите закрепить, а затем выберите команду Прикрепить к списку или щелкните значок булавки .

Когда файл закреплен в списке, значок булавки выглядит как приколотая булавка при взгляде сверху: .

Чтобы открепить файл, щелкните значок булавки еще раз.

Изменение количества файлов, отображаемых в списке последних использованных файлов

Откройте вкладку Файл.

В группе Справка выберите команду Параметры.

В группе Отображение в списке Число документов в списке последних файлов: выберите необходимое количество отображаемых файлов.

Примечание: Эти инструкции не относятся к InfoPath 2010.

Добавление списка быстрого доступа на панель навигации в представлении Backstage

Откройте вкладку Файл.

Выберите пункт Последние.

Установите флажок Число документов в списке последних файлов и укажите требуемое значение.

Ссылки в эти файлы будут отображаться над сведениями на панели навигации независимо от вашего местонахождения в представлении Backstage.

Примечание: Чтобы удалить список, снимите флажок.

Откройте вкладку Файл.

Выберите пункт Последние.

Щелкните правой кнопкой мыши файл в списке и выберите команду Очистить неприкрепленные элементы.

Примечание: Если задать количество последних использованных файлов равным нулю, список также будет очищен. Чтобы снова включить эту функцию, введите число, отличное от нуля. Обновите список, повторно открыв файлы и сбросив закрепленные элементы.

Проверяемые элементы содержания: Умение создавать собственные программы (10–20 строк) для обработки символьной информации

Выполнение 24 задания ЕГЭ


Плейлист видеоразборов задания на YouTube:

Последовательности (цепочки) символов

24 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:


Задание выполняется с использованием прилагаемых файлов


Текстовый файл состоит не более чем из 106 символов X, Y и Z.
Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
Для выполнения этого задания следует написать программу.

var f: text; i, k, max: integer; s: string; begin assign(f, 'D:\24.txt'); reset(f); readln(f, s); max := 1; k := 1; // кол-во подряд идущих for i := 2 to length(s) do begin if s[i] <> s[i - 1] then begin inc(k); if k > max then max := k; end else k := 1; end; write(max) end.

f=open('D:/24.txt') s=f.readline() m=1 k=1 for i in range(1,len(s)): if s[i]!=s[i-1]: k+=1 m=max(k,m) else: k=1 print(m)

Видеоразбор:

24 задание с сайта К. Полякова, № 1:


Задание выполняется с использованием прилагаемых файлов


В текстовом файле k7-0.txt находится цепочка из символов латинского алфавита A, B, C.

Найдите длину самой длинной подцепочки, состоящей из символов C.

Ответ: 0

begin assign(input, 'k7-0.txt'); var s: string; var c: string; read(s); c := 'C'; while c in s do c := c + 'C'; print(length(c) - 1) end.

24 задание с сайта К. Полякова, № 21:


Задание выполняется с использованием прилагаемых файлов


В текстовом файле k7a-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E.

Найдите длину самой длинной подцепочки, состоящей из символов A, B или C (в произвольном порядке).

Ответ: 16

begin assign(input, 'k7a-1.txt'); var s: string; read(s); var k := 0; var maxim := 0; for var i := 1 to length(s) do if s[i] in 'ABC' then begin k += 1; if k > maxim then maxim := k end else k := 0 ; write(maxim) end.

24 задание с сайта К. Полякова, № 26:


Задание выполняется с использованием прилагаемых файлов


В текстовом файле k7a-6.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F.

Найдите длину самой длинной подцепочки, не содержащей гласных букв.

Ответ: 20

begin assign(input, 'k7a-6.txt'); var s: string; read(s); var k := 0; var maxim := 0; for var i := 1 to length(s) do if s[i] in 'BCDF' then begin k += 1; if k > maxim then maxim := k end else k := 0 ; write(maxim) end.

begin var s := readAllText('d:\k7a-6.txt').Trim; var (k, max) := (0, 0); foreach var c in s do if not (c in 'AE') then begin k += 1; if k > max then max := k; end else k := 0; print(max) end.

24 задание с сайта К. Полякова, № 27:


Задание выполняется с использованием прилагаемых файлов


В текстовом файле k7b-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E.

begin assign(input, 'k7b-1.txt'); var s: string; read(s); var c := 'EAB'; while c in s do begin if c[length(c)] = 'B' then c += 'E' else if c[length(c)] = 'A' then c += 'B' else if c[length(c)] = 'E' then c += 'A'; end; print(length(c) - 1) end.

Постоянно повторяется фрагмент EAB, поэтому возможны 3 варианта окончания строки:

f=open('k7b-1.txt') s = f.readline() m = 0 i = 0 for char in s: if (char == 'E' and i%3 == 0) or \ (char == 'A' and i%3 == 1) or \ (char == 'B'and i%3 == 2): i += 1 m = max(i,m) elif char == 'E': i = 1 else: i = 0 print(m)

24 задание с сайта К. Полякова, № 33:


Задание выполняется с использованием прилагаемых файлов


В текстовом файле k7c-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E.
Найдите количество цепочек длины 3, удовлетворяющих следующим условиям:

Ответ: 1280

begin assign(input, 'k7c-1.txt'); var s: string; read(s); // весь текст файла var k := 0; var c1 := 'BCD'; var c2 := 'BDE'; var c3 := 'BCE'; for var i := 1 to length(s) - 2 do begin if (s[i] in c1) and (s[i + 1] in c2) and (s[i + 2] in c3) and (s[i] <> s[i + 1]) and (s[i + 1] <> s[i + 2]) then k += 1 end; print(k) end.

24 задание с сайта К. Полякова, № 52:


Задание выполняется с использованием прилагаемых файлов

Ответ: 2 3

Видеоразбор:

24 задание с сайта К. Полякова, № 108:


Задание выполняется с использованием прилагаемых файлов


Текстовый файл 24.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 10 6 символов. Определите длину наибольшей убывающей подпоследовательности.

Ответ: 3

for var i := 2 to length(s) do begin if s[i] < s[i - 1] then

. if k > max then max := k;

begin assign(input, 'D:/24.txt'); var s: string; read(s); // весь текст файла var k := 1; //длина текущей бывающей последовательности символов var max := 0; // макс длина for var i := 2 to length(s) do begin if s[i] < s[i - 1] then begin k += 1; // увеличиваем счетчик длины последовательности if k > max then max := k; end else k := 1; // сбрасываем счетчик для работы со след. последовательностью end; print(max) end.

Работа с числами (цифрами) в текстовом файле

24 задание с сайта К. Полякова, № 87:


Задание выполняется с использованием прилагаемых файлов


Текстовый файл 24-1.txt состоит не более чем из 10 6 символов. Определите максимальное нечётное число, записанное в этом файле.

Ответ: 7642289

begin assign(input, '24-1.txt'); var s: string; var b:integer; read(s); // весь текст файла находится в s var max := 0; // для максимального нечётного числа var num:integer; var strnum:string; // накапливает строковое представление числа strnum:=''; for var i := 1 to length(s)-1 do begin if s[i].IsDigit() then // проверяем очередной символ - цифра ли это strnum += s[i] //добавляем очередную цифру в число else if (strnum <> '') then //если встретилась не цифра, а strnum не пустая строка begin Val(strnum, num, b); // переводим в число if (num mod 2 <> 0) and (num > max) then // условие для поиска макс четного max := num; strnum:=''; // сбрасываем на начальное значение, чтобы накапливать новое число end; end; // проверка на случай, если самое большое нечётное в самом конце строки if (s[length(s)].isdigit()) then begin Val(strnum, num, b); if (num mod 2 <> 0) and (num > max) then max:= num; end; print(max) end.

Работа с отдельными строками файла

24 задание с сайта К. Полякова, № 137:


Задание выполняется с использованием прилагаемых файлов


Текстовый файл 24-s1.txt состоит не более чем из 10 6 заглавных латинских букв ( A..Z ). Текст разбит на строки различной длины.
Определите количество строк, в которых буква J встречается чаще, чем буква E .

Ответ: 482

begin assign(input, '24-s1.txt'); var s: string; var k := 0; while true do // бесконечный цикл begin readln(s); // считываем очередную строку if s = '' then break; // если строка пустая (т.е. достигнут конец файла), выходим if s.Count(c -> c = 'J') > s.Count(c -> c = 'E') then k += 1; end; print(k) end.

Рубрики:

Yatogami


Команда «Новое» (меню «Окно»).Создание нового окна с тем же содержимым, что и активное окно, что дает возможность просмотра разных частей одного файла.

Команда «Расположить» (меню «Окно»).Вывод всех открытых файлов в отдельных окнах на экране. Применение командыУпорядочитьупрощает перетаскивание данных между файлами.

Команда «Сравнить рядом с» (меню «Окно»). Разделение экрана на 2 окна, отображение в них двух документов и сравнение их содержимого.

Команда «Скрыть» (меню «Окно»). Отказ от вывода на экран окна активной книги. Скрытие книги не влечет за собой закрытия файла.

Команда «Отобразить» (меню «Окно»). Отображение окна скрытой книги.

Команда «Разделить» (меню «Окно»). Разделение активного окна на несколько областей или отмена разделения области.

Команда «Закрепить области» (меню «Окно»). Закрепление верхней, левой или обоих областей на активном листе. Отсчет областей ведется от текущей ячейки к левому верхнему углу листа. Кнопка используется для задания заголовков строк и столбцов, которые будут оставаться на экране при прокрутке листа. Закрепление областей не влияет на печать таблицы.

Команда «Список текущих окон» (меню «Окно»). Вывод списка открытых файлов. Для перехода к заданному файлу следует выбрать его имя из списка.

Команды меню «Справка»


Команда «Справка:Microsoft Excel» (меню «Справка»).Просмотр предметного указателя и содержания справки по программе.

Команда «Показать помощника» (меню «Справка»).Помощник отображает справку и полезные советы.

Команда «Office в Интернете» (меню «Справка»). ОткрытиеWeb-страницыMicrosoftOfficeвWeb-браузере.

Команда «Свяжитесь с нами» (меню «Справка»). ОткрытиеWeb-формы отзыва о продуктахMicrosoftвWeb-браузере.

Команда «Проверить наличие обновлений» (меню «Справка»). Проверка наличия обновлений дляMicrosoftOfficeна официальном сайтеMicrosoft

Команда «Найти и восстановить» (меню «Справка»). Поиск ошибок и их автоматическое устранение в установленной версииMicrosoftWord.

Команда «Активировать продукт» (меню «Справка»). Ввод ключа активации дляMicrosoftWord.

Команда «О программе» (меню «Справка»).Вывод номера версии программы, сведений об авторских правах, лицензии, имени пользователя и названия организации, серийного номера продукта, данных о компьютере и сведений об операционной системе.

Вопросы для самоконтроля

Создать/ открыть/закрыть/ сохранить файл.

Сохраните рабочую область. Сделайте так, чтобы при каждом запуске Microsoft Excel открывались книги рабочей области.

Установите параметры страницы: верхнее и нижнее поле 2 см, левое – 2,5 см., правое – 1 см..

Как обеспечить при печати вывод первой строки таблицы на каждой странице?

Как вывести на печать фрагмент таблицы?

Как узнать размер, расположение, состав, автора и дату создания файла?

Добавьте гиперссылку на документ Word.

Сформировать список из ста элементов, начиная с 10 с шагом 1.5

Вычислить COS и шестую степень COS для каждого элемента из сформированного списка.

Как отобразить данную таблицу на всех листах книги?

Отформатируйте таблицу с помощью команды “Автоформат”, а затем удалите форматы.

Как скопировать активный лист в другую книгу?

Скройте строку формул и строку состояния, отобразите примечания. Добавьте примечания к 5 ячейкам.

Вставьте разрыв страницы за таблицей.

Построить на листе со списками графики для COS и степени на одной диаграмме. По оси Х на графике должны отражаться значения от 10 до 158.5. Что необходимо сделать, чтобы полученный график был похож на график COS? Как добавить на график линии обозначающие область значений COS (область значений COS от -1 до 1)?

Изменить диапазон вывода значений косинуса. Должны выводится значения с 50.5 до 100. Добавить к диаграмме заголовок и линии сетки. Разместить получившуюся диаграмму на отдельном листе

Как присвоить имя ячейке? Как найти в формулах из выделенных ячеек ссылки на эту ячейку и заменить их ссылками на её имя?

Как вставить автофигуру правильной формы? Вставьте любую автофигуру правильной формы на лист.

Защитить/снять защиту листа от исправлений.

Создать графический фон для текущего листа.

Добавьте панель Зависимости. Для чего применяется каждая из кнопок этой панели?

Как сделать так, чтобы число файлов, открытых последними, было равно 6?

Автоматически отформатировать все значения COS < 0,5 красным цветом.

Отфильтровать данные, скрыв все значения COS < 0 и COS > 0,8; затем снова вывести полный список.

Определить количество элементов удовлетворяющих условиям COS < -0,7 и COS > 0.8.

Отсортировать значения строк списка по убыванию значения COS.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Читайте также: