You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.7 KiB
87 lines
2.7 KiB
using System; |
|
using System.Collections.Generic; |
|
|
|
namespace UTIL |
|
{ |
|
public class ParParse |
|
{ |
|
private List<(bool, string, string, bool, string, string)> Pars = new List<(bool, string, string, bool, string, string)>(); |
|
private int _num = 0; |
|
private (bool, string, string, bool, string, string) nullitem = (false, null, null, false, null,null); |
|
public int NumofPar { get; } |
|
|
|
public ParParse() |
|
{ |
|
AddPar("-h","--help",false, "Использование"); |
|
} |
|
public (bool, string, string, bool, string, string) GetPar(UInt16 num) |
|
{ |
|
if (Pars[num].Item1) |
|
return Pars[num]; |
|
else |
|
return nullitem; |
|
} |
|
public (bool, string, string, bool, string, string) GetPar(string par) |
|
{ |
|
for (int j = 0; j < _num; j++) |
|
{ |
|
if ((par == Pars[j].Item2 || par == Pars[j].Item3) && Pars[j].Item1) |
|
return Pars[j]; |
|
} |
|
return nullitem; |
|
} |
|
public void AddPar(string shrt, string lng, Boolean key, string info) |
|
{ |
|
Pars.Add((false, shrt, lng, key, "", info)); |
|
_num = Pars.Count; |
|
} |
|
public int Parse(String[] arg) |
|
{ |
|
int rez = 0; |
|
if (_num == 0) |
|
return -1; |
|
|
|
if (arg.Length == 0) |
|
return -1; |
|
|
|
for (int i = 0; i < arg.Length; i++) |
|
{ |
|
for (int j = 0; j < _num; j++) |
|
{ |
|
if (arg[i] == Pars[j].Item2 || arg[i] == Pars[j].Item3) |
|
{ |
|
(bool, string, string, bool, string, string) tmp = Pars[j]; |
|
if (Pars[j].Item4) |
|
{ |
|
tmp.Item5 = arg[i + 1]; |
|
} |
|
tmp.Item1 = true; |
|
Pars[j] = tmp; |
|
rez++; |
|
} |
|
} |
|
} |
|
return rez; |
|
} |
|
public void help() |
|
{ |
|
string s = ""; |
|
for (int i = 0; i < _num; i++) |
|
{ |
|
if (Pars[i].Item3 != "") |
|
s += $" {Pars[i].Item2}|{Pars[i].Item3}"; |
|
else |
|
s += $" {Pars[i].Item2}"; |
|
} |
|
Console.WriteLine($"Использование:\r\nGetVer3.exe{s}"); |
|
for (int i = 0; i < _num; i++) |
|
{ |
|
if (Pars[i].Item3 != "") |
|
Console.WriteLine($"{Pars[i].Item2} {Pars[i].Item3}\t{Pars[i].Item6}"); |
|
else |
|
Console.WriteLine($"{Pars[i].Item2}\t{Pars[i].Item6}"); |
|
} |
|
} |
|
} |
|
|
|
}
|
|
|