النهاردة كنت فاضى شوية فزى ماوعدتكم اصدار من CLP خاص بال .net مع بعض الإمكانيات الإضافية اللى هيتم إضافتها للPy module فى اقرب وقت ان شاء الله
1-هتحتاج تعمل ال CommandLineParser Object كالتالى
فى كذا Constructor فشوف اللى محتاجه واستخدمه ^_^
2- عندنا string وليكن كالتالى
نباصى ال string دا لل clp بإستخدام ال Feed method كالتالى
3- استخدم AddOption لتحديد الأوبشنز المقبولة + الوصف الخاص بيها..
بعد ماتخلص تحديد الأوبشنز اعمل Populate لل Mapping كالتالى
4- استخدم GetValueOf للحصول على قيمة ال أوبشن
5- استخدم IsPassed للتعامل مع ال Boolean Options ك verbose او
sleeping
6- استخدم GetDescription للحصول على الوصف "ال doc" الخاصة بال Option
7- استخدم GenerateHelp للحصول على ال Help "معتمدة على إضافتك لل Option وال Description الخاص بيه"
الكود بإستخدام BOO
تقدر تستخدمه مع اى لغة اخرى بدون مشاكل
اضغط للتحميل
كود:
using System; using CLP; namespace clpTester { class Program { public static void Main(string[] args) { string s="-name ahmed -age 19 -sex male -sleeping --file tst.cxx"; CommandLineParser clp=new CommandLineParser(); clp.Feed(s); clp.AddOption("-name", "username", OptionType.TakesValue); clp.AddOption("-age", "age", OptionType.TakesValue); clp.AddOption("-sex", "sex", OptionType.TakesValue); clp.AddOption("-sleeping", "sleeping?", OptionType.Bool); clp.AddOption("--file", "filename", OptionType.TakesValue); clp.PopulateMapping(); //Test it.. string name=clp.GetValueOf("-name"); int age =Int32.Parse(clp.GetValueOf("-age")); char sex =clp.GetValueOf("-sex").ToCharArray()[0]; //One Char.. bool sleeping=clp.IsPassed("-sleeping"); string filename=clp.GetValueOf("--file"); Console.WriteLine("Name: "+name); Console.WriteLine("Age: "+age); Console.WriteLine("Sex: "+sex); Console.WriteLine("Sleeping? "+sleeping); Console.WriteLine("File: "+filename); Console.WriteLine("Desc of Name: "+(string)clp.GetDescriptionOf("-name")); Console.WriteLine(clp.GenerateHelp()); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } } } }
كود:
CommandLineParser clp=new CommandLineParser()
2- عندنا string وليكن كالتالى
كود:
string s="-name ahmed -age 19 -sex male -sleeping --file tst.cxx";
كود:
clp.Feed(s);
كود:
clp.AddOption("-name", "username", OptionType.TakesValue); clp.AddOption("-age", "age", OptionType.TakesValue); clp.AddOption("-sex", "sex", OptionType.TakesValue); clp.AddOption("-sleeping", "sleeping?", OptionType.Bool); clp.AddOption("--file", "filename", OptionType.TakesValue);
كود:
clp.PopulateMapping();
5- استخدم IsPassed للتعامل مع ال Boolean Options ك verbose او
sleeping
كود:
string name=clp.GetValueOf("-name"); int age =Int32.Parse(clp.GetValueOf("-age")); char sex =clp.GetValueOf("-sex").ToCharArray()[0]; //One Char.. bool sleeping=clp.IsPassed("-sleeping"); string filename=clp.GetValueOf("--file");
7- استخدم GenerateHelp للحصول على ال Help "معتمدة على إضافتك لل Option وال Description الخاص بيه"
كود:
Console.WriteLine(clp.GenerateHelp());
كود:
namespace clpTester import System import CLP s = '-name ahmed -age 19 -sex male -sleeping --file tst.cxx' clp = CommandLineParser() clp.Feed(s) clp.AddOption('-name', 'username', OptionType.TakesValue) clp.AddOption('-age', 'age', OptionType.TakesValue) clp.AddOption('-sex', 'sex', OptionType.TakesValue) clp.AddOption('-sleeping', 'sleeping?', OptionType.Bool) clp.AddOption('--file', 'filename', OptionType.TakesValue) clp.PopulateMapping() name as string = clp.GetValueOf('-name') age as int = Int32.Parse(clp.GetValueOf('-age')) sex as char = clp.GetValueOf('-sex').ToCharArray()[0] sleeping as bool = clp.IsPassed('-sleeping') filename as string = clp.GetValueOf('--file') Console.WriteLine(('Name: ' + name)) Console.WriteLine(('Age: ' + age)) Console.WriteLine(('Sex: ' + sex)) Console.WriteLine(('Sleeping? ' + sleeping)) Console.WriteLine(('File: ' + filename)) Console.WriteLine(('Desc of Name: ' + cast(string, clp.GetDescriptionOf('-name')))) Console.WriteLine(clp.GenerateHelp())
اضغط للتحميل
تعليق