OSDN Git Service

7-3-Dの海戦報告書が正しく表示されないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 27 Sep 2020 11:39:40 +0000 (20:39 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 27 Sep 2020 11:39:40 +0000 (20:39 +0900)
KancolleSniffer.Test/LogProcessorTest.cs
KancolleSniffer/Log/BattleLogProcessor.cs

index 8b9769c..7e6de7c 100644 (file)
@@ -72,6 +72,27 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 敵艦隊名がカンマを含む海戦・ドロップ報告書を加工する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleLogWithComma()\r
+        {\r
+            var processor = new LogProcessor();\r
+            var log = new[]\r
+            {\r
+                "2020-09-27 19:49:04,ペナン島沖,4,,S,同航戦,単縦陣,梯形陣,深海5,500t級軽巡洋艦,駆逐艦,神風," +\r
+                "羽黒改二(Lv159),64/64,足柄改二(Lv159),60/63,神風改(Lv99),23/23,島風改(Lv158),41/41,Gotland andra(Lv136),53/53,,," +\r
+                "軽巡ホ級(flagship),0/53,駆逐ロ級後期型,0/37,駆逐ロ級後期型,0/37,,,,,,,9,0,制空権確保,7-3",\r
+            };\r
+            var result = processor.Process(log, "海戦・ドロップ報告書.csv", DateTime.MinValue, DateTime.MaxValue, false);\r
+            PAssert.That(() =>\r
+                result.First() ==\r
+                "[\"2020-09-27 19:49:04\",\"ペナン島沖\",\"4\",\"\",\"S\",\"同航戦\",\"単縦陣\",\"梯形陣\",\"深海5,500t級軽巡洋艦\",\"駆逐艦\",\"神風\"," +\r
+                "\"羽黒改二(Lv159)\",\"64/64\",\"足柄改二(Lv159)\",\"60/63\",\"神風改(Lv99)\",\"23/23\",\"島風改(Lv158)\",\"41/41\",\"Gotland andra(Lv136)\",\"53/53\",\"\",\"\"," +\r
+                "\"軽巡ホ級(flagship)\",\"0/53\",\"駆逐ロ級後期型\",\"0/37\",\"駆逐ロ級後期型\",\"0/37\",\"\",\"\",\"\",\"\",\"\",\"\",\"9\",\"0\",\"確保\",\"\",\"\",\"7-3\"]");\r
+        }\r
+\r
+        /// <summary>\r
         /// 資材ログの最後に現在値を示すレコードを追加する\r
         /// </summary>\r
         [TestMethod]\r
index e374f89..d383894 100644 (file)
@@ -43,7 +43,14 @@ namespace KancolleSniffer.Log
                 case 39:\r
                     map = data[38];\r
                     break;\r
-                case 40: // 七隻分のログが出力されている\r
+                case 40:\r
+                    if (data[8] == "深海5" && data[9] == "500t級軽巡洋艦")\r
+                    {\r
+                        data[8] = "深海5,500t級軽巡洋艦";\r
+                        Array.Copy(data, 10, data, 9, 30);\r
+                        goto case 39;\r
+                    }\r
+                    // 七隻分のログが出力されている\r
                     data[21] = data[21] + "・" + data[23];\r
                     data[22] = data[22] + "・" + data[24];\r
                     Array.Copy(data, 24, data, 23, 15);\r