Beispiel #1
0
        public bool LoadDiskImageFromToken(CDBFileToken ftLoadImage, bool bFixed, bool bPrimary)
        {
            if (bFixed && bPrimary)
            {
                m_yaDiskImageFixed1 = ReadBinaryFromToken(ftLoadImage.FileTokenKey);
                return(m_yaDiskImageFixed1.Length > 0);
            }
            else if (!bFixed && bPrimary)
            {
                m_yaDiskImageRemovable1 = ReadBinaryFromToken(ftLoadImage.FileTokenKey);
                return(m_yaDiskImageRemovable1.Length > 0);
            }
            else if (bFixed && !bPrimary)
            {
                m_yaDiskImageFixed2 = ReadBinaryFromToken(ftLoadImage.FileTokenKey);
                return(m_yaDiskImageFixed2.Length > 0);
            }
            else if (!bFixed && !bPrimary)
            {
                m_yaDiskImageRemovable2 = ReadBinaryFromToken(ftLoadImage.FileTokenKey);
                return(m_yaDiskImageRemovable1.Length > 0);
            }

            return(false);
        }
Beispiel #2
0
        public byte[] ReadBinaryFromToken(string strFileToken)
        {
            List <byte> lyDiskImage = new List <byte> ();

            List <string> lstrDataLines = new List <string> ();

            if (m_strDatabasePath.Length == 0 ||
                !m_sdFileTokens.ContainsKey(strFileToken))
            {
                return(lyDiskImage.ToArray());
            }

            CDBFileToken ft = m_sdFileTokens[strFileToken];

            try
            {
                if (m_odbConnection.ConnectionString.Length == 0)
                {
                    m_odbConnection.ConnectionString = (string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}';", m_strDatabasePath));
                }

                string strSqlCommand = string.Format("SELECT {0}.[DiskSectorPartOne], {0}.[DiskSectorPartTwo], {0}.[DiskSectorPartThree], {0}.[DiskSectorPartFour]" +
                                                     "FROM {0} WHERE DiskImageName = '{1}' ORDER BY DiskRecordSequence", ft.TableName, ft.DataName);

                OleDbDataAdapter ordAdapter = new OleDbDataAdapter(strSqlCommand, m_odbConnection);
                DataSet          ds         = new DataSet("DiskOriginalImagesSet");

                DataTable  dtIPL = ds.Tables.Add("DiskOriginalImagesTable");
                DataColumn dcdiDiskSectorPartOne   = dtIPL.Columns.Add("DiskSectorPartOne", typeof(string));
                DataColumn dcdiDiskSectorPartTwo   = dtIPL.Columns.Add("DiskSectorPartTwo", typeof(string));
                DataColumn dcdiDiskSectorPartThree = dtIPL.Columns.Add("DiskSectorPartThree", typeof(string));
                DataColumn dcdiDiskSectorPartFour  = dtIPL.Columns.Add("DiskSectorPartFour", typeof(string));

                ordAdapter.Fill(dtIPL);
                DataTableReader dtr = dtIPL.CreateDataReader();
                if (dtr.HasRows)
                {
                    while (dtr.Read())
                    {
                        CompressHexToByte(SafeGetString(dtr, 0), ref lyDiskImage);
                        CompressHexToByte(SafeGetString(dtr, 1), ref lyDiskImage);
                        CompressHexToByte(SafeGetString(dtr, 2), ref lyDiskImage);
                        CompressHexToByte(SafeGetString(dtr, 3), ref lyDiskImage);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(lyDiskImage.ToArray());
            }

            return(lyDiskImage.ToArray());
        }
Beispiel #3
0
        public List <string> ReadListFromToken(string strFileToken)
        {
            List <string> lstrDataLines = new List <string> ();

            if (m_strDatabasePath.Length == 0 ||
                !m_sdFileTokens.ContainsKey(strFileToken))
            {
                return(lstrDataLines);
            }

            CDBFileToken ft = m_sdFileTokens[strFileToken];

            string strSelectName  = "";
            string strOrderByName = "";
            string strDataName    = "";

            if (ft.TableName == "CardData")
            {
                strSelectName  = "DataFileName";
                strOrderByName = "CardSequence";
                strDataName    = "CardImage";
            }
            else if (ft.TableName == "CardObjectIPL")
            {
                strSelectName  = "ProgramName";
                strOrderByName = "CardSequence";
                strDataName    = "CardImage";
            }
            else if (ft.TableName == "CardObjectText")
            {
                strSelectName  = "ProgramName";
                strOrderByName = "CardSequence";
                strDataName    = "CardImage";
            }
            else if (ft.TableName == "CardRPGiiSource")
            {
                strSelectName  = "ProgramName";
                strOrderByName = "CardSequence";
                strDataName    = "CardImage";
            }
            else if (ft.TableName == "SavedScripts")
            {
                strSelectName  = "ScriptName";
                strOrderByName = "ScriptLineSequence";
                strDataName    = "ScriptLineText";
            }
            else if (ft.TableName == "ScriptingMacros")
            {
                strSelectName  = "MacroName";
                strOrderByName = "MacroLineSequence";
                strDataName    = "MacroLineText";
            }
            else
            {
                return(lstrDataLines);
            }

            string strSqlCommand = string.Format("SELECT {0}.[{3}] FROM {0} WHERE {1} = '{4}' Order by {2} ASC;",
                                                 ft.TableName, strSelectName, strOrderByName, strDataName, ft.DataName);

            try
            {
                if (m_odbConnection.ConnectionString.Length == 0)
                {
                    m_odbConnection.ConnectionString = (string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}';", m_strDatabasePath));
                }

                OleDbDataAdapter ordAdapter = new OleDbDataAdapter(strSqlCommand, m_odbConnection);
                DataSet          ds         = new DataSet("CardObjectIPLSet");

                DataTable  dtIPL          = ds.Tables.Add("CardObjectIPLTable");
                DataColumn dciplCardImage = dtIPL.Columns.Add(strDataName, typeof(string));

                ordAdapter.Fill(dtIPL);
                DataTableReader dtr = dtIPL.CreateDataReader();
                if (dtr.HasRows)
                {
                    while (dtr.Read())
                    {
                        //lstrDataLines.Add (SqlInsertDecode (SafeGetString (dtr, 0)));
                        string strNewString = SafeGetString(dtr, 0);
                        if (strNewString.Length < 96)
                        {
                            strNewString += new string (' ', 96 - strNewString.Length);
                        }
                        lstrDataLines.Add(SqlInsertDecode(strNewString));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(lstrDataLines);
            }

            return(lstrDataLines);
        }
Beispiel #4
0
        public SortedDictionary <string, CDBFileToken> ReadFileTokens(string strDatabasePath = "")
        {
            SortedDictionary <string, CDBFileToken> sdFileTokens = new SortedDictionary <string, CDBFileToken> ();

            if (strDatabasePath.Length == 0)
            {
                if (m_strDatabasePath.Length == 0)
                {
                    return(sdFileTokens);
                }

                strDatabasePath = m_strDatabasePath;
            }

            try
            {
                System.Data.OleDb.OleDbConnection odbConnection = new System.Data.OleDb.OleDbConnection
                                                                      (string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}';", strDatabasePath));
                System.Data.OleDb.OleDbCommand odbCommand = new System.Data.OleDb.OleDbCommand();

                string           strSqlCommand = "SELECT * FROM FileTokens ORDER BY FileToken";
                OleDbDataAdapter ordAdapter    = new OleDbDataAdapter(strSqlCommand, odbConnection);
                DataSet          dsFT          = new DataSet("FileTokensSet");

                DataTable  dtFT = dsFT.Tables.Add("FileTokensTable");
                DataColumn dcdiDiskSectorPartOne   = dtFT.Columns.Add("FileToken", typeof(string));
                DataColumn dcdiDiskSectorPartTwo   = dtFT.Columns.Add("TableName", typeof(string));
                DataColumn dcdiDiskSectorPartThree = dtFT.Columns.Add("DataName", typeof(string));
                DataColumn dcdiDiskSectorPartFour  = dtFT.Columns.Add("FilePath", typeof(string));

                ordAdapter.Fill(dtFT);
                DataTableReader dtrFT = dtFT.CreateDataReader();
                if (dtrFT.HasRows)
                {
                    while (dtrFT.Read())
                    {
                        //Console.WriteLine ("FileToken: " + SafeGetString (dtrFT, 0));
                        //Console.WriteLine ("TableName: " + SafeGetString (dtrFT, 1));
                        //Console.WriteLine ("DataName:  " + SafeGetString (dtrFT, 2));
                        //Console.WriteLine ("FilePath:  " + SafeGetString (dtrFT, 3));
                        CDBFileToken ft = new CDBFileToken();
                        ft.FileTokenKey = SafeGetString(dtrFT, 0);
                        ft.TableName    = SafeGetString(dtrFT, 1);
                        ft.DataName     = SafeGetString(dtrFT, 2);
                        ft.FilePath     = SafeGetString(dtrFT, 3);
                        sdFileTokens.Add(ft.FileTokenKey, ft);
                        //Console.WriteLine ("Count: " + sdFileTokens.Count.ToString ());
                        //Console.WriteLine ();
                    }
                }

                odbConnection.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(sdFileTokens);
            }

            return(sdFileTokens);
        }