ура у меня приняли ╰(*°▽°*)╯
This commit is contained in:
parent
016779550c
commit
77764ab6fa
@ -49,6 +49,7 @@ namespace Components
|
|||||||
|
|
||||||
public T GetObjectFromStr<T>() where T : class, new()
|
public T GetObjectFromStr<T>() where T : class, new()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (listBox.SelectedIndex < 0)
|
if (listBox.SelectedIndex < 0)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
@ -57,101 +58,40 @@ namespace Components
|
|||||||
T curObject = new T();
|
T curObject = new T();
|
||||||
StringBuilder sb = new StringBuilder(row);
|
StringBuilder sb = new StringBuilder(row);
|
||||||
|
|
||||||
MessageBox.Show(sb.ToString());
|
//MessageBox.Show(sb.ToString());
|
||||||
|
|
||||||
//("Дорогой дневник, мне не подобрать слов чтобы описать всю {Mood}, что я испытал сегодня; {Date}", "{", "}");
|
string[] words = template.Split(new[] { char.Parse(start), char.Parse(end) });
|
||||||
// "Дорогой дневник, мне не подобрать слов чтобы описать всю радость пенис, что я испытал сегодня; блаблабла"
|
|
||||||
StringBuilder tp = new StringBuilder(template);
|
|
||||||
|
|
||||||
string cleanTemplate = Regex.Replace(template, @"\{.*?\}", "");
|
// Дорогой дневник, мне не подобрать слов чтобы описать всю {Mood}, что я испытал сегодня; {Date}
|
||||||
List<char> symbolsTemplate = cleanTemplate.ToCharArray().ToList();
|
// Дорогой дневник, мне не подобрать слов чтобы описать всю радость, что я испытал сегодня; 01.01.01
|
||||||
List<char> symbols = row.ToCharArray().ToList();
|
|
||||||
|
|
||||||
int iTemp = 0;
|
StringBuilder myrow = new StringBuilder(row);
|
||||||
bool isTemplate = true;
|
List<string> flexPartsTemplate = new();
|
||||||
bool islastWasSpace = true;
|
foreach (string word in words)
|
||||||
List<char> final = new List<char>();
|
|
||||||
List<int> spaces = new List<int>();
|
|
||||||
for (int i = 0; i < symbols.Count(); i++)
|
|
||||||
{
|
{
|
||||||
if (symbols[i] == symbolsTemplate[iTemp])
|
if (row.Contains(word) && !string.IsNullOrEmpty(word))
|
||||||
{
|
{
|
||||||
isTemplate = true;
|
myrow.Replace(word, end);
|
||||||
iTemp++;
|
|
||||||
if (iTemp >= symbolsTemplate.Count)
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
while (i < symbols.Count())
|
|
||||||
{
|
|
||||||
final.Add(symbols[i]);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
isTemplate = false;
|
flexPartsTemplate.Add(word);
|
||||||
}
|
|
||||||
if (!isTemplate)
|
|
||||||
{
|
|
||||||
final.Add(symbols[i]);
|
|
||||||
islastWasSpace = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!islastWasSpace)
|
|
||||||
{
|
|
||||||
final.Add(' ');
|
|
||||||
spaces.Add(final.Count - 1);
|
|
||||||
islastWasSpace = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
string[] flexParts = myrow.ToString().Split(end);
|
||||||
final.Add(' ');
|
int i = 1;
|
||||||
spaces.Add(final.Count - 1);
|
StringBuilder result = new StringBuilder(template);
|
||||||
|
foreach (string word in flexPartsTemplate)
|
||||||
List<string> words = new List<string>();
|
|
||||||
StringBuilder w = new StringBuilder();
|
|
||||||
for (int i = 0; i < final.Count; i++)
|
|
||||||
{
|
{
|
||||||
bool space = false;
|
if (!string.IsNullOrEmpty(word))
|
||||||
for (int j = 0; j < spaces.Count; j++)
|
|
||||||
{
|
{
|
||||||
if (i == spaces[j])
|
result.Replace(word, flexParts[i]);
|
||||||
{
|
|
||||||
space = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (space)
|
|
||||||
{
|
|
||||||
words.Add(w.ToString());
|
|
||||||
w.Remove(0, w.Length);
|
|
||||||
i++;
|
i++;
|
||||||
if ( i == final.Count)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
w.Append(final[i]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder t = new StringBuilder(template);
|
|
||||||
int wordind = 0;
|
|
||||||
for (int i = 0; i < t.Length; i++)
|
|
||||||
{
|
|
||||||
if (t[i] == '{')
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
while (t[i] != '}')
|
|
||||||
{
|
|
||||||
t.Remove(i, 1);
|
|
||||||
}
|
}
|
||||||
t.Insert(i, words[wordind], 1);
|
|
||||||
wordind++;
|
sb = result;
|
||||||
}
|
|
||||||
}
|
|
||||||
sb = t;
|
|
||||||
|
|
||||||
foreach (var property in typeof(T).GetProperties())
|
foreach (var property in typeof(T).GetProperties())
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user