示例#1
0
        public int[][] Matrix_oszlop_generalas(Targy t, int particio_szam, int oszlop_ahol_epp_tartunk)
        {
            int[][] oszlop_array = new int[variaciok_szama][];
            for (int i = 0; i < variaciok_szama; i++)
            {
                oszlop_array[i]    = new int[2];
                oszlop_array[i][0] = oszlop_ahol_epp_tartunk;
                oszlop_array[i][1] = 666;
            }
            int kurzus_szam         = t.getKurzusSzam();
            int egy_particio_hossza = variaciok_szama / particio_szam;

            int[] kurzusok_oszlopID_ja_tomb = new int[kurzus_szam]; //egy tömb 0-tól addig, amennyi kurzusa van a tárgynak
            for (int i = 0; i < kurzus_szam; i++)
            {
                kurzusok_oszlopID_ja_tomb[i] = i;
            }

            int j   = 0;
            int idx = 0;

            while (idx < variaciok_szama)
            {
                int particioba_beirt_szamok_darabja = 0;

                while (particioba_beirt_szamok_darabja < egy_particio_hossza)
                {
                    oszlop_array[idx][1] = kurzusok_oszlopID_ja_tomb[j];
                    idx++;
                    particioba_beirt_szamok_darabja++;
                }
                particioba_beirt_szamok_darabja = 0;
                j++;
                if (j > kurzus_szam - 1)
                {
                    j = 0;
                }
            }
            return(oszlop_array);
        }
示例#2
0
        private void OpenFileButton_Click(object sender, EventArgs e)
        {
            List <string> fileContent       = new List <string>();
            List <string> osszes_targy      = new List <string>();
            List <string> idopontos_targyak = new List <string>();

            var filePath = string.Empty;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //Get the path of specified file
                filePath = openFileDialog1.FileName;


                //Read the contents of the file into a stream
                var      fileStream   = openFileDialog1.OpenFile();
                Encoding encodingType = Encoding.GetEncoding("Windows-1250");

                StreamReader reader = new StreamReader(fileStream, encodingType);  //encodingType 2. paraméter ha nem lenne jó a kódolás
                while (reader.Peek() >= 0)
                {
                    fileContent.Add(reader.ReadLine());
                }

                foreach (string line in fileContent)    //ha tárgyról van szó
                {
                    if (!line.Equals("*") && !line.Contains(":"))
                    {
                        osszes_targy.Add(line);
                    }
                }



                //tárgyak megjelölése ahol nem volt időpont, kell a megjelölgetés mert közben nem lehet törölni mert újrasorszámozódik (asszem) meg akkor nem tudnánk kiírni hogy hány tárgyat töröltünk
                for (int i = 0; i < fileContent.Count - 1; i++)                                      //utolsó elemet nem kell nézni
                {
                    if ((osszes_targy.Contains(fileContent[i])) && (fileContent[i + 1].Equals("*"))) //ha az adott sor tárgy és a rákövetkező elem csillag (vagyis nincs hozzá időpont)
                    {
                        fileContent[i]     = fileContent[i].Insert(0, "?");                          //új stringgel tér vissza
                        fileContent[i + 1] = fileContent[i + 1].Insert(0, "?");
                    }
                }

                //tárgyak törlése ahol nem volt időpont
                removed_classes = fileContent.RemoveAll(StartsWithQuestionMark) / 2;



                //itt már a fileContent nem tartalmazza azokat a tárgyakat amikhez nincs időpont

                foreach (string line in fileContent)
                {
                    if (!line.Equals("*") && !line.Contains(":"))
                    {
                        idopontos_targyak.Add(line);
                    }
                }

                for (int i = 0; i < idopontos_targyak.Count; i++)
                {
                    listBoxLeft.Items.Insert(i, idopontos_targyak[i]);
                }


                //classokba olvasás
                foreach (string ora in idopontos_targyak)
                {
                    Targy t = new Targy(ora);
                    targy_objektumok.Add(t);
                    int idx = fileContent.IndexOf(ora); //megkeresi hogy a fileContent-ben hol van ez az óra
                    ++idx;                              //+1 mert különben saját magát is nézné, ami nem * tehát kurzusnak venné

                    try
                    {
                        for (int i = idx; i < fileContent.Count() - 1; i++)
                        {
                            if (fileContent[i].Equals("*")) //ha csillag
                            {
                                break;
                            }
                            else   //ha kurzus
                            {
                                Kurzus k = new Kurzus(fileContent[i]);
                                t.Kurzus_listahoz_adas(k);
                                k.Ora_neve = t.Nev;
                            }
                        }
                    }
                    catch (ArgumentOutOfRangeException ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }


                //ez csak egy teszt hogy sikerült-e a példányosítás
                for (int i = 0; i < idopontos_targyak.Count(); i++)
                {
                    //testLabel.Text += targy_objektumok[i].ToString() + "\n";
                }
            }
        }