コード例 #1
0
ファイル: Form1.cs プロジェクト: meetek/mpk.net
        public void ParseFile(string strPath)
        {
            //zle dodaje przystanki - ciagle pierwszy...
            //zle liczy czas jazdy
            //
            XmlTextReader xmlReader = new XmlTextReader(strPath);
            bool pierwszyPrzystanek = true;
            int aktualnaGodzina=0,aktualnaMinuta=0;
            string dzien = "";
            Przystanek aktualnieObrabianyPrzystanek = null;
            string nazwaLinii = "", typLinii = "", idPrzystanku = "", nazwaPrzystanku = "", ulicaPrzystanku = "";
            // Read the line of the xml file
            while (xmlReader.Read())
            {
                switch (xmlReader.NodeType)
                {
                    case XmlNodeType.Element:
                        
                        //zapisz dane obrabianej linii
                        if (xmlReader.Name == "linia")
                        {
                            xmlReader.MoveToAttribute(0);
                            nazwaLinii = xmlReader.Value;

                            xmlReader.MoveToAttribute(1);
                            typLinii = xmlReader.Value;
                            break;

                        }
                        //dodaj wariant linii do bazy
                        if (xmlReader.Name == "wariant")
                        { 
                            linie.Add(new Linia(nazwaLinii,typLinii));
                            pierwszyPrzystanek = true;
                            break;
                        }
                        //utworz aktualnie obrabiany przystanek
                        if (xmlReader.Name == "przystanek") 
                        {
                            xmlReader.MoveToAttribute(0);
                            idPrzystanku = xmlReader.Value;

                            xmlReader.MoveToAttribute(1);
                            nazwaPrzystanku = xmlReader.Value;

                            xmlReader.MoveToAttribute(2);
                            ulicaPrzystanku = xmlReader.Value;

                            //sprawdz czy taki przystanek juz jest
                            aktualnieObrabianyPrzystanek = przystanki.Find(
                                    delegate(Przystanek p)
                                    {
                                        return p.id == idPrzystanku;
                                    }
                                    );

                            //jak go nie ma to go dodaj
                            if (aktualnieObrabianyPrzystanek == null)
                            {
                                aktualnieObrabianyPrzystanek = new Przystanek(idPrzystanku, nazwaPrzystanku, ulicaPrzystanku);
                                przystanki.Add(aktualnieObrabianyPrzystanek);
                            }
                            //dodaj do tego przystanku linie
                            aktualnieObrabianyPrzystanek.dodajLinie(linie[linie.Count-1]);

                            //jesli jest to pierwszy przystanek
                            if (linie[linie.Count - 1].przystanki.Count == 0)
                            {   
                                //dodaj go do linii z czasem 0
                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, 0);
                                pierwszyPrzystanek = true;
                            }
                            else 
                            {
                                pierwszyPrzystanek = false;
                            }
                            break;

                        }
                        //zapisz dzien (roboczy/sobota...)
                        if(xmlReader.Name == "dzien")
                        {
                            xmlReader.MoveToAttribute(0);
                            dzien = xmlReader.Value;
                            break;
                        }
                        //zapisz godzine
                        if (xmlReader.Name == "godz")
                        {
                            xmlReader.MoveToAttribute(0);
                            aktualnaGodzina = Int32.Parse( xmlReader.Value);
                            break;
                        }
                        //przerabianie minut;
                        if (xmlReader.Name == "min")
                        {
                            xmlReader.MoveToAttribute(0);
                            aktualnaMinuta = Int32.Parse(xmlReader.Value);

                            //jesli przerabiamy pierwszy przystanek linii to kazda godzina jest godzina odjazdu z petli - trzeba je pododawac do linii
                            if (pierwszyPrzystanek)
                            {
                                //dodaj nowy wyjazd dla linii - typ dnia (roboczy, sobota...) i pierwsza godizne
                                linie[linie.Count - 1].wyjazd.Add(new Wyjazd(dzien, new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, aktualnaGodzina%24, aktualnaMinuta, 0)));
                                
                                //znacznik dzien oznacza, ze juz nie ma wiecej godzin
                                while (xmlReader.Read() && xmlReader.Name != "dzien") 
                                {
                                    if (xmlReader.Name == "godz" && xmlReader.HasAttributes) 
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaGodzina = Int32.Parse(xmlReader.Value);
                                    }
                                    if (xmlReader.Name == "min" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaMinuta = Int32.Parse(xmlReader.Value);

                                        //do obecnie przerabianego dnia (roboczy, sobota...) dodaj kolejne godziny
                                        linie[linie.Count - 1].wyjazd.Find(
                                            delegate(Wyjazd w)
                                            {
                                                return w.typDnia == dzien;
                                            }
                                            ).wyjazd.Add(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, aktualnaGodzina % 24, aktualnaMinuta, 0));
                                    }
                                }
                            }
                            //jesli jest to kolejny przystanek linii, to czas dojazdu na ten przystanek to pierwszy czas wyjazdu z petli i pierwszy autobus na tym przystanku
                            else 
                            {
                                //znajdzi pierwsza godzine wyjazd z petli
                                DateTime wyjazd = linie[linie.Count - 1].wyjazd.Find(
                                    delegate(Wyjazd w)
                                    {
                                        return w.typDnia == dzien;
                                    }
                                    ).wyjazd[0];

                                //stworz godzine przyjazdu na podstawie odczytanych wczesniej danych
                                DateTime przyjazd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,aktualnaGodzina%24,aktualnaMinuta,0);

                                TimeSpan czas = przyjazd - wyjazd;

                                //dodaj ten przystanek do linii z obliczonym czasem dojazdu
                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes);
                                
                                //dopoki nie ma znacznika przystanek to sa tam godziny ktore nas juz nie interesuja. ta petla je pomija
                                while (xmlReader.Name != "przystanek") xmlReader.Read();

                                //dopoki nie ma znacznika wariant to sa tam przystanki, dla ktorych nalezy obliczyc czas dojazdu
                                while (xmlReader.Name != "wariant") 
                                {
                                    //tak jak poprzednio stworz dane o przystanku i jesli go nie ma to go dodaj
                                    if (xmlReader.Name == "przystanek" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        idPrzystanku = xmlReader.Value;

                                        xmlReader.MoveToAttribute(1);
                                        nazwaPrzystanku = xmlReader.Value;

                                        xmlReader.MoveToAttribute(2);
                                        ulicaPrzystanku = xmlReader.Value;

                                        aktualnieObrabianyPrzystanek = przystanki.Find(
                                                delegate(Przystanek p)
                                                {
                                                    return p.id == idPrzystanku;
                                                }
                                                );
                                        if (aktualnieObrabianyPrzystanek == null)
                                        {
                                            aktualnieObrabianyPrzystanek = new Przystanek(idPrzystanku, nazwaPrzystanku, ulicaPrzystanku);
                                            przystanki.Add(aktualnieObrabianyPrzystanek);
                                        }
                                        aktualnieObrabianyPrzystanek.dodajLinie(linie[linie.Count - 1]);

                                        //poniewaz ostatni przystanek nie ma godzin odjazdow, to nie ma tam znacznika <godz> ktory jest wylapywany przez ten algorytm
                                        //2 przyeczytania nie szkodza, gdyz albo trafimy na znacnzik tabliczka (nie ostatni przystanek), ktory jest ignorowany przez algorytm
                                        //albo trafimy na znacznik </przystanek> co oznacza, ze jest to ostatni przystanek linii i czas jazdy wynosi tyle samo co na przedostatni
                                        xmlReader.Read();
                                        xmlReader.Read();
                                        if (xmlReader.NodeType == XmlNodeType.EndElement) 
                                        {
                                            //dzien ma 1440 minut, dlatego jesli autobus wyjezdza przed polnoca a dojezdza po, to nalezy poprawic wynik
                                            if (czas.TotalMinutes < 0)
                                            {
                                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes + 1440);
                                            }
                                            else
                                            {
                                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes);
                                            }
                                        
                                        }
                                    }

                                    if (xmlReader.Name == "godz" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaGodzina = Int32.Parse( xmlReader.Value);
                                        continue;
                                    }
                                    if (xmlReader.Name == "min" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaMinuta = Int32.Parse(xmlReader.Value);
                                        przyjazd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, aktualnaGodzina % 24, aktualnaMinuta, 0);

                                        czas = przyjazd - wyjazd;
                                        if (czas.TotalMinutes < 0)
                                        {
                                            linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes + 1440);
                                        }
                                        else
                                        {
                                            linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes);
                                        }
                                        while (xmlReader.Name != "tabliczka") xmlReader.Read();
                                    }
                                    xmlReader.Read();
                                
                                }
                            }
                        
                        }

                            
                        
                        break;
                    case XmlNodeType.EndElement:
                        
                        break;
                    case XmlNodeType.Text:

                        richTextBox1.Text += xmlReader.Value + "\n";
                        break;
                    default:
                        break;
                }
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: meetek/mpk.net
 public void dodajPrzystanek(Przystanek przystanek,int _czasJazdy)
 {
     przystanki.Add(przystanek);
     czasJazdy.Add(_czasJazdy);
 }
