Пример #1
0
        public static ThingList LoadAll(string FileName, ProgressCallback ProgressCallback, bool FirstMatchOnly)
        {
            ThingList Results = new ThingList();

            if (ProgressCallback != null)
            {
                ProgressCallback(I18N.GetText("FTM:OpeningFile"), 0);
            }
            BinaryReader BR = null;

            try
            {
                BR = new BinaryReader(new FileStream(FileName, FileMode.Open, FileAccess.Read), Encoding.ASCII);
            }
            catch {}
            if (BR == null || BR.BaseStream == null)
            {
                return(Results);
            }
            foreach (FileType FT in FileType.AllTypes)
            {
                ProgressCallback SubCallback = null;
                if (ProgressCallback != null)
                {
                    SubCallback = new ProgressCallback(delegate(string Message, double PercentCompleted)
                    {
                        string SubMessage = null;
                        if (Message != null)
                        {
                            SubMessage = String.Format("[{0}] {1}", FT.Name, Message);
                        }
                        ProgressCallback(SubMessage, PercentCompleted);
                    });
                }
                ThingList SubResults = FT.Load(BR, SubCallback);
                if (SubResults != null)
                {
                    Results.AddRange(SubResults);
                    if (FirstMatchOnly && Results.Count > 0)
                    {
                        break;
                    }
                }
                BR.BaseStream.Seek(0, SeekOrigin.Begin);
            }
            return(Results);
        }
Пример #2
0
        public virtual ThingList Load(string FileName, ProgressCallback ProgressCallback)
        {
            if (ProgressCallback != null)
            {
                ProgressCallback(I18N.GetText("FTM:OpeningFile"), 0);
            }
            BinaryReader BR = null;

            try {
                BR = new BinaryReader(new FileStream(FileName, FileMode.Open, FileAccess.Read), Encoding.ASCII);
            } catch { }
            if (BR == null || BR.BaseStream == null)
            {
                return(null);
            }
            ThingList Results = this.Load(BR, ProgressCallback);

            BR.Close();
            return(Results);
        }