static TGINI ReadFromBytes(byte[] thebytes)
        {
            var ret = new TGINI();

            //ret.init1st()
            ret.ReadFromBytes(thebytes);
            return(ret);
        }
        }     //End Function

        static public TGINI ReadFromLines(string[] lines)
        {
            var ret = new TGINI();

            //ret.init1st()
            ret.ParseLines(lines);
            return(ret);
        }
        /// <summary>
        /// This function can read a GINI file.
        /// Either being a 'text' file or 'compiled' file doesn't matter
        /// this routine can autodetect that.
        /// </summary>
        /// <param name="file"></param>
        /// <param name="AcceptNonExistance"></param>
        /// <returns></returns>
        static public TGINI ReadFromFile(string file, bool AcceptNonExistance = false)
        {
            if (!File.Exists(file))
            {
                if (AcceptNonExistance)
                {
                    return(new TGINI());
                }
                Console.WriteLine($"GINI file {file} doesn't exist");
                return(null);
            }
            var ret = new TGINI();
            var b   = QuickStream.GetFile(file);

            return(ParseBytes(b));
        }