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

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

1140  1 2 3 4 5 6 7 все
Murr патриот24.11.17 11:49
Murr
NEW 24.11.17 11:49 
в ответ maxxxl79 24.11.17 10:58

он не писал

-----

Так он и не должен это писать.

Ему нужно достичь результата.

Проблема в том, что сам результат в виде кода ему, в общем-то, не особо нужен - это понятно из уровня задачи, но в процессе решения задачи он должен кое-чему научится.

Так вот то, чему он должен научится, он должен достичь сам и только сам.

Ну а помощью при этом будет - понять где именно у него не понимание и дать толчок для смотрения в нужную сторону.

Только так он сможет достичь реального результата.


Анализ готового кода, увы, на начальноm этапе не позволяет самообучатся.

#21 
Murr патриот24.11.17 11:56
Murr
NEW 24.11.17 11:56 
в ответ beautiful_man 24.11.17 11:11

сейчас сделал так, что бы в checkedListBox1 вписывал техт и отправлял одну команду

-----

Если обработка одной команды оформлена в отдельную функцию, то все что надо сделать - нарезать строку на команды и скормить их этой функции.


Правильно ли я мыслю?

-----

Правильно. Вопрос в том, как ты будешь делить строку...


Кстати, а почему бы не написать класс Команда(текст, значение), оформить ее отсылку и потом заниматься только формированием Команд?

#22 
beautiful_man посетитель24.11.17 11:57
NEW 24.11.17 11:57 
в ответ maxxxl79 24.11.17 11:28

теперь надо от ar[2] до конца строки определить и считать все команды,

строка выглядит так:

BATTERY ON,sim/cockpit2/electrical/battery_on[0], 1,laminar/B738/button_switch/cover_position[2], 0,sim/operation/failures/rel_batter0, 0

от ar[2] будет так:


sim/cockpit2/electrical/battery_on[0], 1,laminar/B738/button_switch/cover_position[2], 0,sim/operation/failures/rel_batter0, 0

нужно считать это и передать куда то, например в string, что бы потом со string передать в SendXPCommands


#23 
Murr патриот24.11.17 11:59
Murr
NEW 24.11.17 11:59 
в ответ maxxxl79 24.11.17 11:28

Вам надо анализировать длину массива, который получаете в результате сплита:

-----

Можно так.

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


длина массива в этом случае вссегда будет четной

-----

??? - pодумай...

#24 
Murr патриот24.11.17 12:06
Murr
NEW 24.11.17 12:06 
в ответ beautiful_man 24.11.17 11:57

от ar[2] будет так:

-----

Ты уже умеешь обращаться с одной командой. И понимаешь что такое массив.


Сейчас тебе нужно научится разбирать строку на массив одиночных команд. Делай как отдельную задачу.


П.С. Тебя не смущает что приведенная тобою строка не соответствует изначальному описанию Команды? смущ

#25 
beautiful_man посетитель24.11.17 12:16
NEW 24.11.17 12:16 
в ответ Murr 24.11.17 12:06

там добавлен текст:

BATTERY ON

буду учиться разбирать строку на массив одиночных команд.

Наверное идею с отдельным классом, стоит применить!

Спасибо!

#26 
maxxxl79 прохожий24.11.17 12:46
NEW 24.11.17 12:46 
в ответ beautiful_man 24.11.17 12:16

а BATTERY ON - тоже команда?

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


sim/cockpit2/electrical/battery_on[0], 1,laminar/B738/button_switch/cover_position[2], 0,sim/operation/failures/rel_batter0, 0

для такого формата можно ещё воспользоваться регулярными выражениями, например:

var result = Regex.Split(str, @"([\w+\s*\/\[\]]+,\s*\d+)");

результат к данной строке можно глянуть тут:

http://www.rubular.com/r/MtxvLyyTQk


но если в начале может произвольно идти что-то вроде BATTERY ON или ещё что-то в разных количествах, то естественно надо это тоже учесть.

думаю, в целом Вам понятно в какую сторону копать - дальнейший анализ уже зависит от предметных условий - какого формата строка возможна на входе.


#27 
beautiful_man посетитель24.11.17 14:27
NEW 24.11.17 14:27 
в ответ maxxxl79 24.11.17 12:46

BATTERY ON просто текст, он идёт как информация в checkedListBox1,

команда к нему:

sim/cockpit2/electrical/battery_on[0], 1,laminar/B738/button_switch/cover_position[2], 0,sim/operation/failures/rel_batter0,

здесь их три и они должны одновременно отправляться.

бывает и по одной:

ANTI COLLISION LIGHT,switch OFF,sim/cockpit/electrical/beacon_lights_on, 1

