From d937da139fb8c5729d896a83d639a5b397f12dbf Mon Sep 17 00:00:00 2001 From: Egor Deev Date: Fri, 2 Oct 2026 23:44:31 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B2=D0=BE=D1=8F=20ReadWrite=20=D0=B2?= =?UTF-8?q?=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20=D0=B2=D1=83=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D1=81=D0=BA=D0=BE=D0=B9=20=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE?= =?UTF-8?q?=D1=82=D0=B5=D0=BA=D0=B8=20RSREU.IO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проект ссылался на RSREU.IO.dll, которой нет в репозитории, поэтому не собирался ни у кого, кроме автора. ReadWrite::Load/Save реализованы на BinaryFormatter (тот же формат файла applis.dat), ссылка на библиотеку из проекта убрана. --- InvestWinApp/InvestWinApp.vcxproj | 3 --- InvestWinApp/config.h | 33 +++++++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/InvestWinApp/InvestWinApp.vcxproj b/InvestWinApp/InvestWinApp.vcxproj index 28662e5..d9efdb3 100644 --- a/InvestWinApp/InvestWinApp.vcxproj +++ b/InvestWinApp/InvestWinApp.vcxproj @@ -155,9 +155,6 @@ - - x64\Debug\RSREU.IO.dll - diff --git a/InvestWinApp/config.h b/InvestWinApp/config.h index 79bb7e9..4476b84 100644 --- a/InvestWinApp/config.h +++ b/InvestWinApp/config.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once #include #include @@ -10,12 +10,41 @@ #include #include -using namespace RSREU::IO; using namespace System; using namespace System::Windows::Forms; using namespace System::Collections::Generic; +// Сохранение и загрузка списка в файл (двоичная сериализация .NET). +// Раньше бралось из вузовской библиотеки RSREU.IO, которой нет в репозитории. +ref class ReadWrite abstract sealed { +public: + template + static T Load(String^ path) { + if (!System::IO::File::Exists(path)) return nullptr; + System::IO::FileStream^ fs = System::IO::File::OpenRead(path); + try { + auto formatter = gcnew System::Runtime::Serialization::Formatters::Binary::BinaryFormatter(); + return safe_cast(formatter->Deserialize(fs)); + } + finally { + fs->Close(); + } + } + + template + static void Save(T obj, String^ path) { + System::IO::FileStream^ fs = System::IO::File::Create(path); + try { + auto formatter = gcnew System::Runtime::Serialization::Formatters::Binary::BinaryFormatter(); + formatter->Serialize(fs, obj); + } + finally { + fs->Close(); + } + } +}; + [Serializable] ref struct Applicant { String^ surname;