Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

опять проблемка в C#

06.12.17 17:58
Re: опять проблемка в C#
 
Murr патриот
Murr

Ты просишь не отправлять тебя учить С#.

Но без этих знаний ты не можешь написать код.


взял метод "do", что бы крутилось пока не выполниться

-----

Не взял метод, а использовал оператор. Как выглядит оператор и как он работает вполне нужно/можно смотреть в доках.


проверял методом "while", если команда выполнена, поставить галку в чеклистбоксе,

-----

Вхиле - тоже не метод, тоже оператор.

Если его рассматривать так как описно у тебя, то

while (resultat != param.ToString()) /* именно эта часть - до точки с запятой - должна выполнятся.*/ ;

Но твоя проблема в том, что данный вхиле - не тот вхиле который ты ожидаешь/описываешь. Это часть ДО - смотри в доках детали.

В программировании на языках типа Шарпа конструкция означает не то что ты для нее задумал, а то что определено синтаксисом языка... даже если вроде как должно быть по-другому - будет так как написано. По-другому - не будет.


но он почему то вначале выполняет команды, а потом уже пишет разом весь текст в чеклистбокс и ставит галки.

-----

Прими на веру - там делается именно то, что написано в программе.

Раздели на три части:

- Менеджер - читает фаил, отдает строки Парсеру, отдает блоки Команд Исполнителю и помещает нужное в ЧекедЛистБох.

- Парсер - каким угодно методом нарезает полученную строку на блок Команд.

- Исполнитель - выполняет Команды и сообщает результат.

Ну и, разумеется, Команды оформи как Команды.

Чем меньше кода тебе надо будет рассматривать за раз - тем быстрее ты поймешь где у тебя проблема.



1. Вписать в чеклистпокс текст

-----

Ну тут самая первая проблема в том, что непонятно какой текст вписывать в чеклистбох. Откуда его брать - не написано...


Честно говоря, Я до сих пор не до конца понимаю, что именно ты называешь командой.

Сначала это

было - < Текст >< Запятая >< Цифра >

потом < Текст >< Запятая >< Число >

потом < Текст >< Запятая >< Текст >< Запятая >< Цифра >

потом < Текст >< Запятая >< Текст >< Запятая >< Цифра >< Запятая >< Текст >< Запятая >< Цифра >...

[/пре]


Насколько Я могу судить - у тебя есть нечто, что базируется на строке текста имеет:

- текст который нужно поместить в ЧекедЛистБох,

- должно содержать одну и более Комманд,

- возможность выполнить команды

- сообщить результат...

Это может быть таким:

[pre]
class TCommandBlock

{

public TCommandBlock(string text)

{

if (TParser.Validate(text))

throw Exception("Wrong command text");

Text4ListBox = TParser.GetListBoxText(text);

Commands = TParser.GetCommands(text);

Status = TStatus.Unknown;

}

public string Text4ListBox { get; internal set; }

public List<TCommand> Command { get; internal set; }

public TStatus Status { get; internal set; }

public bool Execute()

{

bool result = true;

// here should be a code to execute block of the command

// it should change result to false if fail

if(result == true)

{

Status = TStatus.Ok;

}

else

{

Status = TStatus.Fail;

}

return result;

}

}




Разумеется, что это мало похоже на то что ты ожидаешь и тебе непонятно куда его пристраивать... но чтобы понять - надо учится.

Пока скажу что Менеджер должен получить строку из файла и создать ТКомманБлоцк на базе этой строки. Потом - управлять заполнением чецклистбоха, выполнением блока Комманд и проверкой статуса после выполнения.

 

Перейти на