IMatrixData <int, SolutionData> IMatrixWriteStorage <int, SolutionData> .SaveMatrix(string name, IMatrix <int> matrix, SolutionData data) { Directory.CreateDirectory(Path + @"data\matrixes\"); Directory.CreateDirectory(Path + @"data\solutions\"); string filename = "1"; int currentFilename = 1; while (File.Exists(Path + @"data\" + filename + ".xml")) { currentFilename++; filename = currentFilename.ToString(); } var sizes = new int[matrix.Dimensions]; for (int i = 0; i < matrix.Dimensions; i++) { sizes[i] = matrix.Size(i); } var matrixData = new FileMatrixData(Path, name, @"data\matrixes\" + filename, sizes, @"data\solutions\" + filename); using (var stream = File.OpenWrite(Path + @"data\" + filename + ".xml")) using (var textwriter = new StreamWriter(stream)) using (var xml = new XmlTextWriter(textwriter)) { var serializer = new XmlSerializer(typeof(FileMatrixData)); serializer.Serialize(xml, matrixData); } using (var stream = File.OpenWrite(Path + @"data\matrixes\" + filename)) using (var writer = new BinaryWriter(stream)) { foreach (var index in MultiDimensionMatrixEnumerator.Indexes(matrix)) { writer.Write(matrix[index]); } } using (var stream = File.OpenWrite(Path + @"data\solutions\" + filename)) using (var writer = new BinaryWriter(stream)) { for (int i = 0; i < data.Item1.Dimensions; i++) { writer.Write(data.Item1[i]); } for (int i = 0; i < data.Item1.Dimensions; i++) { foreach (int j in data.Item2[i]) { writer.Write(j); } } writer.Write(data.Item3); } return(matrixData.AsSolutionData()); }
public SolutionDataRecord(FileMatrixData parent) { this.parent = parent; }
public EmptyDataRecord(FileMatrixData parent) { this.parent = parent; }