Чтение текста в массив, обработчик комманд в текстовом поле - C#
Формулировка задачи:
Всем привет! Хочу написать обработчик команд и команд с параметрами для настроек в текстовом окне. Обработчик я даже написал, и он правильно работает, но всёравно есть проблема. По мере написания логики обработки комманд, вышло так что всё сделал в дурном тоне программиста (всё через if):
Можно ли без этих барикад сделать всё более компактнее с таким же принцепом работы?
P.S. Пытался писать через цикл, но он вызывал завичание программы при обработке комманды.
Взаранее спасибо за помощь!
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OGAAUServer.system { class ConsoleProcessor { private string notfound; public string NotFoudCommand { get; private set; } public string ConCommand { get; private set; } public string SubConCommand { get; private set; } public string paramValue { get; private set; } public string paramValue1 { get; private set; } public string paramValue2 { get; private set; } public string paramValue3 { get; private set; } public string paramValue4 { get; private set; } public string paramValue5 { get; private set; } public string paramValue6 { get; private set; } public string paramValue7 { get; private set; } public string paramValue8 { get; private set; } public string paramValue9 { get; private set; } public string paramValue10 { get; private set; } public int СharactersNumber { get; private set; } public ConsoleProcessor(string str) { str += ":@&%#stop#%&@"; string[] parts = str.Split(':'); notfound = parts[0]; notfound += ".@&%#stop#%&@"; string[] parts1 = notfound.Split('.'); if (parts[1] != "@&%#stop#%&@") { paramValue1 = parts[1]; if (parts[2] != "@&%#stop#%&@") { paramValue2 = ":" + parts[2]; if (parts[3] != "@&%#stop#%&@") { paramValue3 = ":" + parts[3]; if (parts[4] != "@&%#stop#%&@") { paramValue4 = ":" + parts[4]; if (parts[5] != "@&%#stop#%&@") { paramValue5 = ":" + parts[5]; if (parts[6] != "@&%#stop#%&@") { paramValue6 = ":" + parts[6]; if (parts[7] != "@&%#stop#%&@") { paramValue7 = ":" + parts[7]; if (parts[8] != "@&%#stop#%&@") { paramValue8 = ":" + parts[8]; if (parts[9] != "@&%#stop#%&@") { paramValue9 = ":" + parts[9]; if (parts[10] != "@&%#stop#%&@") { paramValue10 = ":" + parts[10]; } } } } } } } } } } if (parts1[0] != "@&%#stop#%&@") { ConCommand = parts1[0]; NotFoudCommand = parts1[0]; if (parts1[1] != "@&%#stop#%&@") { SubConCommand = parts1[1]; NotFoudCommand += "." + parts1[1]; } } paramValue = paramValue1 + paramValue2 + paramValue3 + paramValue4 + paramValue5 + paramValue6 + paramValue7 + paramValue8 + paramValue9 + paramValue10; } } }
private int partsnum = 1; ... partsnum = 1; while (parts[partsnum] != "@&%#stop#%&@") { switch () { case 1: paramValue1 = parts[partsnum]; partsnum += 1; break; case 2: paramValue2 = ":" + parts[partsnum]; partsnum += 1; break; case 3: paramValue3 = ":" + parts[partsnum]; partsnum += 1; break; case 4: paramValue4 = ":" + parts[partsnum]; partsnum += 1; break; case 5: paramValue5 = ":" + parts[partsnum]; partsnum += 1; break; case 6: paramValue6 = ":" + parts[partsnum]; partsnum += 1; break; case 7: paramValue7 = ":" + parts[partsnum]; partsnum += 1; break; case 8: paramValue8 = ":" + parts[partsnum]; partsnum += 1; break; case 9: paramValue9 = ":" + parts[partsnum]; partsnum += 1; break; case 10: paramValue10 = ":" + parts[partsnum]; partsnum += 1; break; } }
Решение задачи: «Чтение текста в массив, обработчик комманд в текстовом поле»
textual
Листинг программы
for (int i = 0; i < parts.Length; i++) { if (parts[i] == "@&%#stop#%&@") //вот здесь тока сомневаюсь, мб должно быть parts[i] != "@&%#stop#%&@" paramValues[i] = ":" + parts[i]; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д