public static void Write(string s) { int i = s.IndexOf('['); int j = s.IndexOf(']'); int l = s.IndexOf('}'); if (i == -1 || j == -1 || l == -1) { Console.Write(s); } else { if (i > 0) { Console.Write(s.Substring(0, i)); } Színtvált(s.Substring(i + 1, j - i - 1 )); Console.Write(s.Substring(j + 2, l - j - 2 )); Színtvált("white"); if (l < s.Length - 1) { Színes.Write(s.Substring(l + 1)); } } }
/// <summary> /// lefuttatja az adott helyen az adott fájlt. A fájl az inputokat a megadott helyről szerzi be. A megjegyzést kiírja. /// </summary> /// <param name="hely"></param> /// <param name="file"></param> /// <param name="megjegyzés"></param> public static void Fájl_Futtatása(string hely, string file) { using (Process process = new Process()) { process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = false; process.StartInfo.WorkingDirectory = hely; // azért kell, mert a futtatandó file ebben a könyvtárban keres majd inputot. process.StartInfo.FileName = file; process.Start(); process.WaitForExit(); } Console.WriteLine("Nyomj meg egy gombot a továbbhaladáshoz!"); if (léptetés) { Színes.WriteLine("[green]{--- Ahhoz, hogy léptetésben maradjon a program, nyomd meg a Space-t! ---}"); léptetés = Console.ReadKey().Key == ConsoleKey.Spacebar; } }
static void Main(string[] args) { Színes.WriteLine("[red]{Input} Egy programhoz tartozó [blue]{I_i} input nem más, \n\tmint egy könyvtár, amiben az adott program által igényelt inputfájlok vannak. \n\t(Lehetséges ugyanis, hogy több inputot is igényel ugyanaz a dolgozatprogram.)"); Színes.WriteLine("[red]{Inputkönyvtár:} Egy programhoz tartozó [blue]{I} inputkönyvtár tehát nem más, \n\tmint azonos nevű inputfájlokat tartalmazó [red]{könyvtárak könyvtára}."); Színes.WriteLine("[red]{Kiszedegetés után:} Futtasd le a [green]{Kiszedegetés.exe} programot a [blue]{sok2}[red]{n} funkcióval. \n\tÍgy kapsz egy [blue]{D} könyvtárat, benne a [blue]{D_1}, ..., [blue]{D_n} tanulók neveiről elnevezett könyvtárakkal, \n\tamikben egy-egy .exe fájlt fognak tartalmazni."); Színes.WriteLine("[red]{Előkészítés} Másold be a [blue]{D} könyvtárba az [blue]{I} könyvtárat, \n\tés ha nem [red]{-} jellel kezdődne, írj elé egyet. \n\t(Ez jelzi a programnak, hogy itt lesznek az inputfájlok. Csak egy inputkönyvtárad legyen itt.)"); Színes.WriteLine("[red]{Inputok elhelyezése} Nyomj egy entert."); while (Console.ReadKey().Key != ConsoleKey.Enter) { } #region Inputok elhelyezése string itt = Directory.GetCurrentDirectory(); string inputkönyvtár = Directory.EnumerateDirectories(itt).Where(x => Fájlkezelés.Path2Név(x).StartsWith("-")).First(); List <string> inputkönyvtárak = Directory.EnumerateDirectories(inputkönyvtár).ToList(); List <string> tesztkönyvtárak = Directory.EnumerateDirectories(itt).Where(x => !Fájlkezelés.Path2Név(x).StartsWith("-")).ToList(); if (inputkönyvtárak.Count() > tesztkönyvtárak.Count()) { Színes.WriteLine("[red]{Több input van, mint ahány tesztkönyvtár! Törölj inputokat vagy hozz létre több könyvtárat és próbáld újra! }"); } else { if (inputkönyvtárak.Count() < tesztkönyvtárak.Count()) { Színes.WriteLine("[red]{Kevesebb input van, mint ahány tesztkönyvtár! Néhány tesztkönvytár üresen fog maradni! }"); Console.ReadKey(); } for (int i = 0; i < inputkönyvtárak.Count(); i++) { foreach (string tanulópath in Directory.EnumerateDirectories(tesztkönyvtárak[i])) { foreach (string inputfájl in Directory.EnumerateFiles(inputkönyvtárak[i])) { // Színes.WriteLine(inputfájl + " [red]{->} " + tanulópath); File.Copy(inputfájl, tanulópath + "//" + Fájlkezelés.Path2Név(inputfájl), true); } } } #endregion Színes.WriteLine("[red]{Programok futtatása} Nyomj egy entert."); while (Console.ReadKey().Key != ConsoleKey.Enter) { } foreach (string tesztkönyvtár in tesztkönyvtárak) { foreach (string tanulókönyvtár in Directory.EnumerateDirectories(tesztkönyvtár)) { Színes.WriteLine("--------- " + Fájlkezelés.Path2Név(tanulókönyvtár) + " következik --------- "); Fájlkezelés.Fájl_Futtatása(tanulókönyvtár, Directory.EnumerateFiles(tanulókönyvtár).Where(x => Regex.IsMatch(x, @".*\.exe$")).First()); Színes.WriteLine("--------- " + Fájlkezelés.Path2Név(tanulókönyvtár) + " programjának vége --------- "); } } #region Programok futtatása #endregion Színes.WriteLine("[red]{Továbbiak} Menj át az Összehasonlítás.exe-re. "); } Színes.WriteLine("[red]{Kilépés} Nyomj egy q-t a kilépéshez. "); while (Console.ReadKey().Key != ConsoleKey.Q) { } }