/*M+M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++
     * Method:  public ProgramArgs(string[] args)
     * Summary:
     * Args:
     * Modifies:
     * Returns:
     * M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M-M*/
    static public int CommandLine(string[] args)
    {
        // call default constructor
        // ProgramArgs(); // this does not work, why?
        if (args == null)
        {
            return(0);
        }

        if (args.GetLength(0) < 4)
        {
            ProgramArgs.ArgsHelp();
            return(0);
        }

        foreach (string s in args)
        {
            // directory
            if (s.StartsWith("-d") && 2 < s.Length)
            {
                Directory = s.Substring(2);
            }
            // filter
            else if (s.StartsWith("-f") && 2 < s.Length)
            {
                FileFilter = s.Substring(2);
            }
            // search string
            else if (s.StartsWith("-s") && 2 < s.Length)
            {
                SearchString = s.Substring(2);
            }
            // output file
            else if (s.StartsWith("-o") && 2 < s.Length)
            {
                OutputFile = s.Substring(2);
            }
            else if (s.StartsWith("-?") || s.StartsWith("/?") || s.StartsWith("-h"))
            {
                ArgsHelp();
                return(0);
            }
            else
            {
                Console.WriteLine("Invalid parameter!!");
                ArgsHelp();
            }
        }         // foreach

        return(1);
    }     // public int ProgramArgs(string[] args)