Помогите сделать метод сохранения(Save) С#
Загрузку данных с файла реализовал(представлено в методе Load), а вывести не получается, или выводится пустой файл Класс хранения записей:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Homework_07
{
struct Repository1
{
private Note[] Notes;
private string path;
int index;
string[] titles;
public Repository1(string Path)
{
this.path = Path;
this.index = 0;
this.titles = new string[5];
this.Notes = new Note[2];
}
private void Resize(bool Flag)
{
if (Flag)
{
Array.Resize(ref this.Notes, this.Notes.Length * 2);
}
}
public void Add(Note ConcreteNote)
{
this.Resize(index >= this.Notes.Length);
this.Notes[index] = ConcreteNote;
this.index++;
}
/// <summary>
/// загрузка данных из файла
/// </summary>
public void Load()
{
using (StreamReader sr = new StreamReader(this.path))
{
titles = sr.ReadLine().Split(',');
while (!sr.EndOfStream)
{
string[] args = sr.ReadLine().Split(',');
Add(new Note(args[0], args[1], DateTime.Parse(args[2]), args[3], args[4]));
}
}
}
/// <summary>
/// Вывод данных в консоль
/// </summary>
public void PrintDbToConsole()
{
Console.WriteLine($"{this.titles[0],1} {this.titles[1],5} {this.titles[4],7} {this.titles[2],24} {this.titles[3],8}");
for (int i = 0; i < index; i++)
{
Console.WriteLine(this.Notes[i].Print());
}
}
/// <summary>
/// Количество записей
/// </summary>
public int Count { get { return this.index; } }
}
}
Класс создания записей:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Homework_07
{
struct Note
{
/// <summary>
/// дата написания заметки
/// </summary>
public DateTime data;
/// <summary>
/// имя человека который написал заметку
/// </summary>
public string name;
/// <summary>
/// тема заметки
/// </summary>
public string theme;
/// <summary>
/// заметка
/// </summary>
public string text;
/// <summary>
/// порядковый номер заметки
/// </summary>
public string number;
/// <summary>
/// создание заметки
/// </summary>
/// <param name="number"></param>
/// <param name="name"></param>
/// <param name="theme"></param>
/// <param name="text"></param>
/// <param name="data"></param>
public Note(string number, string name, DateTime data, string theme, string text)
{
this.number = number;
this.name = name;
this.theme = theme;
this.text = text;
this.data = data;
}
public string Print()
{
return $"№ {this.number,1} Имя: {this.name,1} Дата: {this.data,1} Тема: {this.theme,1}
Текст: {this.text,1}";
}
}
}
Заранее спасибо)
Ответы (1 шт):
Упорядочивать записи можете с помощью linq запросов. К примеру если нужно сделать сортировку по времени то можно использовать следующий код:
public List<Note> SortByDate(List<Note> Notes) => from Note in Notes
orderby Note.data
select Note;
Такой подход в принципе подходит для сортировки по указаному диапазону дат, который нужно будет передавать в функцию. Подробнее написано в отмеченой ранее статье. Хранение записей можно реализовать в JSON файле, подробнее здесь.
Просто учитывайте тот факт что данный сайт предназначен не для выполнения роботы за вас а для помощи вам. Если нужна будет какая-то информация её можете найти на том же сайте что и в ссылках, или же спросить в коментариях. Всего хорошего