Beispiel #1
0
        private void ProcessByIndividual(WriteFormat method, List <TbTitle> titles, List <TbTitleInfo> titleInfos, string filename)
        {
            var    aaa   = Encoding.Default;
            string nPath = Path.Combine(mOutputPath, filename);

            using (FileStream fs = new FileStream(nPath, FileMode.Create))
                using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))
                {
                    method.WriteHead(sw, filename);

                    var queue = from titleInfo in titleInfos
                                orderby Convert.ToInt32(titleInfo.str[3]), titleInfo.str[2]
                    select titleInfo;

                    foreach (var titleInfo in queue)
                    {
                        method.WriteBegin(sw);

                        var title = titles.Find(o => o.id == titleInfo.str[0]);
                        method.WriteNumber(sw, titleInfo.str[3]);
                        string name = "";
                        if (titleInfo.str[2] != "0")
                        {
                            name = (titleInfo.str[2] == "1") ? "哈露" :
                                   (titleInfo.str[2] == "2") ? "歐文" :
                                   (titleInfo.str[2] == "3") ? "莉莉" :
                                   (titleInfo.str[2] == "4") ? "金" :
                                   (titleInfo.str[2] == "5") ? "史黛菈" :
                                   (titleInfo.str[2] == "6") ? "伊莉絲" : "琪";
                        }
                        method.WriteCharacter(sw, name);

                        method.WriteTitle(sw, title.str[0]);
                        method.WriteDescription(sw, title.str[1]);
                        method.WriteObtain(sw, title.str[2]);

                        if (titleInfo.str[12] == "0" && titleInfo.str[13] == "0" && titleInfo.str[14] == "0" && titleInfo.str[15] == "0" && titleInfo.str[16] == "0")
                        {
                            method.WriteNoEffect(sw);
                        }
                        else
                        {
                            List <string> effects = new List <string>();
                            if (titleInfo.str[12] != "0")
                            {
                                effects.Add($"{GetValue(titleInfo.str[12])}:{titleInfo.str[17]}");
                            }
                            if (titleInfo.str[13] != "0")
                            {
                                effects.Add($"{GetValue(titleInfo.str[13])}:{titleInfo.str[18]}");
                            }
                            if (titleInfo.str[14] != "0")
                            {
                                effects.Add($"{GetValue(titleInfo.str[14])}:{titleInfo.str[19]}");
                            }
                            if (titleInfo.str[15] != "0")
                            {
                                effects.Add($"{GetValue(titleInfo.str[15])}:{titleInfo.str[20]}");
                            }
                            if (titleInfo.str[16] != "0")
                            {
                                effects.Add($"{GetValue(titleInfo.str[16])}:{titleInfo.str[21]}");
                            }
                            method.WriteEffect(sw, effects.ToArray());
                        }

                        method.WriteEnd(sw);
                    }

                    method.WriteTail(sw);
                }
        }