Где текст:

ANTI COLLISION LIGHT

команда:

switch OFF,sim/cockpit/electrical/beacon_lights_on, 1

Спасибо за подсказку, буду пробовать.

Хотя пока только не получается логику в языке C# выразить.

Буду учится, всё равно добьюсь, чего хочу. :)))


#28 
Murr патриот24.11.17 15:21
Murr
NEW 24.11.17 15:21 
в ответ beautiful_man 24.11.17 14:27

команда:

switch OFF,sim/cockpit/electrical/beacon_lights_on, 1

У тебя Команда опять не соответствует начальному определению.

Не знаю что именно у тебя там, но советую почитать доки и болеее того - специфические доки для прогеров...

#29 
beautiful_man посетитель24.11.17 15:28
24.11.17 15:28 
в ответ Murr 24.11.17 15:21

сорри, мой косяк:

sim/cockpit/electrical/beacon_lights_on, 1


#30 
  moose старожил24.11.17 20:13
NEW 24.11.17 20:13 
в ответ beautiful_man 23.11.17 23:21

зря вы взъе репенились. я действительно по уровню решил, что за дали где-то. сейчас до читал ветку, так и не по нял, что за за дачу вы ре шаете, и в чем конкретно ваша про блема. за дача с формулирована аб солютно ха отично. рад за вас, что на шлись здесь люди, ко торые по няли : )

#31 
AlexNek патриот24.11.17 23:38
AlexNek
NEW 24.11.17 23:38 
в ответ maxxxl79 24.11.17 10:58
не давайте мне ни в коем случае готового решения

ну вроде это и так понятно. Написать готовое решение гораздо проще, а вот толк какой из этого, если ТС хочет чему то научится.

Вы же не будете каждый раз решать за него задачи.


зависит не от того, нашел ли он готовое решение

если есть решение задачи, то сама суть задачи исчезает.

#32 
AlexNek патриот24.11.17 23:56
AlexNek
NEW 24.11.17 23:56 
в ответ beautiful_man 24.11.17 14:27

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

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

Ну или хотя бы полное описание формата исходных данных.

Приведенный сейчас формат уже не так просто разобрать на части.


Хотя пока только не получается логику в языке C# выразить.

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

- сделать что то

- ветвление / выбор

- цикл


Как только задача опишется в подобной форме, перевести ее на любой язык - дело исключительно "техники" (конкретных знаний языка)

Вот это тут и можно спрашивать и конкретный ответ будет даже очень уместен. Ну типа - как мне открыть текстовый файл?

#33 
maxxxl79 прохожий24.11.17 23:57
NEW 24.11.17 23:57 
в ответ AlexNek 24.11.17 23:38
ну вроде это и так понятно.

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

человек сюда не за курсом программирования/информатики пришел, а с конкретной задачей.

устроили тут какой-то педсовет :) пусть топикстартер будет судить, полезен ли был ему мой ответ, научился ли он чему-то новому из приведенного примера, вам-то что?! )


если есть решение задачи, то сама суть задачи исчезает.

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

получается, что Вы утверждаете, что любые примеры кода - вредны, а msdn, стековерфлоус и иже с ними - совершенно бесполезные ресурсы для получения новых знаний.

#34 
AlexNek патриот25.11.17 00:10
AlexNek
NEW 25.11.17 00:10 
в ответ maxxxl79 24.11.17 23:57
получается, что Вы утверждаете, что любые примеры кода - вредны,

совершенно не так.

Пример кода вреден когда есть "учебная задача" и вместо того чтобы думать как ее решить просто берется готовый код.

#35 
maxxxl79 прохожий25.11.17 00:22
NEW 25.11.17 00:22 
в ответ AlexNek 25.11.17 00:10

Ну, до "готовности" приведенный код очень далек, поэтому разница между "готовый код" и "пример кода" несколько расплывчата в данном контексте.

И я уверен, что данный пример кода был полезен топикстартеру. Мм... по-крайней мере, он так написал :)

Вреден или нет пример, повторюсь, зависит от самого человека - увидит в примере незнакомые ему вещи - пойдет их гуглить, пробовать, экспериментировать, а не будет этого делать - то и не научится ничему в любом случае.


#36 
Murr патриот25.11.17 00:28
Murr
NEW 25.11.17 00:28 
в ответ maxxxl79 24.11.17 23:57

Вы утверждаете, что любые примеры кода - вредны

-----

На начальном этапе обучения - 100% вредны.

Используемые при обучении задачи интереса не предстваляют - интерес представляет цель которой пытаются достичь давая задачу. Задача лишь средство поддержания интереса в процессе.


