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); }
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"; } } }