예제 #1
0
        public BlokWeWy(Konsola usr)
        {
            InitializeComponent();

            if (usr == null)
            {
                MessageBox.Show("BlokWeWy: konstruktor: konsola nie istnieje");
                return;
            }

            graph      = CreateGraphics();
            frmConsole = usr;
        }
예제 #2
0
        public void Wykonaj(Konsola usr)
        {
            if (usr == null)
            {
                MessageBox.Show("BlokWeWy: Wykonaj: konsola nie istnieje");
                return;
            }

            if (dzialania == null)
            {
                MessageBox.Show("BlokWeWy: Wykonaj: lista dzialan nie istnieje");
                return;
            }

            frmConsole = usr;
            int temp = -1;

            for (int i = 0; i < dzialania.Count; i++)
            {
                if (dzialania[i].srodekZmienna == true)
                {
                    temp = ZnajdzZmienna(dzialania[i].srodek);
                }

                if (dzialania[i].dzialanie1 == "Wypisz")
                {
                    String tmpString;
                    if (dzialania[i].srodek != null)
                    {
                        tmpString = dzialania[i].srodek.ToString();
                        //najpierw podmien wszystkie zmienne
                        foreach (Zmienna zm in this.listaZmiennych)
                        {
                            if (zm.tablica == false)
                            {
                                tmpString = tmpString.Replace(znacznikZmiennej + zm.nazwa + znacznikZmiennej, zm.wartosc.ToString());
                            }
                        }
                        //nastepnie podmien wszystkie elementy tablic
                        foreach (Zmienna zm in this.listaZmiennych)
                        {
                            if (zm.tablica == true)
                            {
                                if (tmpString.Contains(zm.nazwa + '[') == true)
                                {
                                    //znajdz indexy do odczytania elementu tablicy
                                    int tmpInd1          = tmpString.IndexOf(znacznikZmiennej + zm.nazwa + '[') + 2;
                                    int tmpInd2          = 0;
                                    int tmpNumerElementu = 0;
                                    for (int j = tmpInd1; j < tmpString.Length; j++)
                                    {
                                        //if (tmpString[j] == '[')
                                        //    tmpInd1 = j;

                                        if (tmpString[j] == ']')
                                        {
                                            tmpInd2 = j;
                                            break;
                                        }
                                    }
                                    //odczytaj ktory element tablicy wypisac
                                    if (tmpInd2 - tmpInd1 > 0)
                                    {
                                        tmpNumerElementu = NumerElementuWTablicy(tmpString.Substring(tmpInd1, tmpInd2 - tmpInd1 + 1));
                                    }
                                    //
                                    tmpString = tmpString.Replace(znacznikZmiennej + zm.nazwa + "[" + (tmpNumerElementu + 1).ToString() + "]" + znacznikZmiennej, zm.wartosci[tmpNumerElementu].ToString());
                                }
                            }
                        }
                        frmConsole.richTextBox1.Text += tmpString + '\n';
                    }
                }
                else
                {
                    int     tmpNumerEl = 0;
                    Zmienna tmpZmienna = null;
                    if (dzialania[i].srodekZmienna == true)
                    {
                        temp = ZnajdzZmienna(dzialania[i].srodek.ToString());

                        if (temp < 0)
                        {
                            MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: zmienna " + dzialania[i].srodek + " nie znaleziona");
                            return;
                        }

                        if (temp > listaZmiennych.Count - 1)
                        {
                            MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: zmienna znaleziona poza zakresem listy");
                            return;
                        }

                        tmpZmienna = listaZmiennych[temp];

                        if (tmpZmienna.tablica == true)
                        {
                            tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek);

                            if (tmpNumerEl < 0)
                            {
                                MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: tmpNumerEl ujemny: " + tmpNumerEl.ToString());
                                return;
                            }
                        }

                        tmpZmienna = null;
                    }

                    if (temp < 0)
                    {
                        MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: zmienna " + dzialania[i].srodek + " nie znaleziona |2|");
                        return;
                    }

                    Czytaj tmpOkno = new Czytaj(listaZmiennych, temp, tmpNumerEl);

                    tmpOkno.label1.Text = "Podaj " + dzialania[i].srodek + ":";

                    if (listaZmiennych[temp].typ == typeof(int))
                    {
                        tmpOkno.maskedTextBox1.Mask = "000000000000000";
                    }
                    else
                    {
                        if (listaZmiennych[temp].typ == typeof(double))
                        {
                            tmpOkno.maskedTextBox1.Mask = "000000000.0000";
                        }
                        else
                        {
                            tmpOkno.maskedTextBox1.Mask = "";
                        }
                    }

                    tmpOkno.ShowDialog();

                    //listaZmiennych[i].wartosc = tmpString.ToString();
                }
            }
        }