У меня есть отлично работающий код для загрузки и сохранения фигур из текстового файла, который содержит тип фигуры (я использую перечисление, называемое shapetype), координаты x1, y1 (начальная позиция мыши) и x2, y2 (окончательное расположение курсора мыши, когда мышь куда-то перетащили и отпустили левую кнопку).В данных также хранится цвет фигуры в виде rgb int и значения true / false, если фигура должна быть заполнена сплошным или просто контуром.
Единственное, что я спрашиваю, - это какможет иметь ту же самую вещь, но все данные для 1 фигуры в одной строке в моем текстовом файле и все еще быть в состоянии загрузить его. Я знаю, как СОХРАНИТЬ данные на одномлиния, но я не знаю, как бы я загрузить данные, если бы все было по одной линии для каждой фигуры ...
Код сейчас:
private void loadCanvas(List<APShape> shapeList)
{
shapeList.Clear();
string line = "";
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Shape Data Files | *.shapes";
if (open.ShowDialog() == DialogResult.OK)
{
Stream s = File.Open(open.FileName, FileMode.Open);
StreamReader sr = new StreamReader(s);
while (line != null)
{
line = sr.ReadLine();
if (line != null)
{
shapeList.Add(ObjectFromTxt(line));
shapeList[shapeList.Count - 1].setColor(Color.FromArgb(int.Parse(sr.ReadLine())));
shapeList[shapeList.Count - 1].setX1(int.Parse(sr.ReadLine()));
shapeList[shapeList.Count - 1].setY1(int.Parse(sr.ReadLine()));
shapeList[shapeList.Count - 1].setX2(int.Parse(sr.ReadLine()));
shapeList[shapeList.Count - 1].setY2(int.Parse(sr.ReadLine()));
shapeList[shapeList.Count - 1].setSolid(string2bool(sr.ReadLine()));
shapeList[shapeList.Count - 1].setPenWidth(float.Parse(sr.ReadLine()));
}
}
sr.Close();
canvas.Invalidate();
}
}
И как файл стекст, содержащий данные формы, выглядит так: Текущий формат файла