コード例 #1
0
        /// <summary>
        /// 写入AllInOne文件
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="headerMarker"></param>
        /// <param name="spliter"></param>
        /// <param name="encoding"></param>
        public void WriteAsOneFile(Stream stream, string headerMarker = "#", string spliter = "\t", Encoding encoding = null)
        {
            if (encoding == null)
            {
                encoding = Encoding.Default;
            }

            using (StreamWriter writer = new System.IO.StreamWriter(stream, encoding))
            {
                var length = GetMaxTableRowCount();
                for (int i = -1; i < length; i++)
                {
                    foreach (var table in this)
                    {
                        if (table.RowCount == 0)
                        {
                            continue;
                        }

                        if (table.RowCount > i)
                        {
                            if (i == -1)
                            {
                                writer.WriteLine(headerMarker + table.Name + spliter + table.ToSplitedTitleString(spliter));
                                continue;
                            }
                            var row = table.BufferedValues[i];

                            writer.WriteLine(table.Name + spliter + ObjectTableWriter.ToSplitedValueString(row, "", spliter, "G", table.ParamNames));
                        }
                    }
                }
                writer.Flush();
            }
        }