Beispiel #1
0
        public static LoadGraph LoadS4p(string fileName)
        {
            var    loadedParams = new LoadGraph();
            string line;
            double c11          = 0;
            double c22          = 0;
            double c12          = 0;
            double l11          = 0;
            double l22          = 0;
            double l12          = 0;
            double z2Out        = 50;
            double z1Out        = 50;
            double z2In         = 50;
            double z1In         = 50;
            double nf           = 0;
            double l            = 0;
            double fmin         = 0;
            double fmax         = 0;
            var    i            = 0;
            var    stringCounts = 0;
            bool   s4pright     = false;

            using (StreamReader sr = new StreamReader(fileName, Encoding.UTF8))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    if (line.Contains("! ParamApp"))
                    {
                        s4pright = true;
                        break;
                    }
                    else
                    {
                        if (!line.Contains("#") && !line.Contains("!"))
                        {
                            stringCounts++;
                        }
                    }
                }

                sr.Close();
            }

            if (s4pright)
            {
                using (StreamReader sr = new StreamReader(fileName, Encoding.UTF8))
                {
                    while ((line = sr.ReadLine()) != null)
                    {
                        if (line.Contains("C11, pF/m="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out c11);
                            i++;
                        }

                        if (line.Contains("C22, pF/m="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out c22);
                            i++;
                        }

                        if (line.Contains("C12, pF/m="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out c12);
                            i++;
                        }

                        if (line.Contains("L11, μH/m="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out l11);
                            i++;
                        }

                        if (line.Contains("L22, μH/m="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out l22);
                            i++;
                        }

                        if (line.Contains("L12, μH/m="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out l12);
                            i++;
                        }

                        if (line.Contains("Nf="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out nf);
                            i++;
                        }

                        if (line.Contains("L, mm="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out l);
                            i++;
                        }

                        if (line.Contains("FreqMax, GHz="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out fmax);
                            i++;
                        }

                        if (line.Contains("FreqMin, GHz="))
                        {
                            var index = line.IndexOf('=');
                            double.TryParse(line.Substring(index + 1), _styles, _culture, out fmin);
                            i++;
                        }

                        if (i == 10)
                        {
                            sr.Close();
                            break;
                        }
                    }
                }

                var calculator = new CalculateFromPogonie();
                loadedParams.CurrentParams = calculator.Calculate(c11, c12, c22, l11, l12, l22);
                loadedParams.RelatedData   = new SortedList <string, double>
                {
                    { "Z1inTextBox", z1In },
                    { "Z2inTextBox", z2In },
                    { "Z1outTextBox", z1Out },
                    { "Z2outTextBox", z2Out },
                    { "FreqMinTextBox", fmin },
                    { "FreqMaxTextBox", fmax },
                    { "LengthTextBox", l },
                    { "NfTextBox", nf }
                };
            }
            else
            {
                loadedParams = LoadLeftS4p(fileName, stringCounts / 4);
            }

            loadedParams.inParams = s4pright;
            return(loadedParams);
        }