Программа «Кодировщик Base64» № 1012
Переделать программу
Старое задание
Задание программы № 1012
В программе должно быть 4 вкладки:
1) вкладка с названием "File -> Base64"
2) вкладка с названием "Base64 -> File"
3) вкладка с названием "Текст <-> Base64"
4) вкладка с названием "Проверка Base64"
На первой вкладке есть поле №1 для загрузки файла. Под этим полем находится поле №2 ReadOnly (т.е. пользователь туда сам ничего написать не может). Под последним полем есть кнопка "Конвертировать". После нажатия на кнопку "Конвертировать" в поле №2 появится контент загруженного файла в формате Base64.
На второй вкладке есть поле №1 для текста в формате Base64. Под этим полем находится поле №2 для ввода пути файла, куда необходимо сохранить декодированный контент из Base64.
Под полем №2 находится кнопка "Конвертировать из Base64". По нажатии на неё создается файл по указанному пути и с указанным именем и декодированным из Base64 контентом.
Третья вкладка сложнее.
Левая панель — обычный текст.
Правая панель — Base64-строка.
Кнопки между панелями — две узкие вертикальные кнопки, расположены друг над другом; их суммарная высота равна высоте панелей.
Верхняя, стрелка вправо (→): содержимое правой панели удаляется, туда помещается содержимое левой панели, закодированное в Base64.
Нижняя, стрелка влево (←): содержимое левой панели удаляется, туда помещается содержимое правой панели, декодированное из Base64.
Обе панели редактируемые. Правая кнопка мыши открывает стандартное контекстное меню: вырезать, копировать, вставить.
Допущения:
Кодировка текста — UTF-8.
При некорректном Base64 по кнопке ← показывается сообщение об ошибке, содержимое панелей не меняется.
При нажатии кнопки преобразования, когда соответствующая панель пуста, содержимое второй панели удаляется и она становится пустой.
Принятые решения (автор не уточнял):
При пустой левой панели кнопка → очищает правую панель.
При пустой правой панели кнопка ← очищает левую панель.
При некорректном Base64 в правой панели кнопка ← показывает модальное окно с текстом «Ошибка: некорректный Base64» и кнопкой «ОК».
Пробелы и переводы строк в правой панели игнорируются при декодировании Base64.
Кнопки → и ← всегда активны независимо от содержимого панелей.
Обе панели прокручиваются вертикально и горизонтально при переполнении текста.
Кнопки → и ← имеют фиксированную ширину 24 пикселя.
Суммарная высота двух кнопок равна высоте панелей, каждая кнопка занимает ровно половину этой высоты.
Контекстное меню по правой кнопке мыши доступно в обеих панелях.
Кодирование в Base64 выполняется без переносов строк.
Декодированный текст вставляется в левую панель с заменой её содержимого целиком.
Кнопки → и ← не имеют горячих клавиш.
На четвертой вкладке есть поле, куда вставляется текст в кодировке Base64. Под этим полем есть кнопка "Проверить Base64". По нажатии на нее, если текст действительно представляет из себя правильный Base64-текст, выдается сообщение "Формат Base64 верен". В противном случае - "Данный текст не в формате Base64!"
При невозможности прочитать выбранный файл или сохранить файл по указанному пути программа должна выдать соответствующую ошибку и предложить пользователю выбрать другой файл.
Если пользователь вводит путь к уже существующему файлу, программа должна запросить подтверждение перед перезаписью.
Если пользователь введёт в поле для пути не путь к файлу, а что-то другое, программа должна выдать соответствующую ошибку и предложить пользователю выбрать другой файл.
Если пользователь введёт в поле для пути не путь к файлу, а что-то другое, программа должна выдать соответствующую ошибку и предложить пользователю выбрать другой файл.
Если пользователь введёт в поле для пути не путь к файлу, а что-то другое, программа должна выдать соответствующую ошибку и не давать пользователю продолжать действия, пока путь до файла не будет исправлен.
Если пользователь вставит в поле для Base64-текста на второй вкладке не текст, а картинку или другой файл, программа должна выдать соответствующую ошибку и не давать пользователю продолжать действия, пока в поле для Base64-текста не будет Base64-текст.
Опишите, что изменить. 7gpt поправит задание и бесплатно создаст новую программу по изменённому заданию, исходная программа останется как есть.