Esempio n. 1
0
        /// <summary>
        /// Načítání vrcholů ze souboru, vynechání hlavičky souboru. Hlavicka může zůstat.
        /// </summary>
        /// <param name="cesta">Cesta k souboru.</param>
        /// <returns>List Vrcholů.</returns>
        public List <DataVrcholu> NactiDataVrcholuZCsv(String cesta)
        {
            List <DataVrcholu> vysledek = new List <DataVrcholu>();
            List <string[]>    objekt   = editorCSV.NactiSoubor(cesta);

            //ukladani poradi radku do int, aby se pak dala vynechat hlavicka souboru Cesty
            int poradiRadku = 0;

            foreach (string[] radek in objekt)
            {
                poradiRadku++;
                if (poradiRadku == 1)
                {
                    continue;
                }
                DataVrcholu v = new DataVrcholu();
                v.NazevVrcholu       = radek[0];
                v.XSouradniceVrcholu = float.Parse(radek[1]);
                v.YSouradniceVrcholu = float.Parse(radek[2]);
                if (radek.Length >= 4)
                {
                    v.TypVrcholu = (TypyVrcholu)int.Parse(radek[3]);
                }
                vysledek.Add(v);
            }
            return(vysledek);
        }
Esempio n. 2
0
        /// <summary>
        /// Načítání vrcholů pro abstraktní soubor SEM C.
        /// </summary>
        public void NactiVrcholyProSemC()
        {
            List <DataVrcholu> vrcholy5000 = NactiDataVrcholuZCsv(cestaKsouboruSemCOrigo);
            List <KeyValuePair <string, DataVrcholu> > listDvouHodnot = new List <KeyValuePair <string, DataVrcholu> >();

            for (int i = 0; i <= vrcholy5000.Count - 1; i++)
            {
                DataVrcholu dv = vrcholy5000[i]; //zalozit promennou vrcholu, protoze forem mam jen indexy
                KeyValuePair <string, DataVrcholu> kvp = new KeyValuePair <string, DataVrcholu>(dv.NazevVrcholu, dv);
                listDvouHodnot.Add(kvp);
            }
            listDvouHodnot.Sort((a, b) => a.Key.ToLower().CompareTo(b.Key.ToLower()));
            // blokacni faktor nastaven na 5
            abstraktniSoubor.VybudujSoubor(listDvouHodnot, 5);
        }
Esempio n. 3
0
        /// <summary>
        /// Vkládání vrcholu do mapy.
        /// </summary>
        /// <param name="x">x-ová souřadnice vrcholu</param>
        /// <param name="y">z-souřadnice vrcholu</param>
        /// <param name="typyVrcholu"> typ vrcholů z výčtu</param>
        /// <param name="nazevVrcholu">název vrcholu, řetězec</param>
        /// <returns>vrací přidáváný vrchol</returns>
        public DataVrcholu VlozVrchol(int x, int y, TypyVrcholu typyVrcholu, string nazevVrcholu)
        {
            if (nazevVrcholu == "")
            {
                throw new Exception("Neplatný název bodu.");
            }
            else if (NajdiVrcholSemA(nazevVrcholu) != null)
            {
                throw new Exception("Bod již exitsuje. Prosím zvolte jiný.");
            }

            DataVrcholu v = new DataVrcholu();

            v.XSouradniceVrcholu = x;
            v.YSouradniceVrcholu = y;
            v.TypVrcholu         = typyVrcholu;
            v.NazevVrcholu       = nazevVrcholu;
            ag.PridejVrchol(v.NazevVrcholu, v);
            // po pridani vrcholu znovu vybudujeme RozsahovyStrom
            // List ma pretizeny konstruktor, ktery je schopny prijmout kolekci typu IEnumerable
            rs.Vybuduj(new List <DataVrcholu>(ag.VratSeznamVrcholu()));
            return(v);
        }