//Load matrix to convert with rules private void button14_Click(object sender, EventArgs e) { Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "Text|*.txt"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { try { if ((myStream = openFileDialog1.OpenFile()) != null) { string filename = openFileDialog1.FileName; string fileText = System.IO.File.ReadAllText(filename); MatrixParser parser = new MatrixParser(); List <FullMatrixData> parseData = InputMatrixParser.ParseSquareMatrix(fileText, filename); matrixJsonGlobal = parseData[0].matrixJson; richTextBox3.Text = JsonConvert.SerializeObject(matrixJsonGlobal); //GenerationRules ruleData = input_generator.Classes.RuleParser.ParseRules(parseData[0].yamlRules); //input_generator.Classes.Generator.generateSquareMatrix(ruleData, parseData[0].matrixJson); //richTextBox4.Text = //System.IO.File.WriteAllText("generated-matrix.txt", matrixJson); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public static MatrixJson MatrixToJson(List <string[]> matrixData, string fileName) { MatrixJson matrixJson = new MatrixJson(); List <ConnectionsJson> connections = new List <ConnectionsJson>(); int matrixRowLength = Convert.ToInt32(Math.Sqrt(matrixData[0].Length)); for (int i = 0; i < matrixRowLength; i++) { for (int j = 0; j < matrixRowLength; j++) { if (i == matrixRowLength - 1) { connections.Add(new ConnectionsJson { from = i, to = j, value = Helper.ConvertToDouble(matrixData[0][j + matrixRowLength]) }); } else { connections.Add(new ConnectionsJson { from = i, to = j, value = Helper.ConvertToDouble(matrixData[0][j]) }); } } } matrixJson.connections = connections; matrixJson.n = matrixRowLength; matrixJson.name = fileName; return(matrixJson); }
public static List <FullMatrixData> ParseColumnMatrix(string inputMatrix, string fileName) { List <char> separators = ColumnMatrixHelper.FindNumberSeparators(inputMatrix); char separator = ColumnMatrixHelper.SelectPopularSeparator(separators); string delimiter = ColumnMatrixHelper.GetDelimiter(separator, inputMatrix); List <string[]> matrixData = ColumnMatrixHelper.GetMatrixData(inputMatrix, delimiter); int startLine = ColumnMatrixHelper.GetStartLine(matrixData, delimiter, inputMatrix); List <FullMatrixData> fullMatrixData = new List <FullMatrixData>(); MatrixJson jsonMatrix = ColumnMatrixHelper.MatrixToJson(matrixData, fileName); fullMatrixData.Add(new FullMatrixData { delimiter = delimiter, separator = separator, matrixData = matrixData, matrixJson = jsonMatrix, startLine = startLine }); return(fullMatrixData); }
public static MatrixJson MatrixToJson(List <string[]> matrixData, string fileName) { MatrixJson matrixJson = new MatrixJson(); List <ConnectionsJson> connections = new List <ConnectionsJson>(); for (int i = 0; i < matrixData.Count; i++) { connections.Add(new ConnectionsJson { from = Int32.Parse(matrixData[i][0]), to = Int32.Parse(matrixData[i][1]), value = Helper.ConvertToDouble(matrixData[i][2]) }); } matrixJson.connections = connections; matrixJson.n = matrixData.Count; matrixJson.name = fileName; return(matrixJson); }
public static List <FullMatrixData> ParseSquareMatrix(string inputMatrix, string fileName) { List <char> separators = SquareMatrixHelper.FindNumberSeparators(inputMatrix); char separator = SquareMatrixHelper.SelectPopularSeparator(separators); string delimiter = SquareMatrixHelper.GetDelimiter(separator, inputMatrix); List <string[]> matrixData = SquareMatrixHelper.GetMatrixData(inputMatrix, delimiter); List <string> matrixHat = SquareMatrixHelper.GetMatrixHat(matrixData); if (matrixHat != null) { matrixData = SquareMatrixHelper.CutMatrixHat(matrixData, matrixHat); } int startLine = SquareMatrixHelper.GetStartLine(matrixData, delimiter, inputMatrix); List <ConnectionsJson> connections = SquareMatrixHelper.MatrixConnections(matrixData); List <PrimaryGraph.Verticle> graph = new List <PrimaryGraph.Verticle>(); var numberGroups = connections.GroupBy(i => i.from); foreach (var grp in numberGroups) { PrimaryGraph.Verticle v = new PrimaryGraph.Verticle(); v.verticle_id = (grp.Key + 1).ToString(); if (matrixHat != null) { v.verticle = matrixHat[grp.Key]; } else { v.verticle = (grp.Key + 1).ToString(); } List <PrimaryGraph.Connections> cons = new List <PrimaryGraph.Connections>(); foreach (ConnectionsJson connection in connections) { if (connection.value > 0 && grp.Key == connection.from) { PrimaryGraph.Connections c = new PrimaryGraph.Connections(); c.connectedTo = (connection.to + 1).ToString(); c.strength = connection.value; cons.Add(c); } } v.connections = cons; graph.Add(v); } List <GenerationRules> generationRules = new List <GenerationRules>(); generationRules.Add(new GenerationRules { delimiter = delimiter, matrixAtLine = startLine, separator = separator.ToString(), type = "square", notation = "" }); string yamlRules = Helper.CollectGenerationRulesToYAML(generationRules); List <FullMatrixData> fullMatrixData = new List <FullMatrixData>(); MatrixJson jsonMatrix = SquareMatrixHelper.MatrixToJson(matrixData, fileName); fullMatrixData.Add(new FullMatrixData { delimiter = delimiter, separator = separator, matrixData = matrixData, startLine = startLine, matrixJson = jsonMatrix, graph = graph, generationRules = generationRules, yamlRules = yamlRules }); return(fullMatrixData); }