logic/parser/DataTableGenerator/DataTableProcessor.cs

(开头部分) 10KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace tablegen2.logic.parser.DataTableGenerator
{
    public delegate void DataTableCodeGenerator(DataTableProcessor dataTableProcessor, StringBuilder codeContent, object userData);

    public sealed partial class DataTableProcessor
    {
        private const string CommentLineSeparator = "#";
        private static readonly char[] DataSplitSeparators = new char[] { '\t' };
        private static readonly char[] DataTrimSeparators = new char[] { '\"' };

        private readonly string[] m_NameRow;
        private readonly string[] m_TypeRow;
        private readonly string[] m_DefaultValueRow;
        private readonly string[] m_CommentRow;
        private readonly int m_ContentStartRow;
        private readonly int m_IdColumn;

        private readonly DataProcessor[] m_DataProcessor;
        private readonly string[][] m_RawValues;
        private readonly string[] m_Strings;

        private string m_CodeTemplate;
        private DataTableCodeGenerator m_CodeGenerator;



        public DataTableProcessor(string dataTableFileName,Encoding encoding,int nameRow ,int typeRow,int? defaultValueRow, int? commentRow, int contentStartRow,int idColumn )
        {
            if (string.IsNullOrEmpty(dataTableFileName))
            {
                throw new Exception("Data table file name is invalid");
            }
            if (!dataTableFileName.EndsWith(".txt", StringComparison.Ordinal))
            {
                throw new Exception($"Data table file {dataTableFileName} is not a txt.");

            }
            if (!File.Exists(dataTableFileName))
            {
                throw new Exception($"Data table file {dataTableFileName} is not exists.");
            }


            string[] lines = File.ReadAllLines(dataTableFileName,encoding);
            int rawRowCount = lines.Length;
            int rawColumnCount = 0;

            List<string[]> rawValues = new List<string[]>();

            for (int i = 0; i < lines.Length; i++)
            {
                string[] rawValue = lines[i].Split(DataSplitSeparators);

                for (int j = 0; j < rawValue.Length; j++)
后面还有 288 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。