README.md

    Описание

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

    UML диаграмма

    alt text

    Особенности:

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

    Использование

    1. Настройка времени будильника:
      • Пользователю будет предложено ввести часы и минуты для установки будильника. Время вводится в 24-часовом формате.
    2. Указание директории для поиска файлов:
      • После настройки будильника пользователь должен указать директорию, в которой будет осуществляться поиск файлов.

    Примеры использования:

    Введите час будильника (0-23): 14
    Введите минуты будильника (0-59): 30
    Введите директорию для поиска файлов: C:\Documents
    

    Технические требования:

    • Система: MS-DOS или совместимая операционная система.
    • Компилятор: Требуется компилятор C++, поддерживающий старые заголовочные файлы, такие как iostream.h, conio.h, dos.h.

    Сборка и запуск:

    Для компиляции программы используйте любой компилятор C++, который поддерживает заголовочные файлы, используемые в программе. Программа запускается из командной строки или через исполняемый файл в среде MS-DOS.

    Важное замечание:

    Эта программа написана для образовательных целей и предназначена для использования в среде, которая поддерживает старые стандарты и библиотеки C++. В современных операционных системах её функциональность может быть ограничена.

    Некоторые пояснения по программе:

    В этом коде на C++ реализованы две основные функции: будильник и рекурсивный поиск файлов для их обработки. Рассмотрим каждую часть кода по отдельности:

    1. Подключение библиотек:

      #include <iostream.h>
      #include <dos.h>
      #include <stdio.h>
      #include <conio.h>
      #include <string.h>
      #include <dir.h>
      #include <io.h>
      #include <fcntl.h>
      #include <sys\stat.h>
      

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

    2. Функция alarmClock:

      void alarmClock(int hour, int minutes) {
          struct time t;
          while(1) {
              gettime(&t);
              if(t.ti_hour == hour && t.ti_min == minutes) {
                  cout  << "__________\n" << "ALARM! It's time to start the task!" << endl;
                  break;
              }
          }
      }
      

      Функция alarmClock ожидает наступления определенного времени (часы и минуты), и когда это время наступает, выводит сообщение о срабатывании будильника и прерывает цикл.

    3. Функция processFile:

      void processFile(const char* filePath) {
          int Handle = open(filePath, O_RDONLY | O_BINARY);
          if (Handle != -1) {
              float data[10];
              int bytesRead = read(Handle, data, sizeof(data));
              cout << "Opened " << filePath << " and read " << bytesRead << " bytes.\n" <<"__________\n";
              close(Handle);
              ...
              // Здесь идет дальнейшая обработка информации о файле и создание файла .res
          } else {
              cout << "Error opening " << filePath << "\n";
          }
      }
      

      В этой функции открывается файл, из него читаются данные, выводится информация о файле, меняется расширение файла на .res и создается новый файл с этим расширением, содержащий прочитанные данные.

    4. Функция findFilesRecursively:

      void findFilesRecursively(char* basePath, const char* searchPattern) {
          char path[200];
          struct find_t fileInfo;
          ...
          // Здесь происходит рекурсивный поиск файлов по шаблону и их обработка
      }
      

      Функция ищет файлы в указанной директории и её поддиректориях, соответствующие шаблону. Для файлов, не являющихся поддиректориями, вызывается processFile.

    5. Главная функция main:

      int main() {
          int hour, minutes;
          char directory[200];
          cout << "Enter the hour of the alarm (0-23): ";
          cin >> hour;
          cout << "Enter the minutes of the alarm (0-59): ";
          cin >> minutes;
          cout << "Enter the directory to search for files: ";
          cin >> directory;
          alarmClock(hour, minutes);
          findFilesRecursively(directory, "virus.dat"); // Поиск файлов virus.dat
          getch(); // Ожидание нажатия клавиши
          return 0;
      }
      

      В main собираются данные от пользователя (время будильника и директория поиска), активируется будильник и начинается поиск файлов с помощью findFilesRecursively.

    Описание

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

    Конвейеры
    0 успешных
    0 с ошибкой