コード例 #3
0
ファイル: Form1.cs プロジェクト: meetek/mpk.net
   /*     private void parseFile(string strPath)
        {
            //zle dodaje przystanki - ciagle pierwszy...
            //zle liczy czas jazdy
            //
            XmlTextReader xmlReader = new XmlTextReader(strPath);
            bool pierwszyPrzystanek = true;
            int aktualnaGodzina=0,aktualnaMinuta=0;
            string dzien = "";
            Przystanek aktualnieObrabianyPrzystanek = null;
            string nazwaLinii = "", typLinii = "", idPrzystanku = "", nazwaPrzystanku = "", ulicaPrzystanku = "";
            // Read the line of the xml file
            while (xmlReader.Read())
            {
                switch (xmlReader.NodeType)
                {
                    case XmlNodeType.Element:
                        
                        //zapisz dane obrabianej linii
                        if (xmlReader.Name == "linia")
                        {
                            xmlReader.MoveToAttribute(0);
                            nazwaLinii = xmlReader.Value;

                            xmlReader.MoveToAttribute(1);
                            typLinii = xmlReader.Value;
                            break;

                        }
                        //dodaj wariant linii do bazy
                        if (xmlReader.Name == "wariant")
                        { 
                            linie.Add(new Linia(nazwaLinii,typLinii));
                            pierwszyPrzystanek = true;
                            break;
                        }
                        //utworz aktualnie obrabiany przystanek
                        if (xmlReader.Name == "przystanek") 
                        {
                            xmlReader.MoveToAttribute(0);
                            idPrzystanku = xmlReader.Value;

                            xmlReader.MoveToAttribute(1);
                            nazwaPrzystanku = xmlReader.Value;

                            xmlReader.MoveToAttribute(2);
                            ulicaPrzystanku = xmlReader.Value;

                            //sprawdz czy taki przystanek juz jest
                            aktualnieObrabianyPrzystanek = przystanki.Find(
                                    delegate(Przystanek p)
                                    {
                                        return p.id == idPrzystanku;
                                    }
                                    );

                            //jak go nie ma to go dodaj
                            if (aktualnieObrabianyPrzystanek == null)
                            {
                                aktualnieObrabianyPrzystanek = new Przystanek(idPrzystanku, nazwaPrzystanku, ulicaPrzystanku);
                                przystanki.Add(aktualnieObrabianyPrzystanek);
                            }
                            //dodaj do tego przystanku linie
                            aktualnieObrabianyPrzystanek.dodajLinie(linie[linie.Count-1]);

                            //jesli jest to pierwszy przystanek
                            if (linie[linie.Count - 1].przystanki.Count == 0)
                            {   
                                //dodaj go do linii z czasem 0
                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, 0);
                                pierwszyPrzystanek = true;
                            }
                            else 
                            {
                                pierwszyPrzystanek = false;
                            }
                            break;

                        }
                        //zapisz dzien (roboczy/sobota...)
                        if(xmlReader.Name == "dzien")
                        {
                            xmlReader.MoveToAttribute(0);
                            dzien = xmlReader.Value;
                            break;
                        }
                        //zapisz godzine
                        if (xmlReader.Name == "godz")
                        {
                            xmlReader.MoveToAttribute(0);
                            aktualnaGodzina = Int32.Parse( xmlReader.Value);
                            break;
                        }
                        //przerabianie minut;
                        if (xmlReader.Name == "min")
                        {
                            xmlReader.MoveToAttribute(0);
                            aktualnaMinuta = Int32.Parse(xmlReader.Value);

                            //jesli przerabiamy pierwszy przystanek linii to kazda godzina jest godzina odjazdu z petli - trzeba je pododawac do linii
                            if (pierwszyPrzystanek)
                            {
                                //dodaj nowy wyjazd dla linii - typ dnia (roboczy, sobota...) i pierwsza godizne
                                linie[linie.Count - 1].wyjazd.Add(new Wyjazd(dzien, new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, aktualnaGodzina%24, aktualnaMinuta, 0)));
                                
                                //znacznik dzien oznacza, ze juz nie ma wiecej godzin
                                while (xmlReader.Read() && xmlReader.Name != "dzien") 
                                {
                                    if (xmlReader.Name == "godz" && xmlReader.HasAttributes) 
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaGodzina = Int32.Parse(xmlReader.Value);
                                    }
                                    if (xmlReader.Name == "min" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaMinuta = Int32.Parse(xmlReader.Value);

                                        //do obecnie przerabianego dnia (roboczy, sobota...) dodaj kolejne godziny
                                        linie[linie.Count - 1].wyjazd.Find(
                                            delegate(Wyjazd w)
                                            {
                                                return w.typDnia == dzien;
                                            }
                                            ).wyjazd.Add(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, aktualnaGodzina % 24, aktualnaMinuta, 0));
                                    }
                                }
                            }
                            //jesli jest to kolejny przystanek linii, to czas dojazdu na ten przystanek to pierwszy czas wyjazdu z petli i pierwszy autobus na tym przystanku
                            else 
                            {
                                //znajdzi pierwsza godzine wyjazd z petli
                                DateTime wyjazd = linie[linie.Count - 1].wyjazd.Find(
                                    delegate(Wyjazd w)
                                    {
                                        return w.typDnia == dzien;
                                    }
                                    ).wyjazd[0];

                                //stworz godzine przyjazdu na podstawie odczytanych wczesniej danych
                                DateTime przyjazd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,aktualnaGodzina%24,aktualnaMinuta,0);

                                TimeSpan czas = przyjazd - wyjazd;

                                //dodaj ten przystanek do linii z obliczonym czasem dojazdu
                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes);
                                
                                //dopoki nie ma znacznika przystanek to sa tam godziny ktore nas juz nie interesuja. ta petla je pomija
                                while (xmlReader.Name != "przystanek") xmlReader.Read();

                                //dopoki nie ma znacznika wariant to sa tam przystanki, dla ktorych nalezy obliczyc czas dojazdu
                                while (xmlReader.Name != "wariant") 
                                {
                                    //tak jak poprzednio stworz dane o przystanku i jesli go nie ma to go dodaj
                                    if (xmlReader.Name == "przystanek" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        idPrzystanku = xmlReader.Value;

                                        xmlReader.MoveToAttribute(1);
                                        nazwaPrzystanku = xmlReader.Value;

                                        xmlReader.MoveToAttribute(2);
                                        ulicaPrzystanku = xmlReader.Value;

                                        aktualnieObrabianyPrzystanek = przystanki.Find(
                                                delegate(Przystanek p)
                                                {
                                                    return p.id == idPrzystanku;
                                                }
                                                );
                                        if (aktualnieObrabianyPrzystanek == null)
                                        {
                                            aktualnieObrabianyPrzystanek = new Przystanek(idPrzystanku, nazwaPrzystanku, ulicaPrzystanku);
                                            przystanki.Add(aktualnieObrabianyPrzystanek);
                                        }
                                        aktualnieObrabianyPrzystanek.dodajLinie(linie[linie.Count - 1]);

                                        //poniewaz ostatni przystanek nie ma godzin odjazdow, to nie ma tam znacznika <godz> ktory jest wylapywany przez ten algorytm
                                        //2 przyeczytania nie szkodza, gdyz albo trafimy na znacnzik tabliczka (nie ostatni przystanek), ktory jest ignorowany przez algorytm
                                        //albo trafimy na znacznik </przystanek> co oznacza, ze jest to ostatni przystanek linii i czas jazdy wynosi tyle samo co na przedostatni
                                        xmlReader.Read();
                                        xmlReader.Read();
                                        if (xmlReader.NodeType == XmlNodeType.EndElement) 
                                        {
                                            //dzien ma 1440 minut, dlatego jesli autobus wyjezdza przed polnoca a dojezdza po, to nalezy poprawic wynik
                                            if (czas.TotalMinutes < 0)
                                            {
                                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes + 1440);
                                            }
                                            else
                                            {
                                                linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes);
                                            }
                                        
                                        }
                                    }

                                    if (xmlReader.Name == "godz" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaGodzina = Int32.Parse( xmlReader.Value);
                                        continue;
                                    }
                                    if (xmlReader.Name == "min" && xmlReader.HasAttributes)
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        aktualnaMinuta = Int32.Parse(xmlReader.Value);
                                        przyjazd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, aktualnaGodzina % 24, aktualnaMinuta, 0);

                                        czas = przyjazd - wyjazd;
                                        if (czas.TotalMinutes < 0)
                                        {
                                            linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes + 1440);
                                        }
                                        else
                                        {
                                            linie[linie.Count - 1].dodajPrzystanek(aktualnieObrabianyPrzystanek, (int)czas.TotalMinutes);
                                        }
                                        while (xmlReader.Name != "tabliczka") xmlReader.Read();
                                    }
                                    xmlReader.Read();
                                
                                }
                            }
                        
                        }

                            
                        
                        break;
                    case XmlNodeType.EndElement:
                        
                        break;
                    case XmlNodeType.Text:

                        richTextBox1.Text += xmlReader.Value + "\n";
                        break;
                    default:
                        break;
                }
            }
        }*/
        private void parseFile2(string strPath) 
        {
            List<DateTime> czasy = new List<DateTime>();
            int godzina=0,minuta=0;
            Przystanek aktualnyPrzystanek = null;
            string dzien = "";
            string nazwaLinii = "", typLinii = "", nazwaWariantu="", idPrzystanku = "", nazwaPrzystanku = "", ulicaPrzystanku = "";
            bool pierwszyPrzystanek = true;
            XmlTextReader xmlReader = new XmlTextReader(strPath);
            while(xmlReader.Read())
            {
                switch (xmlReader.NodeType) 
                {
                    case XmlNodeType.Element:
                        {
                            switch (xmlReader.Name) 
                            {
                                case "linia":
                                    {
                                        xmlReader.MoveToAttribute(0);
                                        nazwaLinii = xmlReader.Value;

                                        xmlReader.MoveToAttribute(1);
                                        typLinii = xmlReader.Value;
                                        break;
                                    }
                                case "wariant":
                                    {
                                        xmlReader.MoveToAttribute(1);
                                        nazwaWariantu = xmlReader.Value;

                                        linie.Add(new Linia(nazwaLinii,typLinii,nazwaWariantu));
                                        pierwszyPrzystanek = true;

                                        while (xmlReader.Read() && xmlReader.Name != "wariant") 
                                        {
                                            switch (xmlReader.NodeType) 
                                            {
                                                case XmlNodeType.Element: 
                                                    {
                                                        switch (xmlReader.Name) 
                                                        {
                                                            case "przystanek":
                                                                {
                                                                    xmlReader.MoveToAttribute(0);
                                                                    idPrzystanku = xmlReader.Value;

                                                                    xmlReader.MoveToAttribute(1);
                                                                    nazwaPrzystanku = xmlReader.Value;

                                                                    xmlReader.MoveToAttribute(2);
                                                                    ulicaPrzystanku = xmlReader.Value;

                                                                    //sprawdz czy taki przystanek juz jest
                                                                    aktualnyPrzystanek = przystanki.Find(
                                                                            delegate(Przystanek p)
                                                                            {
                                                                                return p.nazwa == nazwaPrzystanku;
                                                                            }
                                                                            );

                                                                    //jak go nie ma to go dodaj
                                                                    if (aktualnyPrzystanek == null)
                                                                    {
                                                                        aktualnyPrzystanek = new Przystanek(idPrzystanku, nazwaPrzystanku, ulicaPrzystanku);
                                                                        przystanki.Add(aktualnyPrzystanek);
                                                                    }
                                                                    //dodaj do tego przystanku linie
                                                                    aktualnyPrzystanek.dodajLinie(linie[linie.Count - 1]);
                                                                    
                                                                    if (linie[linie.Count - 1].przystanki.Count == 0)
                                                                    {
                                                                        //dodaj go do linii z czasem 0
                                                                        linie[linie.Count - 1].dodajPrzystanek(aktualnyPrzystanek, 0);
                                                                        pierwszyPrzystanek = true;
                                                                    }
                                                                    else
                                                                    {
                                                                        pierwszyPrzystanek = false;
                                                                    }
                                                                    break;
                                                                }
                                                            case "dzien":
                                                                {
                                                                    xmlReader.MoveToAttribute(0);
                                                                    dzien = xmlReader.Value;
                                                                    break;
                                                                }
                                                            case "godz":
                                                                {
                                                                    xmlReader.MoveToAttribute(0);
                                                                    godzina = Int32.Parse(xmlReader.Value);
                                                                    break;
                                                                }
                                                            case "min":
                                                                {
                                                                    xmlReader.MoveToAttribute(0);
                                                                    minuta = Int32.Parse(xmlReader.Value);
                                                                    break;
                                                                }
                                                            default: break;
                                                        }
                                                        break;
                                                    }
                                                case XmlNodeType.EndElement: 
                                                    {
                                                        if (pierwszyPrzystanek)
                                                        {
                                                            if (xmlReader.Name == "min")
                                                            {
                                                                czasy.Add(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, godzina, minuta, 0));
                                                            }
                                                            if (xmlReader.Name == "dzien")
                                                            {
                                                                linie[linie.Count - 1].wyjazd.Add(new Wyjazd(dzien, czasy));
                                                            }
                                                        }
                                                        else 
                                                        {
                                                            if (xmlReader.Name == "min")
                                                            {
                                                                DateTime wyjazd = linie[linie.Count - 1].wyjazd.Find(
                                                                    delegate(Wyjazd w)
                                                                    {
                                                                        return w.typDnia == dzien;
                                                                    }
                                                                    ).wyjazd[0];

                                                                DateTime przyjazd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, godzina, minuta, 0);

                                                                TimeSpan czasDojazdu = przyjazd - wyjazd;

                                                                linie[linie.Count - 1].dodajPrzystanek(aktualnyPrzystanek, (int)czasDojazdu.TotalMinutes);

                                                                while (xmlReader.Name != "dzien" && xmlReader.Read());
                                                            }
                                                        }
                                                        break;
                                                    }
                                                default: break;
                                                
                                            }
                                        
                                        }

                                        break;
                                    }
                                //default dla Element
                                default: break;
                            }
                            break;
                        }
                    //default glownego switcha
                    default: break;
                }
            }
        
        }