Пример #1
0
        public void loadSchemeFromFile(string fileName)
        {
            elementsStringToDetansMap = new Dictionary <string, DetansPair>();
            rowToElementDictionary    = new Dictionary <DataGridViewRow, Element>();
            Scheme.currentScheme      = new Scheme(fileName);
            List <Element> elementsList = Scheme.currentScheme.getElementsList();
            int            rowCount     = 0;

            if (elementsList.Count > 0)
            {
                schemeDataGrid.Rows.Clear();
            }
            for (int i = 0; i < elementsList.Count; i++, rowCount++)
            {
                Element         element = elementsList[i];
                DataGridViewRow row     = new DataGridViewRow();
                row = getElementRow(element, rowCount);
                rowToElementDictionary.Add(row, element);
                schemeDataGrid.Rows.Add(row);
                if (element is ActiveElement)
                {
                    AcceptingElement acceptor = ((ActiveElement)element).dependingElement;
                    if (acceptor != null)
                    {
                        row = getElementRow(acceptor, ++rowCount);
                        rowToElementDictionary.Add(row, acceptor);
                        schemeDataGrid.Rows.Add(row);
                    }
                }
            }
            targetFormuleComboBox.SelectedItem = targetFormuleComboBox.Items[0];
            targetFormuleComboBox.Enabled      = true;
            schemeDataGrid.Enabled             = true;
            calculateButton.Enabled            = true;
        }
Пример #2
0
        static List <Element> getElements(List <string> elementStrings)
        {
            List <Element> elementsList = new List <Element>();

            foreach (string elementString in elementStrings)
            {
                string[] elementStringParts = elementString.Split(new char[] { ' ' },
                                                                  StringSplitOptions.RemoveEmptyEntries);
                string elementTypeString = getElementType(elementStringParts[0]);
                //if (elementTypeString == "FI" || elementTypeString == "B")
                //    elementTypeString = "BI";
                string   name            = elementStringParts[0];
                int      parametersCount = elementStringParts.Length;
                int      knotsCount      = parametersCount % 2 == 0 ? parametersCount - 2 : parametersCount - 1;
                string[] knots           = new string[knotsCount];
                Array.Copy(elementStringParts, 1, knots, 0, knotsCount);
                string value = parametersCount % 2 == 0 ? elementStringParts[parametersCount - 1] : "";
                switch (elementTypeString)
                {
                case "N":
                    elementsList.Add(new Nuller(name, knots));
                    break;

                case "R":
                    elementsList.Add(new Resistor(name, knots, value));
                    break;

                case "g":
                    elementsList.Add(new Conduction(name, knots, value));
                    break;

                case "c":
                    elementsList.Add(new Capacity(name, knots, value));
                    break;

                case "L":
                    elementsList.Add(new Inductance(name, knots, value));
                    break;

                case "FI":
                case "F":
                case "B":
                case "BI":
                    elementsList.Add(new BI(name, knots, value));
                    break;

                case "H":
                case "HI":
                case "Hi":
                    elementsList.Add(new HI(name, knots, value));
                    break;

                case "K":
                case "KU":
                    elementsList.Add(new KU(name, knots, value));
                    break;

                case "G":
                case "GU":
                    elementsList.Add(new GU(name, knots, value));
                    break;

                case "E":
                {
                    AcceptingElement acceptor = getAcceptor(elementStrings, name);
                    elementsList.Add(new E(name, knots, value, acceptor));
                    break;
                }

                case "J":
                {
                    AcceptingElement acceptor = getAcceptor(elementStrings, name);
                    elementsList.Add(new J(name, knots, value, acceptor));
                    break;
                }
                }
            }
            return(elementsList);
        }
Пример #3
0
 public J(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor) : base(receivedName, receivedKnots, receivedValue, acceptor)
 {
 }
Пример #4
0
 public ActiveElement(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor)
     : base(receivedName, receivedKnots, receivedValue)
 {
     dependingElement = acceptor;
 }
Пример #5
0
 public J(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor)
     : base(receivedName, receivedKnots, receivedValue, acceptor)
 {
 }
Пример #6
0
 public ActiveElement(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor)
     : base(receivedName, receivedKnots, receivedValue)
 {
     dependingElement = acceptor;
 }