private void Parse() { Reader rd = null; if (_Path.ToLower().EndsWith(".cps")) { rd = new CPSReader(); } else { rd = new DATReader(); } rd.ReOpen(_Path); bool flag = rd.Reset(); _Result.Clear(); while (!rd.IsEnd(_MaxM) && flag) { if (!_ParseEmptyBlocks && rd.IsEmpty()) { flag = rd.Next(); continue; } _Result.Add(StopsFactory.CreateSeparator(rd.M, rd.P)); rd.GetSW(_Result); rd.GetGT(_Result); rd.GetPD(_Result); rd.GetCP(_Result); flag = rd.Next(); } rd.Close(); }
private static void CheckOneChannelData <T>(DATReader parser, ChannelHeader channel, int startIndex, int length) where T : IConvertible { var values = parser.GetChannelData <T>(channel).ToList(); var partialReadValues = parser.GetChannelData <T>(channel, (uint)startIndex, (uint)length).ToList(); Assert.Equal(values, partialReadValues); Assert.Equal(channel.MaximumValue, values.Max().ToDouble(NumberFormatInfo.InvariantInfo)); Assert.Equal(channel.MinimumValue, values.Min().ToDouble(NumberFormatInfo.InvariantInfo)); Shared.CheckOneChannelDataCommon(channel, values); }
public static void MinimalExample() { using (var parser = new DATReader(Shared.DAT_File_Path)) { // global header including: title, author, etc. GlobalHeader header = parser.GetGlobalHeader() as GlobalHeader; // channel header: channel-name, data-file location, datatype, min, max IEnumerable <ChannelHeader> headers = parser.GetChannelHeaders().Cast <ChannelHeader>(); // parses the actual channel data double[] data = parser.GetChannelData <double>(headers.First()).ToArray(); Assert.NotEmpty(data); } }
public static bool LoadDat(string DatPath, Color Transparency) { DatReaderError status; DAT loadedDat = DATReader.ReadDat(DatPath, out status); if (status.Error != DatError.Success) { Message.Show("Error loading " + DatPath + ": " + Environment.NewLine + status.Message, MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } List <DATFile> files = new List <DATFile>(); foreach (string path in GraphicsPaths) { files.AddRange(loadedDat.GetFilesByPattern(path)); } foreach (DATFile file in files) { string ext = Path.GetExtension(file.FileName).ToLower(); if (!(ext == ".frm" || ext == ".png")) { continue; } if (ext == ".frm") { List <Bitmap> bmaps = FalloutFRM.Load(file.GetData(), Transparency); Graphics[file.Path.ToLower()] = bmaps[0]; } else { System.ComponentModel.TypeConverter tc = System.ComponentModel.TypeDescriptor.GetConverter(typeof(Bitmap)); Bitmap bitmap = (Bitmap)tc.ConvertFrom(file.GetData()); } } loadedDat.Close(); return(true); }
public bool LoadDat(string DatPath, List <string> crFiles, Color Transparency) { DatReaderError status; DAT loadedDat = DATReader.ReadDat(DatPath, out status); if (status.Error != DatError.Success) { MessageBox.Show("Error loading " + DatPath + ": " + Environment.NewLine + status.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } List <DATFile> files = new List <DATFile>(); foreach (string path in this.EditorData.GraphicsPaths) { files.AddRange(loadedDat.GetFilesByPattern(path)); // Critters to load foreach (var crType in critterData.crTypeGraphic.Values) { var file = loadedDat.GetFileByName("art\\critters\\" + crType.ToUpper() + "AA.FRM"); // Idle anim if (file == null) { file = loadedDat.GetFileByName("art\\critters\\" + crType.ToLower() + "aa.frm"); } if (file == null) { continue; } files.Add(file); } } this.BeginInvoke((MethodInvoker) delegate { frmLoading.SetNextFile(Path.GetFileName(DatPath)); frmLoading.SetResourceNum(files.Count); }); foreach (DATFile file in files) { this.BeginInvoke((MethodInvoker) delegate { frmLoading.SetNextResource(file.FileName); }); string ext = Path.GetExtension(file.FileName).ToLower(); if (!(ext == ".frm" || ext == ".png")) { continue; } byte[] data = file.GetData(); if (data == null) { WriteLog("Error opening " + file.FileName + ": " + file.ErrorMsg); continue; } if (ext == ".frm") { var frm = FalloutFRMLoader.LoadFRM(data, Transparency); frm.FileName = file.Path.ToLower(); Frms[frm.FileName] = frm; } else { System.ComponentModel.TypeConverter tc = System.ComponentModel.TypeDescriptor.GetConverter(typeof(Bitmap)); Bitmap bitmap = (Bitmap)tc.ConvertFrom(data); } } loadedDat.Close(); return(true); }