DemoCommon.BinaryTable.Save C# (CSharp) Method

Save() public method

public Save ( string file ) : void
file string
return void
        public void Save(string file)
        {
            try {
                if (m_Records.Count > 0) {
                    int recordSize = m_Records[0].Length;
                    int recordNum = m_Records.Count;
                    for (int i = 1; i < recordNum; ++i) {
                        if (m_Records[i].Length != recordSize) {
                            LogSystem.Error("Record Size not equal, {0}!={1}({2})", recordSize, m_Records[i].Length, i);
                            return;
                        }
                    }
                    using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.None)) {
                        FileHeader header = new FileHeader(recordNum, recordSize);
                        WriteFileHeader(fs, header);

                        for (int i = 0; i < recordNum; ++i) {
                            fs.Write(m_Records[i], 0, recordSize);
                        }

                        header.m_StringOffset = (int)fs.Position;
                        WriteStrArray(fs, m_StringList.ToArray());

                        header.m_IntListOffset = (int)fs.Position;
                        WriteIntArray(fs, m_IntLists.ToArray());

                        header.m_FloatListOffset = (int)fs.Position;
                        WriteFloatArray(fs, m_FloatLists.ToArray());

                        header.m_StrListOffset = (int)fs.Position;
                        WriteIntArray(fs, m_StrLists.ToArray());

                        //重写文件头
                        fs.Position = 0;
                        WriteFileHeader(fs, header);

                        fs.Close();
                    }
                }
            } catch (Exception ex) {
                LogSystem.Error("Exception:{0}\n{1}", ex.Message, ex.StackTrace);
            }
        }

Usage Example

Ejemplo n.º 1
0
        public void SaveToBinary(string file)
        {
            BinaryTable table = new BinaryTable();

            foreach (TData data in m_DataContainer)
            {
                data.WriteToBinary(table);
            }
            table.Save(file);
        }
All Usage Examples Of DemoCommon.BinaryTable::Save