Beispiel #1
0
        private static IReadOnlyDictionary <string, TableRecordEntry> ReadTableRecords(FontReader reader, OffsetTable offsetTable)
        {
            var entries = new Dictionary <string, TableRecordEntry>(offsetTable.Tables);

            for (var i = 0; i < offsetTable.Tables; i++)
            {
                var entry = TableRecordEntry.FromReader(reader);
                entries.Add(entry.Tag, entry);
            }

            return(entries);
        }
 public static void WriteHashMapToConsole()
 {
     foreach (KeyValuePair <string, TableRecordEntry> pair in _hash)
     {
         Console.WriteLine("-------------------------------------------");
         Console.WriteLine("Table Name: " + pair.Key);
         TableRecordEntry currTblEntry = pair.Value;
         int iCount = 0;
         foreach (string s in currTblEntry.StrItemArray)
         {
             Console.WriteLine(iCount.ToString().PadLeft(3, ' ') + ": " + s);
             iCount++;
         }
     }
 }
        public static void AddTableFromDefintion(string strSqlTableDefEntry)
        {
            string strTableData      = "";
            string strTableName      = "";
            string strTableDefPrefix = "";

            string pattern = @"CREATE TABLE `([a-zA-Z].*)` ";
            Match  match   = Regex.Match(strSqlTableDefEntry, pattern);

            if (match.Success)
            {
                strTableName = match.Groups[1].Value;

                strTableDefPrefix = "\r\nCREATE TABLE `" + strTableName + "` (\r\n  ";
                strTableData      = strSqlTableDefEntry.Replace(strTableDefPrefix, "");

                TableRecordEntry curTblEntry = new TableRecordEntry();
                strTableData             = strTableData.Replace("\n  ", "");
                curTblEntry.StrItemArray = strTableData.Split('\r');
                curTblEntry.CalculateMaxStrLen();

                _hash.Add(strTableName, curTblEntry);
            }
            else
            {
                pattern = @"CREATE TABLE ([a-zA-Z].*)\(";
                match   = Regex.Match(strSqlTableDefEntry, pattern);
                if (match.Success)
                {
                    strTableName = match.Groups[1].Value;

                    strTableDefPrefix = "\r\nCREATE TABLE " + strTableName + "(\r\n   ";
                    strTableData      = strSqlTableDefEntry.Replace(strTableDefPrefix, "");

                    TableRecordEntry curTblEntry = new TableRecordEntry();
                    strTableData             = strTableData.Replace("\n   ", "");
                    curTblEntry.StrItemArray = strTableData.Split('\r');
                    curTblEntry.CalculateMaxStrLen();

                    _hash.Add(strTableName, curTblEntry);
                }
            }
        }