Esempio n. 1
0
        private Tuple <bool, bool> FindCircuitCount(string line)
        {
            //tuple values are: "found circuit?" true/false and "finished reading board section?" true/false
            if (line.Contains("Fiducial"))
            {
                if (CircuitList.Count > 0)
                {
                    --CircuitCount;
                }
                return(Tuple.Create(false, true));
            }

            Regex reCircuit    = new Regex("\\s+Circuit[\\s:\"]+Circuit");
            Regex reOffset     = new Regex("\\s+Circuit[\\s:\"]+(Offset |\\d{ 1,2})");
            Match matchCircuit = reCircuit.Match(line);
            Match matchOffset  = reOffset.Match(line);

            try
            {
                string[] sep = new string[] { "\"" };
                if (matchOffset.Success)
                {
                    string[] temp = line.Split(sep, StringSplitOptions.RemoveEmptyEntries);
                    if (!temp[5].Equals(temp[9]))
                    {
                        ++CircuitCount;
                        return(Tuple.Create(true, false));
                    }
                    else
                    {
                        return(Tuple.Create(false, false));
                    }
                }
                else if (matchCircuit.Success)
                {
                    string[] temp = line.Split(sep, StringSplitOptions.RemoveEmptyEntries);
                    if (CircuitList.Add(temp[1]))
                    {
                        ++CircuitCount;
                        return(Tuple.Create(true, false));
                    }
                    else
                    {
                        return(Tuple.Create(false, false));
                    }
                }
                else
                {
                    return(Tuple.Create(false, false));
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("The program had a problem parsing the board template section.\nReturning current count of " + CircuitCount.ToString() + " but could be wrong.\n" + e.Message, "Ci2Parser:FindCircuitCount()", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(Tuple.Create(false, true));
            }
        }