private void InsertMissingVariableLines(string input, ExecutionContext ctx) { StringBuilder sb = new StringBuilder(); foreach (string name in ctx.GetMissingVariableNames()) { sb.AppendLine(name + "="); } sb.Append(input); input = sb.ToString(); }
private void bnSolve_Click(object sender, EventArgs e) { StoreFormula(); String formula = tbFormula.Text; tbSolutions.Text = ""; if (formula.Length > 0) { string[] lines = formula.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None); StringBuilder sb = new StringBuilder(); ExecutionContext ctx = new ExecutionContext(Core); foreach (string line in lines) { if (line.Length == 0) { sb.AppendLine(""); } else { string res = Convert.ToString(interpreter.Exec(line, ctx), new System.Globalization.CultureInfo("")); sb.AppendLine(res); } } if (ctx.HasMissingVariables()) { string text = string.Format(StrRes.GetString(StrRes.STR_MISSING_VARIABLES), String.Join(", ", ctx.GetMissingVariableNames())); if (MessageBox.Show(text, "Formula Solver", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { StringBuilder sbInput = new StringBuilder(); foreach (string name in ctx.GetMissingVariableNames()) { sbInput.AppendLine(name + "="); } foreach (string line in lines) { sbInput.AppendLine(line); } tbFormula.Text = sbInput.ToString(); } sb.Clear(); } tbSolutions.Text = sb.ToString(); } }