From 79efafa7a88b9c956a89922101871dca315c2425 Mon Sep 17 00:00:00 2001 From: Nikita Zimin Date: Sun, 7 Apr 2024 18:33:04 +0300 Subject: [PATCH] UTF-8 encoding --- bkdecmd.cpp | 70 ++++++++++++++++++++++++++--------------------------- pch.h | 1 + 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/bkdecmd.cpp b/bkdecmd.cpp index 6b9bdc4..3eec74e 100644 --- a/bkdecmd.cpp +++ b/bkdecmd.cpp @@ -1,4 +1,4 @@ -// bkdecmd.cpp : This file contains the 'main' function. Program execution begins and ends there. +// bkdecmd.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include "pch.h" @@ -69,18 +69,18 @@ PARSE_RESULT g_sParseResult; void PrintWelcome() { - std::wcout << L" BKDEcmd BKDE [" << __DATE__ << " " << __TIME__ << "]"; + std::wcout << L"Утилита работы с дисками БК BKDEcmd на основе кода BKDE [" << __DATE__ << " " << __TIME__ << "]"; std::wcout << std::endl; } void PrintUsage() { - std::wcout << std::endl << L":" << std::endl - << L" :" << std::endl - << L" bkdecmd l - " << std::endl - << L" bkdecmd e - " << std::endl - << L" bkdecmd a - " << std::endl - << L" bkdecmd d - " << std::endl; + std::wcout << std::endl << L"Использование:" << std::endl + << L" Команды для работы с образами дисков:" << std::endl + << L" bkdecmd l - показать содержимое каталога" << std::endl + << L" bkdecmd e - извлечь файл" << std::endl + << L" bkdecmd a - добавить файл" << std::endl + << L" bkdecmd d - удалить файл" << std::endl; } @@ -92,7 +92,7 @@ bool ParseCommandLine(int argc, wchar_t* argv[]) if (arg[0] == OPTIONCHAR) { { - std::wcout << L" : " << arg << std::endl; + std::wcout << L"Неизвестная опция: " << arg << std::endl; return false; } } @@ -106,7 +106,7 @@ bool ParseCommandLine(int argc, wchar_t* argv[]) g_sFileName = arg; else { - std::wcout << L" : " << arg << std::endl; + std::wcout << L"Неизвестный параметр: " << arg << std::endl; return false; } } @@ -115,7 +115,7 @@ bool ParseCommandLine(int argc, wchar_t* argv[]) // Parsed options validation if (g_sCommand == nullptr) { - std::wcout << L" ." << std::endl; + std::wcout << L"Не указана команда." << std::endl; return false; } CommandInfo* pcinfo = nullptr; @@ -129,7 +129,7 @@ bool ParseCommandLine(int argc, wchar_t* argv[]) } if (pcinfo == nullptr) { - std::wcout << L" : " << g_sCommand << std::endl; + std::wcout << L"Неизвестная команда: " << g_sCommand << std::endl; return false; } g_pCommand = pcinfo; @@ -137,12 +137,12 @@ bool ParseCommandLine(int argc, wchar_t* argv[]) // More pre-checks based on command requirements if (g_sImageFileName == nullptr) { - std::wcout << L" ." << std::endl; + std::wcout << L"Файл образа не указан." << std::endl; return false; } if ((pcinfo->requirements & CMDR_PARAM_FILENAME) != 0 && g_sFileName == nullptr) { - std::wcout << L" ." << std::endl; + std::wcout << L"Ожидалось имя файла." << std::endl; return false; } //if ((pcinfo->requirements & CMDR_IMAGEFILERW) != 0 && g_diskimage.IsReadOnly()) @@ -171,36 +171,36 @@ int wmain(int argc, wchar_t* argv[]) return 255; } - std::wcout << L": " << g_sCommand << std::endl; - std::wcout << L" : " << g_sImageFileName << std::endl; + std::wcout << L"Команда: " << g_sCommand << std::endl; + std::wcout << L"Образ диска: " << g_sImageFileName << std::endl; - // + // Подключение к файлу образа g_sParseResult = g_ParserImage.ParseImage(g_sImageFileName, 0); if (g_sParseResult.imageOSType == IMAGE_TYPE::ERROR_NOIMAGE) { - std::wcout << L"- , , , - ." << std::endl; + std::wcout << L"Какая-то ошибка при чтении файла образа, либо он повреждён, либо недоступен по чтению, из-за блокирования другой программой." << std::endl; return 255; } if (g_sParseResult.imageOSType == IMAGE_TYPE::UNKNOWN) { - std::wcout << L" ." << std::endl; + std::wcout << L"Неопознанная файловая система образа." << std::endl; return 255; } - // , , , + // теперь, если образ опознался, надо создать объект, соответствующий файловой системе g_BKImage.ClearImgVector(); uint32_t flg = g_BKImage.Open(g_sParseResult); if (flg == 0) { - std::wcout << L" !" << std::endl; + std::wcout << L"Недостаточно памяти!" << std::endl; return 255; } - std::wcout << L": " << g_BKImage.GetImgFormatName() << L" "; - std::wcout << L": " << g_BKImage.GetImgSize() << L" "; - //std::wcout << L": " << g_BKImage.GetImageFreeSpace() << L" "; - std::wcout << L": " << (g_BKImage.GetImageOpenStatus() ? L"RO" : L"RW") << std::endl; + std::wcout << L"Формат: " << g_BKImage.GetImgFormatName() << L" "; + std::wcout << L"Размер: " << g_BKImage.GetImgSize() << L" "; + //std::wcout << L"Свободно: " << g_BKImage.GetImageFreeSpace() << L" "; + std::wcout << L"Режим: " << (g_BKImage.GetImageOpenStatus() ? L"RO" : L"RW") << std::endl; std::wcout << std::endl; // Main task @@ -219,7 +219,7 @@ int wmain(int argc, wchar_t* argv[]) bool DoDiskList() { - // + // Читаем и печатаем список файлов в корневой папке CBKImage::ItemPanePos pp(0, 0); return g_BKImage.PrintCurrentDir(pp); } @@ -231,27 +231,27 @@ bool DoDiskExtractFile() bool DoDiskAddFile() { - // , / - if (fs::is_directory(g_sFileName)) // + // Проверяем, есть ли у нас такой файл/директория + if (fs::is_directory(g_sFileName)) // это директория { - std::wcout << L" ." << std::endl; + std::wcout << L"Добавление директорий пока не реализовано." << std::endl; return false; } if (!fs::is_regular_file(g_sFileName)) { - std::wcout << L" : " << g_sFileName << std::endl; + std::wcout << L"Добавляемый файл не найден: " << g_sFileName << std::endl; return false; } - // / + // Сначала поищем файл/директорию с таким именем auto fr = g_BKImage.FindRecordByName(g_sFileName); if (fr != nullptr) { - std::wcout << L" : " << g_sFileName << std::endl; + std::wcout << L"Уже существует файл или директория с таким именем: " << g_sFileName << std::endl; return false; } - //TODO: , + //TODO: Если существующий объект это файл и мы добавляем файл, можно предлагать перезаписать ADDOP_RESULT ret; ret = g_BKImage.AddFile(g_sFileName); @@ -259,11 +259,11 @@ bool DoDiskAddFile() if (ret.nError != ADD_ERROR::OK_NOERROR) { std::wstring serror = g_AddOpErrorStr[(int)ret.nError]; - std::wcout << L" , : " << serror << std::endl; + std::wcout << L"Не удалось добавить файл, ошибка: " << serror << std::endl; return false; } - std::wcout << L" : " << g_sFileName << std::endl; + std::wcout << L"Файл добавлен: " << g_sFileName << std::endl; return true; } diff --git a/pch.h b/pch.h index 28ffeda..aed6cde 100644 --- a/pch.h +++ b/pch.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include