public bool saveFile(String path, ContainerResult result, ContainerFunction containerFunction, Parametrs option) { createDocument(containerFunction, result, option); _template.SaveAs(FileName: path); _template.Close(); _template = null; return true; }
private void createDocument(ContainerFunction function, ContainerResult result, Parametrs option ) { _template = _oWord.Documents.Add(Environment.CurrentDirectory + _directoryTemplate); Char[] chr = { CHAR_SPACE, CHAR_PLUS, CHAR_COMMA }; String stroke = ""; _template.Bookmarks[MARK_COUNT_GENERATION].Range.Text = option.countGeneration.ToString(); _template.Bookmarks[MARK_CHANCE_MUTATION].Range.Text = option.сhanceMutation.ToString(); _template.Bookmarks[MARK_COUNT_POPULATE].Range.Text = option.countPopulate.ToString(); _template.Bookmarks[MARK_VALUE_MUTATION].Range.Text = option.valueMutation.ToString(); _template.Bookmarks[MARK_TURN_INTEGER].Range.Text = option.turnInteger; _template.Bookmarks[MARK_TIME].Range.Text = result.time.ToString(); if (result != null) { String vectorResult = ""; String realResult = ""; String realRestrict = ""; int i = 1; foreach (int vect in result.vector) { vectorResult += X + i.ToString() + SIGN_EQUALLY + vect + SIGN_COMMA + SIGN_SPACE + SIGN_SPACE; i++; } stroke = vectorResult.Trim().Trim(chr); _template.Bookmarks[MARK_VECTOR_RESULT].Range.Text = stroke; realResult = result.realResult.ToString(); _template.Bookmarks[MARK_REAL_RESULT].Range.Text = realResult; foreach (int vect in result.realRestrict) { realRestrict += vect.ToString() + SIGN_COMMA + SIGN_SPACE + SIGN_SPACE + SIGN_SPACE; } stroke = realRestrict.Trim().Trim(chr) + SIGN_SPACE; _template.Bookmarks[MARK_REAL_RESTRICT].Range.Text = stroke; } if (function != null) { String line = ""; foreach (MatrixItem matrix in function.matrix) { line = "" ; int i = 1; foreach (Double vect in matrix.items) { double num; if (vect < 0) { line += SIGN_MINUS + SIGN_SPACE; num = Math.Abs(vect); } else { num = vect; line += SIGN_PLUS + SIGN_SPACE; } line += num.ToString() + X + i + SIGN_SPACE; i++; } stroke = line.Trim().Trim(chr); stroke += matrix.Sign; stroke += SIGN_SPACE; stroke += matrix.restriction.ToString(); _template.Bookmarks[MARK_FUNCTION_RESTRICT].Range.Text = stroke + Environment.NewLine; } String lineFunc = ""; foreach (Double vect in function.fitness) { double num; if (vect < 0) { lineFunc += SIGN_MINUS + SIGN_SPACE; num = Math.Abs(vect); } else { num = vect; lineFunc += SIGN_PLUS + SIGN_SPACE; } lineFunc += num.ToString() + SIGN_SPACE; } stroke = lineFunc.Trim().Trim(chr) + function.cursor + SIGN_SPACE; _template.Bookmarks[MARK_FUNCTION].Range.Text = stroke; } }
//Считывание ограничений и функции private bool readOption() { if (textChanceMutation.Text == "" || textValueMutation.Text == "" || textCountGeneration.Text == "") { MessageBox.Show(MESSAGE_EMPTY_OPTION); return false; } if (!(validateDouble(textChanceMutation.Text)) || !(validateDouble(textValueMutation.Text)) || !(validateInt(textCountGeneration.Text))) { MessageBox.Show(MESSAGE_CORRECT_NUM); return false; } _option = new Parametrs(); _option.countGeneration = getCountGeneration(); _option.countPopulate = getCountPopulate(); _option.countValueVariable = _countValueVariable; _option.valueMutation = getValueMutation(); _option.сhanceMutation = getChanceMutation(); _option.turnInteger = getTurnInteger(); _option.typeAlgoritme = getTypeAlgoritme(); return true; }