mirror of
https://github.com/EDeev/student_sorter.git
synced 2026-10-08 04:59:40 +03:00
Своя ReadWrite вместо вузовской библиотеки RSREU.IO
Проект ссылался на RSREU.IO.dll, которой нет в репозитории, поэтому не собирался ни у кого, кроме автора. ReadWrite::Load/Save реализованы на BinaryFormatter (тот же формат файла applis.dat), ссылка на библиотеку из проекта убрана.
This commit is contained in:
parent
c7ff11d179
commit
d937da139f
2 changed files with 31 additions and 5 deletions
|
|
@ -155,9 +155,6 @@
|
|||
<Image Include="app.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="RSREU.IO">
|
||||
<HintPath>x64\Debug\RSREU.IO.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include <iostream>
|
||||
#include <stdio.h>
|
||||
|
|
@ -10,12 +10,41 @@
|
|||
#include <map>
|
||||
#include <set>
|
||||
|
||||
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<class T>
|
||||
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<T>(formatter->Deserialize(fs));
|
||||
}
|
||||
finally {
|
||||
fs->Close();
|
||||
}
|
||||
}
|
||||
|
||||
template<class T>
|
||||
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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue