back (доработать то, что шаблонной строке у нас может указываться не только T и P, а и другие возможные значения в {}, для этого надо через регёлярные выражения достать эти значения, опираясь на шаблонную строку и закинуть в массив)

вероятно, вынести все циклы с regex и mutch в отдельную функцию, так как они индентично работают.
This commit is contained in:
revengel66 2024-10-01 14:39:15 +03:00
parent 53a4567a0d
commit 103dc552e0
2 changed files with 5 additions and 4 deletions

View File

@ -80,6 +80,7 @@ namespace ComponentsLibrary
PropertyInfo[] properties = typeof(T).GetProperties(); PropertyInfo[] properties = typeof(T).GetProperties();
string layout = layoutString; string layout = layoutString;
string pattern = @"^(.*?){T}.*?(.*?){P}"; string pattern = @"^(.*?){T}.*?(.*?){P}";
//string input2 = "Температура воздуха ТЕМПЕРАТУРА ВЫСОКАЯ, давление НИЗКОЕ"; //string input2 = "Температура воздуха ТЕМПЕРАТУРА ВЫСОКАЯ, давление НИЗКОЕ";
string? selectedString = item?.ToString(); string? selectedString = item?.ToString();
@ -102,15 +103,15 @@ namespace ComponentsLibrary
staticText[i] = match.Groups[i+1].Value; staticText[i] = match.Groups[i+1].Value;
} }
//string pattern2 = $@"{beforeT}(.*?)\{beforeP}(.*)"; //string pattern2 = $@"{beforeT}(.*?)\{beforeP}(.*)\{beforeEnd}";
//"Температура воздуха (.*?)\\, давление (.*)" //"Температура воздуха (.*?)\\, давление (.*)\\, такие дела"
string patternStatic = $@""; string patternStatic = $@"";
for (int i = 0; i < staticText.Length; i++) for (int i = 0; i < staticText.Length; i++)
{ {
if (i == staticText.Length - 1) if (i == staticText.Length - 1)
{ {
patternStatic += $"{staticText[i]}(.*?)"; patternStatic += $"{staticText[i]}(.*)";
} }
else { else {
patternStatic += $"{staticText[i]}(.*?)\\"; patternStatic += $"{staticText[i]}(.*?)\\";

View File

@ -60,7 +60,7 @@ namespace ComponentsLab
private void listBoxValues_Load(object sender, EventArgs e) private void listBoxValues_Load(object sender, EventArgs e)
{ {
listBoxValues.SetLayout("Ňĺěďĺđŕňóđŕ âîçäóőŕ {prop1}, äŕâëĺíčĺ {prop2}, ňŕęčĺ äĺëŕ", '{', '}'); listBoxValues.SetLayout("Температура воздуха {T}, давление {P}", '{', '}');
var objectList = new List<ObjectClass> var objectList = new List<ObjectClass>
{ {
new ObjectClass { T = "òåìïåðàòóðà âûñîêàÿ", P = "1008" }, new ObjectClass { T = "òåìïåðàòóðà âûñîêàÿ", P = "1008" },