{"id":2002,"date":"2017-11-02T02:36:40","date_gmt":"2017-11-01T17:36:40","guid":{"rendered":"http:\/\/okamurax.com\/?p=2002"},"modified":"2017-11-02T02:36:40","modified_gmt":"2017-11-01T17:36:40","slug":"c-%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e9%9b%86%e8%a8%88","status":"publish","type":"post","link":"https:\/\/appbay.org\/?p=2002","title":{"rendered":"C# \u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u96c6\u8a08"},"content":{"rendered":"<p>\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u6b63\u898f\u8868\u73fe\u3067\u96c6\u8a08\u3059\u308b\u3002<\/p>\n<pre class=\"lang:c# decode:true \">using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nusing System.IO;\r\nusing System.Text.RegularExpressions;\r\n\r\nnamespace LineRegex\r\n{\r\n    public partial class Form1 : Form\r\n    {\r\n        public Form1()\r\n        {\r\n            InitializeComponent();\r\n            listBox1.AllowDrop = true;\r\n        }\r\n\r\n        private void listBox1_DragDrop(object sender, DragEventArgs e)\r\n        {\r\n            listBox1.Items.AddRange((string[])e.Data.GetData(DataFormats.FileDrop, false));\r\n        }\r\n        private void listBox1_DragEnter(object sender, DragEventArgs e)\r\n        {\r\n            if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;\r\n        }\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            dataGridView1.Rows.Clear();\r\n\r\n            DataTable dt = new DataTable(\"tbl\");\r\n            dt.Columns.Add(\"\u65e5\u4ed8\");\r\n            dt.Columns.Add(\"\u756a\u53f7\");\r\n            dt.Columns.Add(\"\u6570\u91cf\");\r\n            dt.Columns.Add(\"\u91d1\u984d\");\r\n            dt.Columns.Add(\"\u540d\u79f0\");\r\n\r\n            DataSet ds = new DataSet();\r\n            ds.Tables.Add(dt);\r\n\r\n            foreach (string s in listBox1.Items)\r\n            {\r\n                using (StreamReader sr = new StreamReader(s,System.Text.Encoding.GetEncoding(\"shift_jis\")))\r\n                {\r\n                    string r_d = \"\";\r\n                    string r_j = \"\";\r\n                    List&lt;string[]&gt; r_j_list = new List&lt;string[]&gt;();\r\n                    string r_q = \"\";\r\n                    string r_a = \"\";\r\n                    string r_n = \"\";\r\n\r\n                    while (sr.Peek() &gt; -1)\r\n                    {\r\n                        string ln = sr.ReadLine(); \r\n\r\n                        if (new Regex(\"--------------------------------\").IsMatch(ln))\r\n                        {\r\n                            r_d = \"\";\r\n                            r_j = \"\";\r\n                            r_j_list.Clear();\r\n                            r_q = \"\";\r\n                            r_a = \"\";\r\n                            r_n = \"\";\r\n                        }\r\n                        else if (new Regex(@\"^\\d{4}\u5e74\\d{2}\u6708\\d{2}\u65e5\").IsMatch(ln))\r\n                        {\r\n                            Match m = new Regex(@\"^\\d{4}\u5e74\\d{2}\u6708\\d{2}\u65e5\").Match(ln);\r\n                            r_d = m.Groups[0].Value;\r\n                        }\r\n                        else if (new Regex(@\"^\\d+\\s{1}JAN\").IsMatch(ln))\r\n                        {\r\n                            Match m = new Regex(@\"^(\\d+)\\s{1}JAN\").Match(ln);\r\n                            r_j = m.Groups[1].Value;\r\n                        }\r\n                        else if (new Regex(@\"^\\s+[0-9]+\uff7a\").IsMatch(ln))\r\n                        {\r\n                            Match m = new Regex(@\"^\\s+([0-9]+)\uff7a\").Match(ln);\r\n                            r_q = m.Groups[1].Value;\r\n                        }\r\n                        else if (new Regex(@\"^\\s{1}[1-9]+.+\\\\[0-9,]+$\").IsMatch(ln))\r\n                        {\r\n                            Match m = new Regex(@\"^\\s{1}[1-9]+.+\\\\([0-9,]+)$\").Match(ln);\r\n                            r_a = m.Groups[1].Value;\r\n\r\n                            if (r_q == \"\") r_q = \"1\";\r\n\r\n                            if (r_j != \"\")\r\n                            {\r\n                                r_j_list.Add(new string[] { r_j, r_q, r_a });\r\n                                r_j = \"\";\r\n                                r_q = \"\";\r\n                                r_a = \"\";\r\n                            }\r\n                        }\r\n                        else if (new Regex(@\"^\\s+\\S+\\s+\u69d8\").IsMatch(ln))\r\n                        {\r\n                            Match m = new Regex(@\"^\\s+(\\S+)\\s+\u69d8\").Match(ln);\r\n                            r_n = m.Groups[1].Value;\r\n\r\n                            foreach (string[] j in r_j_list)\r\n                            {\r\n                                DataRow dr = ds.Tables[\"tbl\"].NewRow();\r\n                                dr[\"\u65e5\u4ed8\"] = r_d;\r\n                                dr[\"\u756a\u53f7\"] = j[0];\r\n                                dr[\"\u6570\u91cf\"] = j[1];\r\n                                dr[\"\u91d1\u984d\"] = j[2];\r\n                                dr[\"\u540d\u79f0\"] = r_n;\r\n                                ds.Tables[\"tbl\"].Rows.Add(dr);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n                dataGridView1.DataSource = ds.Tables[\"tbl\"];\r\n        }\r\n    }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u6b63\u898f\u8868\u73fe\u3067\u96c6\u8a08\u3059\u308b\u3002 using System; using System.Collections.Generic; using System.ComponentModel; using System. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/appbay.org\/?p=2002\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;C# \u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u96c6\u8a08&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9],"class_list":["post-2002","post","type-post","status-publish","format-standard","hentry","category-1","tag-c-net"],"_links":{"self":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/2002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2002"}],"version-history":[{"count":1,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/2002\/revisions"}],"predecessor-version":[{"id":2003,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/2002\/revisions\/2003"}],"wp:attachment":[{"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}