Peg.Base.FileLoader.LoadFile C# (CSharp) Method

LoadFile() public method

public LoadFile ( string &src ) : bool
src string
return bool
        public bool LoadFile(out string src)
        {
            src = null;
            Encoding textEncoding = FileEncodingToTextEncoding();
            if (textEncoding == null)
            {
                if (encoding_ == FileEncoding.binary) return false;
                using (StreamReader rd = new StreamReader(path_, true))
                {
                    src = rd.ReadToEnd();
                    return true;
                }
            }
            else
            {
                if (encoding_ == FileEncoding.utf16be)//UTF16BE
                {
                    using (BinaryReader brdr = new BinaryReader(File.Open(path_, FileMode.Open, FileAccess.Read)))
                    {
                        byte[] bytes = brdr.ReadBytes((int)brdr.BaseStream.Length);
                        StringBuilder s = new StringBuilder();
                        for (int i = 0; i < bytes.Length; i += 2)
                        {
                            char c = (char)(bytes[i] << 8 | bytes[i + 1]);
                            s.Append(c);
                        }
                        src = s.ToString();
                        return true;
                    }
                }
                else
                {
                    using (StreamReader rd = new StreamReader(path_, textEncoding))
                    {
                        src = rd.ReadToEnd();
                        return true;
                    }
                }
            }

        }
        Encoding FileEncodingToTextEncoding()

Same methods

FileLoader::LoadFile ( byte &src ) : bool

Usage Example

        static int Main(string[] args)
        {
            if (args.Length < 1 || !File.Exists(args[0]))
            {
                Console.WriteLine("FATAL: First command line parameter must be an existing file");
                return -1;
            }
            try
            {
                FileLoader loader = new FileLoader(json_tree.json_tree.encodingClass,json_tree.json_tree.unicodeDetection, args[0]);
                Debug.Assert(!loader.IsBinaryFile());
                string src;
                if (loader.LoadFile(out src))
                {
                    json_tree.json_tree jsonParser = new json_tree.json_tree(src, Console.Out);
                    bool bMatches = jsonParser.json_text();
                    if (bMatches)
                    {
                        Console.WriteLine("SUCCESS: Json Parser matched input file '{0}'", args[0]);
                        TreePrint tprint = new TreePrint(Console.Out, src, 60, new NodePrinter(jsonParser).GetNodeName, false);
                        tprint.PrintTree(jsonParser.GetRoot(), 0, 0);
                    }
                    else
                    {
                        Console.WriteLine("FAILURE: Json Parser did not match input file '{0]'", args[0]);
                    }
                    return 0;
                }
                else
                {
                    Console.WriteLine("FATAL: File '{0}' could not be loaded", args[0]);
                    return -1;
                }

            }
            catch (Exception e)
            {
                Console.WriteLine("FATAL: Program terminated by exception '{0}'",e.Message);
                return -1;
            }
        }
All Usage Examples Of Peg.Base.FileLoader::LoadFile