Когда-то мучал курсантов таких же курсов обычными сортировками.

Даю задание - находят в инете или книгах и притаскивают.

Но поиск не дает понимания процесса - чуть поменяются условия - тупик.

Пока сами не проработают - все бесполезно...

#37 
Murr патриот25.11.17 00:38
Murr
NEW 25.11.17 00:38 
в ответ maxxxl79 25.11.17 00:22

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

-----

Вреден.

Благодаря приведенному коду он не смог самостоятельно проанализировать ошибку допущенную им в цикле.

Не появилось у него навыка поиска таких ошибок.


пойдет их гуглить, пробовать, экспериментировать

-----

Не на этом уровне - у него еще синтаксис плавает и логика на все четыре хромает...

Как написал Алех - можно дать техническую информацию когда уже есть понимание какая информация нужна... ну или в том случае, когда она не связана с учебной целью - т.е. задача не на нахождение этой информации и ее не хватает... тот же Слееп()...

Остальное - сам, сам и еще раз сам...



#38 
maxxxl79 прохожий25.11.17 01:36
NEW 25.11.17 01:36 
в ответ Murr 25.11.17 00:38
На начальном этапе обучения - 100% вредны.

начальный этап, это который? Системы счисления, побитовые операции? Тема называется "опять проблемка в C#", т.е. речь идет о конкретном языке программирования, а раз так, то получается странно - во всех книжках, даже для начинающих изучать C# я встречал... О, боже - большое количество примеров кода :)

Вреден.

конечно, Вам виднее, чем топикстартеру, который написал:


Спасибо, теперь более понятно как такое делать,

Но я Вас понял, Вы имеете в виду, что, несмотря на то, что ему стало понятнее и в последующих постах он стал задавать вопросы и пытаться понять, как и что делать дальше - он не знает, что на самом-то деле нанес себе непоправимый вред, прочитав мой пост :D


Не появилось у него навыка поиска таких ошибок.

А советовать использовать Thread.Sleep в основном потоке гуи приложения - это тогда к чему, к будущим навыкам разработки гуи?

Или утверждать, что мол, у человека синтаксис хромает, при этом кидаеть ему код, который сами не проверяли, чтоб ещё и с этим помучился? Это тоже в целях обучения? Какой Вы тонкий педагог, однако :)


Господа, предлагаю снизить менторский тон ) такое ощущение, что зашел на форум учебного заведения, где тусят студент и два препода, с той лишь разницей, что топикстартер не является вашим студентом, а вы, очевидно, не являетесь педагогами.


#39 
beautiful_man посетитель25.11.17 06:23
NEW 25.11.17 06:23 
в ответ maxxxl79 25.11.17 01:36, Последний раз изменено 25.11.17 06:39 (beautiful_man)

maxxxl79,

твой пример кода помог очень, за что при много благодарен.


Опишу конкретно что за проблема.

Кто нибудь увлекается Flight Simulator X-Plane?

Наверное нет, так бы сразу поняли по датарефам.


Пробую создать дополнение что то типа "Второй пилот".

Обычно приложения для симулятора пишутся в С++, но для меня этот язык тёмный лес,

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

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


Задача:

выполнения функций второго пилота по чек листу + datarefs.

Если бы хоть как то была возможность реализовать такое в С++, может кто то знает его хорошо и готов стать наставником, буду только рад, было бы идеально.(Если кто то согласиться, полную информацию предоставлю)

Чек лист прописан в простом текстовом редакторе имея определённую структуру, чек лист разбит на подразделы, каждый подраздел будет привязан к определённой кнопке.

Подразделы будут отделены друг от друга пробелом, может чем то другим, пока не знаю.

Ну примерно как то так.


Ребят я понимаю что здесь находятся профи своего дела, но большая просьба, давай те без грызни, а то на какой форум не зайдёшь, везде грызутся.

Всё таки программисты более интеллигентные люди, или я ошибаюсь?


По поводу высказываниям типа пускай сам учится, вы не правильно поняли меня, я не учится сюда пришёл, и не уверен, если эту идею осилю, что то ещё когда то буду делать в C#.

Чему то конечно научусь с вашей помощью, но мне очень помогают в "учёбе" конкретные примеры, как сделал maxxxl79.

Как вы видели в первом посту я привёл конкретный пример, если бы мне просто нужна была подсказка, я бы этого не делал.


В роди бы всё объяснил, как мог! :)))


П.С так и не получается разбить строку на массив одиночных команд, информации много, но знаний языка не хватает.

#40 
1 2 3 4 5 6 7 все