private String CreateErrorString(CalcInput calc) { String errorString = ""; int errorPosition = calc.GetErrorPosition(); String errorInput = calc.GetOriginArray()[errorPosition]; errorString += "Fehler bei der Eingabe: " + errorInput + " "; errorString += "Vollständiger Term: "; foreach (string str in calc.GetOriginArray()) { errorString += str + " "; } return(errorString); }
private void StartCalc() { while (true) { String term = inputField.ReadInput(); term = term.ToUpper(); String originInput = term; //Wenn nicht das Kürzel zum ändern der Ausgabemenge eingegeben wurde, berechne den Term if (ChangeSolutionNumber(term)) { //Falls kein ANS eingegeben wurde oder ANS eingegeben wurde, nachdem ein Ergebnis gespeichert wurde. if (AnsFunction(ref term)) { CalcInput calc = new CalcInput(term); BasicCalc startCalc = new BasicCalc(); Number solNumber = new Number(); String output; if (calc.GetError()) { output = CreateErrorString(calc); } else { String[] dezArray = calc.GetCalcArray(); long solution = startCalc.GetSolution(dezArray); solNumber.SetDecNumber(solution); output = Convert.ToString(solution); } solField.SaveAndClearInput(output, calc.GetError()); solField.WriteInfoText("Eingabe: " + originInput, false); solField.WriteInfoText(String.Join("", calc.GetCalcArray()) + "=", false); solField.WriteInfoText(output, false); if (this.allSolutions) { solNumber.ToOtherSystems(); WriteAllSolutions(solNumber); } } //Falls ANS eingegeben wurde, obwohl noch keine erfolgreiche Berechnung durchgeführt wurde. else { solField.SaveAndClearInput("", true); solField.WriteInfoText("ANS nicht möglich, da kein Ergebnis gespeichert wurde.", false); } } //Wenn das Kürzel zum Ändern des Ausgabesystems eingegeben wurde else { solField.SaveAndClearInput("", false); String output; if (this.allSolutions) { output = "Ausgabe zu allen Zahlensystemen geändert."; } else { output = "Ausgabe zu nur dezimal geändert."; } solField.WriteInfoText(output, false); } } }