Beispiel #1
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                // No argument given... print help and error out.
                System.Console.WriteLine(":: NameSorter ::");
                System.Console.WriteLine(NameSorter.ProgramUsageText());
                Environment.Exit(-1);
            }
            SortInterface  name_sorter = null;
            InputInterface name_source = new FileInput();

            string[] name_list = null;
            // process flags
            if (args.Any("--desc".Contains))
            {
                name_sorter = new NameSorterReverse();
            }
            else
            {
                name_sorter = new NameSorter();
            }

            if (args.Any("--ifile".Contains))
            {
                string file_name = args[Array.IndexOf(args, "--ifile") + 1];
                name_list = name_source.GetNames(file_name);
            }
            // catch origional program behaviour
            if (name_list == null)
            {
                name_list = name_source.GetNames(args[0]);
            }
            string[] sorted_names = name_sorter.SortNames(name_list);
            System.Console.WriteLine(String.Join(Platform.Delimiter, sorted_names));
            System.IO.File.WriteAllLines(@"sorted-names-list.txt", sorted_names);



            //old and crusty now
            if (args.Length == 1 && System.IO.File.Exists(args[0]))
            {
            }
            else
            {
                // This should be in output module:
                // System.Console.WriteLine(":: NameSorter ::");
                // System.Console.WriteLine(NameSorter.ProgramUsageText());
                // System.Console.WriteLine($" The file '{args[0]}' was not found!");
                // Environment.Exit(-1);
            }
            Environment.Exit(0);
        }
Beispiel #2
0
        // Identigy class to get type of algortihm
        private void w_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bw = sender as BackgroundWorker;
            string           SortInterfaceName = (string)e.Argument;
            Type             type = Type.GetType("SortVisualizer." + SortInterfaceName);
            var contructors       = type.GetConstructors();

            try
            {
                SortInterface s = (SortInterface)contructors[0].Invoke(new object[] { mainArray, g, panel1.Height });
                while (!s.isSorted() && (!w.CancellationPending))
                {
                    s.nextStep();
                }

                if (s.isSorted())
                {
                    s.completeSort();
                }
            }
            catch (Exception ex)
            {
            }
        }