From dc9350fcc56c30e4f87ec177400a9a978f3dfc01 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 19 Mar 2006 21:40:24 +0000 Subject: [PATCH] committed changes for new file format --- plugins/BinLogReader/BinLog.cs | 26 ++++++-- plugins/BinLogReader/BinLogReader.exe | Bin 45056 -> 45056 bytes plugins/BinLogReader/Form1.cs | 26 +------- plugins/BinLogReader/PluginDb.cs | 90 ++++++++------------------ 4 files changed, 51 insertions(+), 91 deletions(-) diff --git a/plugins/BinLogReader/BinLog.cs b/plugins/BinLogReader/BinLog.cs index e97bd83f..cf6cac36 100644 --- a/plugins/BinLogReader/BinLog.cs +++ b/plugins/BinLogReader/BinLog.cs @@ -11,9 +11,10 @@ namespace BinLogReader public class BinLog { private static uint BINLOG_MAGIC = 0x414D424C; - private static short BINLOG_VERSION = 0x0100; + private static short BINLOG_VERSION = 0x0200; private ArrayList oplist; + private PluginDb plugdb; public ArrayList OpList { @@ -28,7 +29,12 @@ namespace BinLogReader oplist = new ArrayList(init_size); } - public static BinLog FromFile(string filename, PluginDb db) + public PluginDb GetPluginDB() + { + return plugdb; + } + + public static BinLog FromFile(string filename) { if (!File.Exists(filename)) return null; @@ -68,6 +74,12 @@ namespace BinLogReader else bl = new BinLog( (int)(fi.Length / 6) ); + bl.plugdb = PluginDb.FromFile(br); + PluginDb db = bl.plugdb; + + if (db == null) + throw new Exception("Plugin database read failure"); + do { opcode = (BinLogOp)br.ReadByte(); @@ -246,14 +258,18 @@ namespace BinLogReader } while (opcode != BinLogOp.BinLog_End); opcode =BinLogOp.BinLog_End; } - catch + catch (Exception e) { - if (bl != null) + if (bl != null && bl.plugdb != null) { BinLogSimple bs = new BinLogSimple(BinLogOp.BinLog_Invalid, gametime, realtime, pl); bl.oplist.Add(bs); + } + else + { + throw new Exception(e.Message); } - } + } finally { br.Close(); diff --git a/plugins/BinLogReader/BinLogReader.exe b/plugins/BinLogReader/BinLogReader.exe index 52a9ce4e30ec44a76d0c4505080a3d9959d00ab6..72069d60bc2d599d1be3a68d5c52b26c664e104e 100644 GIT binary patch delta 10553 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 GzzzV6gyi)A diff --git a/plugins/BinLogReader/Form1.cs b/plugins/BinLogReader/Form1.cs index 91f0dfd3..e4a24e6b 100644 --- a/plugins/BinLogReader/Form1.cs +++ b/plugins/BinLogReader/Form1.cs @@ -5,7 +5,6 @@ using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Text; -using System.Text.RegularExpressions; namespace BinLogReader { @@ -61,7 +60,6 @@ namespace BinLogReader base.Dispose( disposing ); } - private PluginDb plugdb; private BinLog binlog; #region Windows Form Designer generated code @@ -250,7 +248,6 @@ namespace BinLogReader private void Form1_Load(object sender, System.EventArgs e) { - plugdb = null; binlog = null; g_UpdateViews = ViewAreas.Update_All; } @@ -281,8 +278,9 @@ namespace BinLogReader if (v == ViewAreas.Update_All || ((v & ViewAreas.Update_Plugins) == ViewAreas.Update_Plugins) - && (plugdb != null)) + && (binlog.GetPluginDB() != null)) { + PluginDb plugdb = binlog.GetPluginDB(); PluginList.View = View.Details; PluginList.Columns.Add("Number", 60, HorizontalAlignment.Left); PluginList.Columns.Add("File", 100, HorizontalAlignment.Left); @@ -333,25 +331,7 @@ namespace BinLogReader try { - /* try to open the accompanying database file */ - Regex r = new Regex(@"binlog(\d+)\.blg"); - Match m = r.Match(ofd.FileName); - if (!m.Success) - { - throw new Exception("Failed to find binary database, filename unrecognized!"); - } - Group g = m.Groups[1]; - CaptureCollection cc = g.Captures; - Capture c = cc[0]; - string dbfile = r.Replace(ofd.FileName, "bindb" + c.ToString() + ".bdb", 1); - - plugdb = PluginDb.FromFile(dbfile); - if (plugdb == null) - { - throw new Exception("Stream failure in database file"); - } - - binlog = BinLog.FromFile(ofd.FileName, plugdb); + binlog = BinLog.FromFile(ofd.FileName); if (binlog == null) { throw new Exception("Stream failure in log file"); diff --git a/plugins/BinLogReader/PluginDb.cs b/plugins/BinLogReader/PluginDb.cs index 9c464a26..9621b7fc 100644 --- a/plugins/BinLogReader/PluginDb.cs +++ b/plugins/BinLogReader/PluginDb.cs @@ -10,8 +10,6 @@ namespace BinLogReader /// public class PluginDb { - private static uint BINDB_MAGIC = 0x414D4244; - private static short BINDB_VERSION = 0x0100; private ArrayList PluginList; public int Count @@ -40,72 +38,38 @@ namespace BinLogReader return (Plugin)PluginList[id]; } - public static PluginDb FromFile(string filename) + public static PluginDb FromFile(BinaryReader br) { - if (!File.Exists(filename)) - return null; - - System.IO.FileStream stream = File.Open(filename, System.IO.FileMode.Open); - if (stream == null) - return null; - BinaryReader br = new BinaryReader(stream); - if (br == null) - return null; - - PluginDb db; - - try + //read plugins + uint plugins = br.ReadUInt32(); + PluginDb db = new PluginDb(plugins); + for (uint i=0; i BINDB_VERSION) - throw new Exception("Unknown DB version"); - //read plugins - uint plugins = br.ReadUInt32(); - db = new PluginDb(plugins); - for (uint i=0; i