コード例 #1
0
        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());
        }
コード例 #2
0
 public SolutionDataRecord(FileMatrixData parent)
 {
     this.parent = parent;
 }
コード例 #3
0
 public EmptyDataRecord(FileMatrixData parent)
 {
     this.parent = parent;
 }