Example #1
0
        private void _b_四种编码生成_Work(object treeToDo)
        {
            Dictionary <string, ArrayList> _treeToDo = (Dictionary <string, ArrayList>)treeToDo;

            fileWorker fW;

            string[] Configs;

            foreach (KeyValuePair <string, ArrayList> obj in _treeToDo)
            {
                fW = new fileWorker(obj.Key.Substring(2));
                foreach (string Config in obj.Value)
                {
                    if (Config[0] != 'C') // 只处理 C 标记
                    {
                        continue;
                    }

                    Configs = Config.Split('|');

                    if (obj.Key[0] == 'P')
                    {
                        if (Configs[3] == "F")
                        {
                            fW.AddJob(Convert.ToInt32(Configs[1]), Convert.ToInt32(Configs[2]),
                                      "'" + Configs[6].Replace("'", "\\'") + "'");
                        }
                        else
                        {
                            // 因为是原样写回文件,所以只将包含的引号还原
                            // 同时在预处理时对引号进行了反转义,写回时重新转义
                            fW.AddJob(Convert.ToInt32(Configs[1]), Convert.ToInt32(Configs[2]),
                                      (Configs[4] == "1" ? Configs[3] : "") +
                                      Configs[6].Replace(Configs[3], "\\" + Configs[3]) +
                                      (Configs[5] == "1" ? Configs[3] : ""));
                        }
                    }
                    else
                    {
                        fW.AddJob(Convert.ToInt32(Configs[1]), Convert.ToInt32(Configs[2]), Configs[6]);
                    }
                }
                fW.Convert();
            }
            Form1.Log("提示: Form1.四种编码生成 正在重新检查文件");
            this.Invoke(new Action(() => { _b_检查文件_Work(new WorkFinishDele(_b_四种编码生成_Finish)); }));
        }