Новый проект

Программа «Кодировщик 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 поправит задание и бесплатно создаст новую программу по изменённому заданию, исходная программа останется как есть.

Задание и готовая программа будут видны всем. Не пишите имена, телефоны, адреса и другие личные данные — текст обрабатывает нейросеть.

Изменение вносится один раз, дальше 7gpt при необходимости задаст вопросы.