Esempio n. 1
0
        private static void CreateLocalization(string fileName, DataTable dt)
        {
            try
            {
                int rows    = dt.Rows.Count;
                int columns = dt.Columns.Count;

                int newcolumns = columns - 3; //减去前三列 后面表示有多少种语言

                int currKeyColumn   = 2;      //当前的Key列
                int currValueColumn = 3;      //当前的值列

                tableHeadArr = new string[columns, 3];

                while (newcolumns > 0)
                {
                    newcolumns--;

                    #region 写入文件
                    byte[] buffer = null;

                    using (MMO_MemoryStream ms = new MMO_MemoryStream())
                    {
                        ms.WriteInt(rows - 3); //减去表头的三行
                        ms.WriteInt(2);        //多语言表 只有2列 Key Value

                        for (int i = 0; i < rows; i++)
                        {
                            for (int j = 0; j < columns; j++)
                            {
                                if (i < 3)
                                {
                                    tableHeadArr[j, i] = dt.Rows[i][j].ToString().Trim();
                                }
                                else
                                {
                                    if (j == currKeyColumn)
                                    {
                                        //写入key
                                        string value = dt.Rows[i][j].ToString().Trim();
                                        ms.WriteUTF8String(value);
                                    }
                                    else if (j == currValueColumn)
                                    {
                                        //写入value
                                        string value = dt.Rows[i][j].ToString().Trim();
                                        ms.WriteUTF8String(value);
                                    }
                                }
                            }
                        }
                        buffer = ms.ToArray();
                    }

                    //------------------
                    //写入文件
                    //------------------
                    FileStream fs = new FileStream(string.Format("{0}/Localization/{1}", OutBytesFilePath, tableHeadArr[currValueColumn, 0] + ".bytes"), FileMode.Create);
                    fs.Write(buffer, 0, buffer.Length);
                    fs.Close();

                    currValueColumn++;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("表格=>" + fileName + " 处理失败:" + ex.Message);
            }
        }
Esempio n. 2
0
        private static void CreateData(string fileName, DataTable dt)
        {
            try
            {
                //数据格式 行数 列数 二维数组每项的值 这里不做判断 都用string存储
                tableHeadArr = null;

                byte[] buffer = null;

                using (MMO_MemoryStream ms = new MMO_MemoryStream())
                {
                    int rows    = dt.Rows.Count;
                    int columns = dt.Columns.Count;

                    tableHeadArr = new string[columns, 3];

                    ms.WriteInt(rows - 3); //减去表头的三行
                    ms.WriteInt(columns);
                    for (int i = 0; i < rows; i++)
                    {
                        for (int j = 0; j < columns; j++)
                        {
                            if (i < 3)
                            {
                                tableHeadArr[j, i] = dt.Rows[i][j].ToString().Trim();
                            }
                            else
                            {
                                string type  = tableHeadArr[j, 1];
                                string value = dt.Rows[i][j].ToString().Trim();

                                //Console.WriteLine("type=" + type + "||" + "value=" + value);

                                switch (type.ToLower())
                                {
                                case "int":
                                    ms.WriteInt(string.IsNullOrEmpty(value) ? 0 : int.Parse(value));
                                    break;

                                case "long":
                                    ms.WriteLong(string.IsNullOrEmpty(value) ? 0 : long.Parse(value));
                                    break;

                                case "short":
                                    ms.WriteShort(string.IsNullOrEmpty(value) ? (short)0 : short.Parse(value));
                                    break;

                                case "float":
                                    ms.WriteFloat(string.IsNullOrEmpty(value) ? 0 : float.Parse(value));
                                    break;

                                case "byte":
                                    ms.WriteByte(string.IsNullOrEmpty(value) ? (byte)0 : byte.Parse(value));
                                    break;

                                case "bool":
                                    ms.WriteBool(string.IsNullOrEmpty(value) ? false : bool.Parse(value));
                                    break;

                                case "double":
                                    ms.WriteDouble(string.IsNullOrEmpty(value) ? 0 : double.Parse(value));
                                    break;

                                default:
                                    ms.WriteUTF8String(value);
                                    break;
                                }
                            }
                        }
                    }
                    buffer = ms.ToArray();
                }

                //------------------
                //写入文件
                //------------------
                {
                    FileStream fs = new FileStream(string.Format("{0}\\{1}", OutBytesFilePath, fileName + ".bytes"), FileMode.Create);
                    fs.Write(buffer, 0, buffer.Length);
                    fs.Close();

                    Console.WriteLine("客户端表格=>" + fileName + " 生成bytes文件完毕");
                }

                {
                    FileStream fs = new FileStream(string.Format("{0}\\{1}", OutBytesFilePath_Server, fileName + ".bytes"), FileMode.Create);
                    fs.Write(buffer, 0, buffer.Length);
                    fs.Close();

                    Console.WriteLine("服务器端表格=>" + fileName + " 生成bytes文件完毕");
                }

                CreateEntity(fileName, tableHeadArr);
                Console.WriteLine("客户端表格=>" + fileName + " 生成实体脚本完毕");

                CreateServerEntity(fileName, tableHeadArr);
                Console.WriteLine("服务器表格=>" + fileName + " 生成实体脚本完毕");


                CreateDBModel(fileName, tableHeadArr);
                Console.WriteLine("客户端表格=>" + fileName + " 生成数据访问脚本完毕");


                CreateServerDBModel(fileName, tableHeadArr);
                Console.WriteLine("服务器表格=>" + fileName + " 生成数据访问脚本完毕");
            }
            catch (Exception ex)
            {
                Console.WriteLine("表格=>" + fileName + " 处理失败:" + ex.Message);
            }
        }