{"id":612,"date":"2013-10-25T23:52:46","date_gmt":"2013-10-25T23:52:46","guid":{"rendered":"http:\/\/piatkosia.k4be.pl\/wordpress\/?p=612"},"modified":"2013-10-26T00:02:37","modified_gmt":"2013-10-26T00:02:37","slug":"ladny-listing-w-c","status":"publish","type":"post","link":"https:\/\/piatkosia.k4be.pl\/wordpress\/2013\/10\/25\/ladny-listing-w-c\/","title":{"rendered":"\u0141adny listing w c#"},"content":{"rendered":"<p>Oczywi\u015bcie, wiem, \u017ce idzie to zrobi\u0107 jedn\u0105 linijk\u0105 w bashu czy innych zabawkach:) Ale pisa\u0142am 4fun, \u017ceby sobie przypomnie\u0107 j\u0119zyk;)<\/p>\n<p>Inspiracj\u0105 by\u0142 pewien listing z ksi\u0105\u017cki. Zosta\u0142 on ponumerowany w pewien spos\u00f3b. Pomy\u015bla\u0142am sobie &#8211; te\u017c chc\u0119 mie\u0107 co\u015b takiego. No i siad\u0142am i klepn\u0119\u0142am w kilka minut taki oto kawa\u0142ek kodziszcza.<\/p>\n<p><!--more--><\/p>\n<pre class=\"brush: csharp; collapse: true\">using System;\r\nusing System.IO;\r\nusing toolsy;\r\nnamespace sourcenumerator\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            FileStream zrodlo = null;\r\n            FileStream cel = null;\r\n            var argumenty = System.Environment.GetCommandLineArgs();\r\n            if (args.Length &gt; 2 || args.Length &lt; 1) {\r\n                string[] opcje = {\"\u017ar\u00f3d\u0142o\", \"[cel]\"};\r\n                toolsy.toolsy.uzycie(opcje);\r\n                System.Environment.Exit(1);\r\n            }\r\n            if (args.Length == 2 || args.Length == 1)\r\n            {\r\n                zrodlo = new FileStream(args[0], FileMode.Open, FileAccess.Read);\r\n                if (args.Length == 2)\r\n                {\r\n                    cel = new FileStream(args[1], FileMode.CreateNew, FileAccess.Write);\r\n                    piszDoPliku(zrodlo, cel);\r\n                }\r\n                if (args.Length == 1) piszNaKonsole(zrodlo);\r\n            }    \r\n        }\r\n\r\n        private static void piszNaKonsole(FileStream zrodlo)\r\n        {\r\n            string tmp = odczytaj(zrodlo);\r\n            Console.Write(tmp);\r\n\r\n        }\r\n\r\n        private static string odczytaj(FileStream zrodlo)\r\n        {\r\n            StreamReader odczyt;\r\n            odczyt = new StreamReader(zrodlo);\r\n            string zmienna = \"\";\r\n            string bufor = \"\";\r\n            int iterator = 0;\r\n            try\r\n            {\r\n                do\r\n                {\r\n\r\n                    zmienna = odczyt.ReadLine();\r\n                    if (zmienna != null)\r\n                    {\r\n                        bufor += iterator + \": \" + zmienna + System.Environment.NewLine;\r\n                        iterator++;\r\n                    }\r\n\r\n                } while (zmienna != null);\r\n            }\r\n            catch (IOException e)\r\n            {\r\n                return e.Message.ToString();\r\n            }\r\n            odczyt.Close();\r\n            return bufor;\r\n        }\r\n\r\n        private static void piszDoPliku(FileStream zrodlo, FileStream cel)\r\n        {\r\n            string tmp = odczytaj(zrodlo);\r\n            StreamWriter zapis = new StreamWriter(cel);\r\n            zapis.Write(tmp);\r\n            zapis.Close();\r\n        }\r\n\r\n    }\r\n}<\/pre>\n<p>To nie robi nic szczeg\u00f3lnego, tylko zale\u017cnie od ilo\u015bci podanych parametr\u00f3w wypisuje do pliku lub na konsol\u0119 zawarto\u015b\u0107 innego pliku tak, aby ka\u017cd\u0105 lini\u0119 poprzedzi\u0107 numerem linii oraz dwukropkiem. Nie, nie jest to rozwi\u0105zanie optymalne, na refactoring przyjdzie jeszcze czas. A zamieszczam go tak o, bo mi si\u0119 nudzi. Przy okazji, przetestowa\u0142am sobie libek, kt\u00f3ry zaczynam tworzy\u0107. Na razie wrzuci\u0142am we\u0144 jedn\u0105 funkcyjk\u0119 (kurka, mam pe\u0142no takich mikrolibk\u00f3w gdzie\u015b po dysku, musz\u0119 je chyba zebra\u0107).<br \/>\nAaaa tam, wklej\u0119 wam i jego, bo kto\u015b zaraz powie, \u017ce ten kod si\u0119 nie odpala.<\/p>\n<pre class=\"brush: csharp; collapse: true\">using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\n\r\nnamespace toolsy\r\n{\r\n    public class toolsy\r\n    {\r\n        public static string hlp = null;\r\n        static void wypelniacz(string[] opcje){\r\n            var argumenty = System.Environment.GetCommandLineArgs();\r\n            hlp = \"U\u017cycie: \";\r\n            hlp += argumenty[0];\r\n            hlp += \" \";\r\n            foreach (string a in opcje) {\r\n                hlp += a;\r\n                hlp += \" \";\r\n            }\r\n        }\r\n\r\n        public static string helpstring(string[] opcje) {\r\n            hlp = \"\";\r\n            wypelniacz(opcje);\r\n            return hlp;\r\n        }\r\n        public static void uzycie(string[] opcje) {\r\n            Console.WriteLine(\"Nieprawid\u0142owa ilo\u015b\u0107 parametr\u00f3w\");\r\n            Console.WriteLine(helpstring(opcje));\r\n        }\r\n    };\r\n}<\/pre>\n<p>No i mam &#8211; wygl\u0105da jak w tej ksi\u0105\u017cce;) Mo\u017cna wkleja\u0107 do arta nie maj\u0105c wtyczki, kt\u00f3ra \u0142adnie zrobi z kodem takie cuda, jak ta co u\u017cy\u0142am powy\u017cej do sourcecodu.<\/p>\n<p>Tak z mojego \u017cycia to jeszcze:<\/p>\n<p>1) <a title=\"Security Bsides\" href=\"https:\/\/securitybsides.pl\/\">Security BSides <\/a>\u00a0(<a title=\"strona og\u00f3lno\u015bwiatowa\" href=\"http:\/\/www.securitybsides.com\/w\/page\/64994676\/Security%20Bsides%20Warsaw%202013\">strona og\u00f3lno\u015bwiatowa<\/a>)\u00a0wypad\u0142 zajebiaszczo. No mo\u017ce nie by\u0142o tylu gwiazd co rok temu, ale ogranizacyjnie posz\u0142o lepiej. Pozdrawiam ch\u0142opak\u00f3w z KOTIK z polibudy w Wawie &#8211; zrobili\u015bcie kawa\u0142 dobrej roboty i jestem wam dozgonnie wdzi\u0119czna. Mam nadziej\u0119, \u017ce za rok te\u017c si\u0119 uda powsp\u00f3\u0142pracowa\u0107, bo czemu by nie.<\/p>\n<p>2) Wrzuci\u0142am ju\u017c jaki\u015b czas temu sw\u00f3j pierwszy open source&#8217;owy projekt. Jest on dost\u0119pny <a href=\"https:\/\/randomsearcher.codeplex.com\">tutaj<\/a>\u00a0. Dodam, \u017ce pisa\u0142am go 4fun, a jak pisz\u0119 kod 4fun, to raczej on si\u0119 za bardzo do niczego nie nadaje, ale jakby kto\u015b chcia\u0142 u\u017cy\u0107 do czego\u015b kawa\u0142k\u00f3w kodu stamt\u0105d, to zapraszam. Generalnie toolsy do tworzenia listy losowych plik\u00f3w. Czasami okazuje si\u0119 to przydatne.<\/p>\n<p>3) Szykuje si\u0119 <a href=\"https:\/\/www.facebook.com\/events\/446101285501249\/\">marsz miliona masek<\/a> i w Zielonej G\u00f3rze mam by\u0107 g\u0142\u00f3wnym orgiem tego. Nie, nie jestem anonkiem, ale anonkom w ZG si\u0119 nie chcia\u0142o uda\u0107 gdzie trza, wi\u0119c wzi\u0119\u0142am na klat\u0119. Jak co, zapraszam:) Poka\u017cmy si\u0142\u0119;). Jak mnie znacie &#8211; nie patrz\u0119 dla kogo, jest akcja to si\u0119 dzia\u0142a i to wszystko.<\/p>\n<p>4) Mam szcz\u0119\u015bcie nie mieszka\u0107 ju\u017c w akademiku &#8211; siedz\u0119 na stancji z narzeczonym i dobrze mi z tym:)<\/p>\n<p>5) Dosta\u0142am feedback, \u017ce za du\u017co klepi\u0119 na fejsie i innych spo\u0142eczno\u015bci\u00f3wkach a za ma\u0142o face 2 face, postaram si\u0119 z powrotem odwr\u00f3ci\u0107 t\u0105 zale\u017cno\u015b\u0107 na korzy\u015b\u0107 pisania o konkretach do konkretnych os\u00f3b, zamiast pisa\u0107 pierdo\u0142y globalnie:)<\/p>\n<p>6) Wracam do blogowania:)<\/p>\n<p>7) Klepi\u0119 in\u017cynierk\u0119 (mo\u017ce j\u0105 udost\u0119pni\u0119, mo\u017ce nie, ale je\u015bli ju\u017c, to po obronie).<\/p>\n<p>Dobra, mi\u0142ego dnia dzi\u00f3bki:) Jakby co, kontakt do mnie macie, wiecie gdzie;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oczywi\u015bcie, wiem, \u017ce idzie to zrobi\u0107 jedn\u0105 linijk\u0105 w bashu czy innych zabawkach:) Ale pisa\u0142am 4fun, \u017ceby sobie przypomnie\u0107 j\u0119zyk;) Inspiracj\u0105 by\u0142 pewien listing z<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/piatkosia.k4be.pl\/wordpress\/2013\/10\/25\/ladny-listing-w-c\/\">Lecim dalej<span class=\"screen-reader-text\">\u0141adny listing w c#<\/span> <i class=\"fas fa-angle-right\"><\/i><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[83,103,87,54,49,82,42,143],"tags":[154,38,153,152],"class_list":["post-612","post","type-post","status-publish","format-standard","hentry","category-c_sharp","category-dzialanie","category-eventy","category-ms","category-programowanie","category-silverlight","category-wolny-soft","category-wpf","tag-kod","tag-kodowanie","tag-maski","tag-randomsearcher","entry"],"_links":{"self":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/comments?post=612"}],"version-history":[{"count":4,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/612\/revisions"}],"predecessor-version":[{"id":616,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/612\/revisions\/616"}],"wp:attachment":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/media?parent=612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/categories?post=612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/tags?post=612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}