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); }
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); }