예제 #1
0
 public void insertAattribute(LinkedList list, inorganic_matter X, string inputAtt)
 {
     X.attribute = inputAtt;
     list.Add(X);
 }
예제 #2
0
        static LinkedList input(StreamReader reader)
        {
            LinkedList list = new LinkedList();
            string     String, word = "", massString = "";
            int        mass;
            bool       atom = false, inorganic = false, organic = true, massCount = false;

            while ((String = reader.ReadLine()) != null)
            {
                if (String.Length != 0)
                {
                    for (int i = 0; i < String.Length; i++)
                    {
                        if (String[0] == '/')
                        {
                            break;
                        }

                        if ((Char.IsLetterOrDigit(String[i]) || String[i] == ',') && (massCount == false))   //счет digit
                        {
                            if (String[i] == ',')
                            {
                                atom = true; organic = false;
                            }
                            ;
                            word += String[i];
                        }
                        else
                        {
                            if (String[i] == '-' || massCount == true)
                            {
                                massCount = true;
                                if (Char.IsDigit(String[i]))
                                {
                                    if (massCount)
                                    {
                                        massString += String[i];
                                    }
                                    if (String[i + 1] == '*')
                                    {
                                        massCount = false;
                                    }
                                }
                            }
                            else
                            {
                                if (Char.IsLetter(word[0]))
                                {
                                    organic   = false;
                                    inorganic = true;
                                }
                                mass = int.Parse(massString);
                                if (inorganic)
                                {
                                    inorganic_matter X = new inorganic_matter(mass);
                                    X.insertAattribute(list, X, word);
                                }
                                if (atom)
                                {
                                    atom X = new atom(mass);
                                    X.insertAattribute(list, X, word);
                                }
                                if (organic)
                                {
                                    organic_matter X = new organic_matter(mass);
                                    X.insertAattribute(list, X, word);
                                }

                                word       = "";
                                massString = "";
                                atom       = false;
                                massCount  = false;
                                organic    = true;
                                inorganic  = false;
                            }
                        }
                    }
                }
            }
            return(list);
        }