Это копия, сохраненная 31 января 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый >>1072833 (OP)
Не забывайте оформлять свой код https://ideone.com/
https://pastebin.com/
Спрошу уже тут. Как я понял таймер из system.timers выполняется в отдельном потоке от события и поэтому если обработчик timer.elapsed
выполняется дольше интервала таймера, то творится какой-то пиздец. Как сделать, чтобы таймер активировался только если timer.elapsed закончил выполняться?
А, хотя просто написал костыль в виде timer.start и timer.stop в начале и конце обработчика таймера.
Но лучше сам выбери интересную предметную область, и напиши к ней crud.
Ты случайно не тот Антон которому я пилил практически такую же херню?
> неадекватные темы
Почему? Дефолтные жи.
> интересную предметную область
Вот с этим у меня как раз проблемы, поэтому я тут. Можешь пример назвать?
Лол, это какой курс и какой вуз? Это ж не темы, а голые названия, так даже у манагеров не делают.
https://support.microsoft.com/en-us/help/323246/how-to-upload-a-file-to-a-web-server-in-asp-net-by-using-visual-c--net
вот тут код, я просто сделал ASP.NET Web Application -> Empty Project потом добавил WebForm1.aspx
Накопипастил код, поправил код немного т.к он довольно старый насколько я понял. Запускаю с студии, все работает как надо.
Нажимаю publish указываю путь. Все ок.
Добавляю в IIS этот путь где лежит сайт, но когда я захожу на сайт то там ничего не отображается.
Я вобще не шарю в этих IISах и вебах.
Писал бы борду - нет, не хочу, хочу жрать БД. Ок, напиши оптимизацию хвостовой рекурсии в SQL-запросах.
Ебать я в пути явно не указал название .aspx файлика, все ясно, я просто вроде как установил стартовую страницу этот файл думал вот и решил вопрос а тут на тебе!
Самый простой вариант - кинцо, анимцо, сериалы, игры, книги - по принципу кинопоиска (то есть спискота, оценивание, админка, разные статы и т.д.). Все зависимости сходу видно, легко найти тестовые данные для бд, можно обмазаться большим количеством таблиц если препод требует, или оставить только основные сущности шоб кодить поменьше.
Сравнение таймеров
http://www.cyberforum.ru/csharp-beginners/thread1896955.html#post9986939
>>096086
Ладно здесь, но нахрена ты на киберфоруме код скриншотами делаешь? Тебе удобнее пердолить скрины, чем ctrl+c/ctrl+v? Но тогда не удевляйся, что тебе не отвечают.
Спасибо за таймеры, анон.
а что, нет таймера без пересекающихся тиков, который не вин формс и не впф?
Почему?
А что тебе из шапки не понятно?
>элитный язык
Среди макак разве что. Даже не представляю чтоб где-то в академической среде, да даже просто где-то в серьезных проектах эта параша использовалась.
Писал как-то гуи приложение на WPF, потом пиздецки пожалел о полнейшей непереносимости на другие платформы уже лет 5 прошло я до сих пор не могу переделать хотя бы на с++.
Оправдывайся давай еще.
Товарищи, помогите.
Имеется класс
public class EFEntityRepository : IRepository<TwistyPuzzle>
{
EntityContext context;
public EFEntityRepository(string name)
{
context = new EntityContext(name);
}
public Task<Entity> GetAsync(int id)
{
return context.Entities.FindAsync(id);
}
}
Почему тут выдает ошибку DbSet<Entity> doesn't contain a definition for FindAsync and no extension method FindAsync accepting a first argument of type DbSet<Entity> could be found? И вообще, почему тут все асинхронные методы недоступны?
s = {1}
Вот так в питоне обьявляется множество.
Всё.
Без всех этих текстовых изъебств.
Потом мне он сказал что Питон полностью поддерживает ООП, и тут я выпал в осадок.
Какие преимущества у сишарпа как у ебучего текстового монсрта перед лаконичным питоном?
Че за хуйня, помогите разобраться.
>Какие преимущества у сишарпа как у ебучего текстового монсрта перед лаконичным питоном?
1. Нормальная многопоточность вместо потешного GIL-а
2. Статическая типизация
3. в 10 раз быстрее
А так, конечно не самый плохой скриптовый язык для написание небольших програм
Спасибо, полегчало.
Сравнивать скриптоговно для вчерашних бородатых админов с засаленными волосами и компилируемый язык со строгой статической типизацией! Неслыханная дерзость!
О Благородные доны, не могу найти библиотеку для универсального хеширования чисел для .NET или .NET Core, может кто-нибудь знает или видел что-нибудь? Заранее чаю ответевшему.
Высокая скорость работы и статическая типизация.
Это не Core, а я не посмотрел в свойства проекта и не увидел, что там стоит .net framework 4.0 вместо 4.5.
А по подробнее?
WPF + MVVM
В WPF, без сомнения, намного более совершенная программная модель, чем в WinForms. По-моему нет особых причин выбирать WinForms.
Если ты пишешь какую-то хуйню или гуи не самое главное в проекте - то лучше винформс: просто накидал кнопок на форму и готово.
На wpf хотя бы работу можно найти.
Винформс бери. Быстрее сделаешь проект. Впф почти мёртв, формы вечны. Если тебе бы нужно было что то особенное из Впф, то ты бы вопрос не задавал.
Просто накидай кнопочки - боксики и всё.
Долбаебы из мукрасофтэ сделали типо дополненный впф, который называет UWP и типо впф никому теперь "не нужен"
Кстати, тут есть специалисты, которые могли бы
по существу сравнить существующие widget-based UI. может дадите ссылку на какой-нибудь блог с разбором
Смотря для чего, если ты хочешь в Win Store залить то делай в UWP, а так в плане дизайна мне и WPF было бы достаточно, а если уж вообще дизайн не важен то WinForms
Призываю тех, кто имел опыт с Entity Framework (.NET) и базами данных, CodeFirst. Имеется простенькая база. В некоторых таблицах есть поля, значения которых вычисляются на основании других полей этой таблицы или связанной с ней другой таблицы. Стоит ли при первом создании БД эти поля включать в свойства сущностей или как-то потом добавить?
Добавляешь эти поля (если это другие сущности(классы) в основной класс как виртуальные.
Если их много - > virtual ICollection<class>, если один - virtual <classname> Property EF сам все свяжет через ключи. Будет поддержка lazy loading-а к тому же.
И зачем в шарп добавили unsafe указатели?
Или вангую тут сделали отдельным классом?
Но он ведь вроде связан с параллельным погромироаанием. А я именно жду от сервера запрос довольно долго
по моему там нужно использовать ключевые слова async, await
Ясно. Понятно. Но всё-таки документацию почитай.
На винформах тоже можно делать красивый кастомный дизайн. Отключаешь стандартные богомерзкие границы формы через BorderStyle, пилишь с нуля взаимодействие с формой и делаешь все красиво с помощью стандартных контролов. Такое вот окно для примера накидал.
Для области в виде сектора окружности придется проверять
x<=0 && y < =0 && xx+yy <= R*R
Второе
Если (0<= x <= 1/2 × (sqrt(4×R×R+5) -1)) и (x-1)^2 <= y <= R×R - x×x
>(0<= x <= 1/2 × (sqrt(4×R×R+5) -1)) и (x-1)^2 <= y <= R×R - x×x
Ну сейчас попробую, а так все равно спасибо
Бля тебе лень это в гугле посмотреть Value types and reference types c# Это блядь базовые вопросы.
Игра "Выбей ноль". В консоли есть переменная i, которая меняет свое значение(быстро-быстро меняет прибавляя/отнимая ) от -10 до 10. Как только пользователь нажмет букву s, то она остановится на выпавшем значении. В итоге нужно успеть выбить значение как можно ближе к нулю.
Перехожу к сути. Я решил делать через Console.Write(i);, но понял, что это неправильно, ибо тупо выводит все значения. Как сделать так, чтобы переменная меняла значение оставаясь на месте?
Как это просто, оказывается. Спасибо большое.
А зачем, тому кто может это сделать нужен ты? Если готов оплатить работу ищи фрилансера, площадок достаточно.
Ты сейчас MT4/MT5 изобрёл.
Это юмор такой?
>Шарп или java?
Можно сравнивать Kotlin и C#, .NET Core и JVM, но не Java и C#. Джава слишком отстала. Котлин очень похож на Сишарп.
Что значит отстала? Половина ебаного мира кодит на java, тем более, что она более универсальна.
Или я не прав?
>Что значит отстала?
Как язык C# более продвинутый.
>она более универсальна
В чём?
Нужно разделять понятия джавы языка и jvm платформы.
>Кроссплатформенность
Ну .NET Core тоже дает кроссплатформенность.
>Продвинутость в чем?
В языковых фичах.
>Половина ебаного мира кодит на java
Звучит как "половина ебанного мира не моет жопу одумайтесь глупцы."
public partial class Form1 : Form
{
public Form1()
{
string x = "text";
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text =
}
}
Инициализируй переменную в классе, присвой ей значение в инциализации формы, вызови ее в методе.
То есть
public partial class Form1 : Form
{
string x;
public Form1()
{
x = "text";
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = x;
}
}
Спасибо. Просто где-то слышал, что если метод со свойством паблик, то те переменные можно откуда угодно вызывать.
Нет. Переменные со свойством паблик, а не методы, внутри которых переменные. Поправочка: откуда угодно - значит хоть где, а приватные только внутри данного класса
Нужна помощь. Отправляю в mvc контроллер через XmlHTTPRequest JS файл по кускам (несколько кусков в цикле), в контроллере получается белиберда, такое ощущение, что запросы пришли все сразу и он не последовательно выполняет операции, а хаотично. Кто-нибудь сталкивался с подобным?
Всё, не надо, допер сам. Если что у меня был включен асинхронный запрос, а надо было синхронный отправлять. Спасибо за помощь пацаны, если что, обращайтесь.
Winforms, имеется custom control, внутрь которого нужно добавить другой контрол. Добавляю через Controls.Add, в списке он появляется, но на форме - нет. ЧЯДНТ?
Товарищи, имеется прога, работающая с небольшой базой данных на wpf. Короче, в одной таблице некоторые поля вычисляются за счет полей из других таблиц и отображаются в textbock'е. Но когда я меняю какое-нибудь значение в таблице, то значение в textblock'e обновляется только после очередного запуска программы. Как сделать так, чтоб обновлялось сразу? Если что, значения подсчитываются с помощью отдельного класса, параметром конструктора которого является имя строки подключения, может есть способ эти вычисления в сам проект, где типа сущности описаны? Посоветуйте, аноны, пожалуйста. Не оставьте в беде
У меня есть 695 wmr, 2,23 wmz. Отдам тому, кто поможет с этим.
Вінеси код которій отвечает за присвоение даніх к тексбоксам, в отдельную функцию, и візівай ее с таймаутом какми-то дабі бд успела изменится.
Заплачу в смысле деньгами, а не слезами.
Возможно он у тебя добавляется в саму форму и перекрывается контролом, в который ты его хочешь добавить. Попробуй метод controlName.BringToFront(). Должно помочь.
Самым правильным и красивым способом будет поковыряться в твоем классе и вынести логику пересчета одной строки в функцию и вызывать при каждом изменении значения
Самым костыльным способом будет после изменения перегружать всю таблицу после каждого изменения значения
Пиши скайп
Спасибо, товарищ
>Самым костыльным способом будет после изменения перегружать всю таблицу после каждого изменения значения
Вот это и пытаюсь сделать, но вот как-то не идёт.
>Пиши скайп
yauheni_kh, надеюсь ты ещё будешь на связи ближе к вечеру, а то мне сейчас на работу
https://www.youtube.com/watch?v=iOFQ8CyF6wk
Этот чувак. Но я решил не парится и запустить его на мамкином ноуте с разбитым экраном - все равно этим говном никто не будет пользоваться кроме меня и моих друзей
Нет, но брею и протираю влажной бумагой.
Даже и думать противно о том, что большинство просто ходят с кусками говна на потной волосне.
Анон, отпиши, пожалуйста, как появишься, скайп выше указал.
раз уж ты ссылаешься на c++, предположу, что ты его знаешь. содержимое всех референс тайпов (всё, что унаследовано от object) хранится в куче, ссылка на него - в стеке. в C# ссылка - она как указатель в крестах. со структурами сложнее, про это аж отдельные посты пилят типа в стеке или в куче, но вроде всё сводится к тому, что в стеке от структур хранятся value-types и ссылки на ref types, а само содержимое ref types - в куче.
Спасибо. Я правда без сторонних библиотек пилить собрался, но теперь хоть понятнее как с вебхуками работать.
Кстати, может заодно кто-нибудь пояснить, мне надо как в той библиотеке напилить классов сообщений или обойтись dynamic? Что в итоге быстрее окажется?
Была похожая проблема. Попробуй отключить снэплайны, и заново отпозиционировать элементы.
var это просто сокращенная запись для типа переменной.
>>100594
Благодарю за ответы, но проблема была немного в другом. По умолчанию у кастомного контрола высота и ширина равны нулю, так как внутри него ничего нет, только то, что нарисовано в OnPaint.
Но теперь есть другая проблема.
Итак, у меня есть кастомный контрол, внутри которого лежит куча других кастомных контролов (одного типа, но другого, отличного от родительского). Лежать они должны кучей примерно на одном месте на форме. Мне требуется, чтоб для каждого контрола в этой куче работал OnClick со всплывающим сообщением, содержащим информацию о конкретном объекте, по которому кликнули. При добавлении, я навешиваю на каждый контрол в куче соответствующий эвент.
А дальше начинается непонятная хренотень: при одном клике OnClick срабатывает столько раз, сколько контролов лежит на форме в точке клика. Соответственно, и сообщение выдаётся столько же раз. НО! Данные во всех сообщениях остаются одинаковыми и принадлежащими самому верхнему объекту. Не знаю даже, как и отдебажить такое.
>>100649
Отлично!
Все еще актуально
>>100601
>>100412
>>095933 (OP)
Не бейте только сильно, ладно?
Все очень хорошо, но, вот этот парень задеплоил на азур, а там ж ведь платная подписка.
Вопрос:
Как можно задеплоить бесплатно?
Есть альтернативные сервисы? Какие на них подводные?
Можно ли на пеке хостить или это надо чтобы был открытий айпи?
Я просто с такими веб проектами еще не работал, штамповать говноформы уже надоело, а тут такой шин.
Ньюансы вроде понятны, а логику ж ведь написать не сложно.
Бесплатных хостингов под дот.нет я не видал. На пеке можно хостить, только надо чтобы айпи был статическим и пека работала постоянно, ну + надо большая пропускная способность линии.
Нет, не лучше.
Так там бюджетные планы есть. Все равно, все что фри то говно будет.
Именно! За лицензию винды- плати.
То ли дело божественная Джава- написал код в Винде в ИДЕешечке, перекинул на копеечный хостинг на линуксе и хуй пинаешь@капчуешь@лайкаешь котиков.
Uninstall-Package : Object reference not set to an instance of an object.
At line:1 char:18
+ Uninstall-Package <<<< Newtonsoft.Json
+ CategoryInfo : NotSpecified: (:) [Uninstall-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.UninstallPackageCommand
Пока всё это дело обновляется, ещё глянул ошибку в .csproj - там пусто.
Кроме МВП, что ещё есть полезного у ВинФормс, есть ещё какие-то паттерны?
На WPF лучше всего использовать MVVM? Это как бы следующая ступень развития MVP?
MVVM это считай MVP по другому названный. всё одна хуйня. У майков примеров нет, потому что это лишь один из множества способов строить проект. Если у тебя две формы и три запроса к бд на весь проект - не еби себе мозги, не стоит оно того. всё что может и без гуя работать - в отдельные классы, типа сеть да файлы, бд и прочие внутренние шаманства . Остальное в форме. Если не будешь называть методы и переменные как даун, то и через год и через два разберёшься легко в проекте.
Цены одинаковые, что на линукс, что на винду.
WPF такая лютая хуита, шопездец. Да и не нужна она для простых приложений. А для сложных есть более приличные варианты.
Есть код: https://ideone.com/AuPdMY
Выбивает ошибку на 56 строке
An exception of type 'System.InvalidOperationException' occurred in Newtonsoft.Json.dll but was not handled in user code
Additional information: Cannot access child value on Newtonsoft.Json.Linq.JValue.
На пике то, что находится в responseFromServer
Какие?
Ты написал что в контент у тебя лежит каунт а в каунт лежит айтемс. У тебя же в контент лежат каунт и айтемс.
Я даже не ебу, о чём ты. Мой внутренний погромист ещё не знает о таком.
А тут тебе не подскажу, я такую лапшу не пишу. Если по логике то [контент] [и темс]. Почитай про коллекции и массивы.
Где вы вообще каунт взяли? Может это я в глаза долблюсь, но там, по моему, респонс.
Как я понял, мне нужно из респонса получить каунт и айтемс, а я же как делаю: я открываю респонс и спускаюсь до уровня каунт и пытаюсь в нём ещё один подуровнь открыть айтемс.
Как мне просто перечислением получить и каунт и айтемс?
Так я знаю, йопта. Мне и надо зайти в полуровень респонс и получить оттуда каунт И айтемс. В респонс я захожу через ["response"], а дальше то что?Как мне получить каунт и айтемс а не заходить в них?
Бамп, что ли
Почитай ка основы, батенька. Как переменные создавать и им значение присваивать, как массивы выглядят и как с ними работать. А то ты так ничему не научишься, кроме копипастинга. Заложи себе фундамент по кусочкам :переменные, условия, циклы, массивы, методы, классы,обработка ошибок, события, потоки. Желание сразу сделать большое и крутое это конечно хорошо, но задачи лучше решать постепенно.
Залокалхостил мой хеллоуворлд.
Суть в том что при каждом рефреше выделяется память и она (насколько я понял) в дальнейшем не чистится.
Т.е теоретически меня можно "задудосить" за около пару часов рефрешами в одно лицо.
Как чистить такое вилкой или это норма и лучше над таким не заморачиваться?
А ты попробуй порефрешь два часа и проверь, задудосишь ли ты себя.
Так то может там сборщик потом запустится.
Код давай, может ты неверно описываешь проблему.
> при одном клике OnClick срабатывает столько раз, сколько контролов лежит на форме в точке клика. Соответственно, и сообщение выдаётся столько же раз. НО! Данные во всех сообщениях остаются одинаковыми и принадлежащими самому верхнему объекту
Ну, очевидно, ты хуево обработчики событий развесил, раз они все у тебя на одном контроле висят.
Это всё я знаю. Просто мне, чтобы изучить более сложный материал, нужно какую-то прогу написать. Пока я занимаюсь копипастой, я попутно разбираю, что к чему и так у меня информация лучше усваивается.
Судя по примеру выше ты не знаешь.
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/arrays/jagged-arrays
Короче я хуй знает. Я не пойму, как перечислить элементы, которые мне надо получить, вместо того, чтобы туда углубляться.
Вот именно. А это ты не знаешь, потому что не знаешь основы. Видеоурок посмотри про массивы что-ли.
Я не знаю что за штуку ты мутишь, никогда графики не рисовал. Но судя по картинке у тебя в коде только инициализация. Надо что то типа гдеДолженБыттГрафик.припяздячить(chart 1) ;
А обработчик проверь быстро - вначале засунь мессаджбокс.шоу("двачпомогач");
Нет не могу. Я верю в тебя и хочу чтобы ты стал крутым спецом. А для этого надо иметь минимальную базу.
Я не хочу быть крутым спецом. Я прогаю для себя. Я не собираюсь устраиваться погромистом.
Я пишу программу для решения задачи оптимизации для определенного вида функций. При этом исходная точка поиска может отличаться, как и значения переменных в функции.
>гдеДолженБыттГрафик.припяздячить(chart 1) ;
А по-человечески можешь написать?
Сейчас участок построения графика выглядит как на пикрелейтеде. Чего тут ещё не хватает?
Точку останова поставь на 61 строке и посмотри, есть ли там (в списке) вообще что-то. Ну или if(Debugger.IsAttached){Debugger.Break();}
Что то вроде zedGraphControl1.graphPane=ProbDataChart ;
У тебя сейчас создаётся новый graphpane на основе того что задан в zedGraphControl1. Ты этот новый модифицируещь. Но не сообщаешь что новое нужно рисовать.
Там ничего. Но почему?
Вот всё, что там есть:
this{VK.Player.Form1, Text: VK.Player}VK.Player.Form1
i0int
Это форма, епт. Тебе нужно поле audioList, раскрой список то. А лучше по старинке ебани Console.WriteLine(this.audiolist) ;
Вообще по логике последние две строки лучше местами поменять. element.Invalidate() вызывает перерисовку элемента, так что логично сначала сказать что рисовать, а потом уже вызывать. Но кого волнуют 0,0000000001 сэкономленных секунды.
Ну, мы сейчас не в 50-ых, где каждый бит на вес золота. В моем универе на учебных машинах стоят i5-4670, лол. На трех четвертях пекарен в стране, включая игровые, процессоры хуже, кек. Думаю, от того, что он перерисует сначала пустой график, а затем начнет лепить точки - не сломается.
Конечно не сломается, сейчас и выбирать между float или double не надо. Int теперь 64разрядный. И это здорово, позволяет сосредоточиться на решении нужной задачи, а не попытках колдовать.
Я просто кусочек знаний ему передал попутно. Авось ему пригодится где нибудь.
Не "ему", а мне. >>102285 это и есть мой пост - я про график спрашивал. Пригодится ли? Ну, может и пригодится, если демосцену когда-нибудь кодить начну, где каждый бит и вызов - тоже золотой, как в старые времена. На самом деле ты прав, такие мелочи по сумме и формируют то, что называют быдлокодом. Но на уровне программы для курсового проекта (а это она и есть) принцип "хуяк-хуяк" - сойдет: до ближайшей мне есть чем заняться помимо пидорения кода, в который все равно смотреть будут одним глазом.
Так вот, хочу вкатиться в Asp.NET, он же переплетается сильно.
Что лучше, прочесть Тролсена, что на 1600стр из шапки, и повторить(может что новое узнать, что в ВУЗике не давали), или сразу к литературе по Asp приступать?
А в чем проблема и причем тут мамкин хацкер и телеграм бот?
мимо такой же летописец бота и ньюфаг
Лол, вот так точно делать не надо. У него по идее память должна сама чиститься.
Лел, троелсен сперва конечно.
А не подскажешь, как это сделать?
Я ж не в консоли делаю, а через вин формы.
Было бы не плохо, если бы ты оставил контакты какие-нибудь. Желательно скайп или фейко вк.
Там слева стрелочка слева жи есть даже на картинке что ты скинул. А консоль тебе для дебагинга в вижуал студии покажется и всё, потом уберешь. Ты вон уже делал через Мессаджбокс вывод ответа с сервера.
Контакты дать не могу ибо я тут явно тебе не один помогаю. Всем тредом по нитке соберём тебе проект.
Спасибо всем. Да это не проект, это чтобы понять как с гет и пост работать в шарпе. За одно и другие функции посмотреть.
Как отсортировать по возрастанию строки двумерного массива по количеству повторяющихся элементов?
т.е.
01012
00011
11110
11111
А должно получиться
11111
11110
00011
01012
в примере же есть. Если в строке 11111, то тут 5 эелементов. если в строке 11110, то в ней 4 элемента
Задачка с кольцами хочу нарисовать начальную схему
54321
-----
-----
Но возврат каретки (/r) почему то не хочет работать.
Еще есть сомнения по поводу конструкции n=n, но как это сделать умнее я не придумал
Есть вариант в лоб : бежишь по каждому массиву и считаешь количество повторений каждого символа,записывеешь куда нибудь в массив. Сортируешь по числу и бинго.
audioList = token["response"]["items"].Children().Skip(1).Select(c => c.ToObject<Audio>()).ToList();
this.Invoke((MethodInvoker)delegate
{
for(int i = 0; i < audioList.Count(); i++)
{
listBox1.Items.Add(audioList.first_name +" "+ audioList.last_name);
}
});
В строке подключения-то это понятно. Чтобы передать логин и пасс, их надо где-то объявить, верно ведь? Где их объявлять? А еще в свойствах БД строка ничего не редактируется =>
там отключить Integrated Security не могу
Загугли что Connection String, посмотри примеры конкретно для твоей БД. Такие вопросы гуглятся за пару минут.
Бред какой-то. Открой БД через какой-нибудь GUI и поковыряйся там в настройках прав доступа.
Ща попробуйю
Я не знаю как подситать количество одинаковых элементов в строке матрицы
вот есть допустим 121232 тут повторяется 1 два раза и 2 три раза. В итоге нам надо записать только 3, т.к оно самое большее.
Но как это сделать?
Можешь помочь?
for(int i=0, i<6; i++)
{ int kol =0;
for(int j=0, j<6; j++)
{
if(arr==arr[j] && i!=j)
kol++;
}
}
B короче не считает оно. Я понимаю почему, но не понимаю как это сделать правильно.
Это наоборот перенос строки, мне же требуется чтобы курсор возвращался наверх
Console.SetCursorPosition
Если я начну шарп дрочить в сторону веба, летом уже смогу устроиться джуном? С чем сосну?
О себе: технарь, но не программист, имею 5-6 свободных часов в будние дни.
>Если я начну шарп дрочить в сторону веба, летом уже смогу устроиться джуном? С чем сосну?
Если не тупой, то сможешь. Мимо-автор поста с твоего скрина (выучивший за 4 месяца). Пишу вот говнокод (экстеншн-методы) для своей reusable веб-библиотеки
1) Я пытаюсь написать небольшое приложение на WPF по модели MVVM.
По сути, у меня есть некоторый не очень обширный набор объектов и вспомогательных данных в модели, а аппликация должна их всего лишь показывать некоторым образом, показывать список, а так же добавлять, удалять, модифицировать и сохранять список на диск.
Где с точки зрения MVVM поместить сам лист объектов - в viewmodel или в model?
Модель настолько простая, что вся инциализация, что требуется - загрузить объекты с диска из xml файла при запуске.
2) До того, как я стал делать что-то реально полезное я баловался с С++.
Там, если у меня были какие-то пронаследованные классы я использовал поле с enum, в котором можно было непосредственно узнать их класс (поле заполнялось в конструкторах потомков). Таким образом когда я хотел собрать их в коллекцию я делал коллекцию базового класса и в любых методах, которые должны были пользоваться этой коллекцией я непосредственно с помощью enum узнавал конкретный класс и после апкаста обращался уже к его данным/методам, которых не было у базового класса.
Я знаю, что это корявейшая система, но ничего лучше придумать не смог. Шарп не дает мне сделать апкаст и я не могу ей пользоваться.
Как подобные ситуации разрешаются у белых людей? Без этого как по мне теряется весь смысл наследования, кроме использования интерфейсов.
Я сам представляю два решения:
- Писать без наследования вообще, дублируя части кода для каждого класса, а там, где мне нужны коллекции, создавать тупо по коллекции на каждый тип. Это дико немодифицируемый и нечитабельный код.
- Писать с наследованием, но создавать кучу коллекций. Немного лучше, но все равно - меняешь классы - меняешь коллекции там, где классы используются. Все еще слишком много связи.
- Писать вместо наследования композиции. Самое хорошее решение, но чисто с точки зрения реальных вещей представить схему наследования куда проще, чем композицию, которая может быть запутанней. Ну и наследование опять же не нужно.
Если подумать, то в С++ я использовал наследование в принципе как композицию. Получается, что я хуйней занимался.
В общем, писатели laba_1, посоветуйте или хотя бы прокомментируйте.
1) Я пытаюсь написать небольшое приложение на WPF по модели MVVM.
По сути, у меня есть некоторый не очень обширный набор объектов и вспомогательных данных в модели, а аппликация должна их всего лишь показывать некоторым образом, показывать список, а так же добавлять, удалять, модифицировать и сохранять список на диск.
Где с точки зрения MVVM поместить сам лист объектов - в viewmodel или в model?
Модель настолько простая, что вся инциализация, что требуется - загрузить объекты с диска из xml файла при запуске.
2) До того, как я стал делать что-то реально полезное я баловался с С++.
Там, если у меня были какие-то пронаследованные классы я использовал поле с enum, в котором можно было непосредственно узнать их класс (поле заполнялось в конструкторах потомков). Таким образом когда я хотел собрать их в коллекцию я делал коллекцию базового класса и в любых методах, которые должны были пользоваться этой коллекцией я непосредственно с помощью enum узнавал конкретный класс и после апкаста обращался уже к его данным/методам, которых не было у базового класса.
Я знаю, что это корявейшая система, но ничего лучше придумать не смог. Шарп не дает мне сделать апкаст и я не могу ей пользоваться.
Как подобные ситуации разрешаются у белых людей? Без этого как по мне теряется весь смысл наследования, кроме использования интерфейсов.
Я сам представляю два решения:
- Писать без наследования вообще, дублируя части кода для каждого класса, а там, где мне нужны коллекции, создавать тупо по коллекции на каждый тип. Это дико немодифицируемый и нечитабельный код.
- Писать с наследованием, но создавать кучу коллекций. Немного лучше, но все равно - меняешь классы - меняешь коллекции там, где классы используются. Все еще слишком много связи.
- Писать вместо наследования композиции. Самое хорошее решение, но чисто с точки зрения реальных вещей представить схему наследования куда проще, чем композицию, которая может быть запутанней. Ну и наследование опять же не нужно.
Если подумать, то в С++ я использовал наследование в принципе как композицию. Получается, что я хуйней занимался.
В общем, писатели laba_1, посоветуйте или хотя бы прокомментируйте.
> i!=j
Вот эта проверка тут нахуй не нужна.
Вот рабочий вариант, короче:
https://ideone.com/oqK1od
Зависит от того сколько ты будешь практиковаться.
Помогите. Нет идей как сделать.
Еба какая мешанина. По идее этот кусок можно на три куска разбить. А то и вовсе переписать, вызывать добавление элементов в список внутри функции для сортировки - говнокодство.
Как говорил Анон выше, Skip(1) скорее всего пропускает элемент подмассива и выходит бяда. Нужно больше информации.
Судя по примерам
var result = myArray.OrderBy(row => row[columnIndex]);
И надо using System.Linq добавить в начало.
А как можно сделать ту же самую сортировку строчек в массиве без библиотеки Линк?
Какая ещё инфа нужна? Я на всё готов, главное, чтобы этот вариант начал работать.
Убрал скип(1), то же самое.
Я тут подумал, может просто я в аудиолист не те данные передаю? Просто в JSOB ответе приходят owner_id, artist, title и т.д., а я туда first_name и last_name пытаюсь отправить.
Или я хуйню какую-то несу?
У тебя там в той мега строчке на ходу текст превращается в обьект аудио со всеми подпараметрами. Можешь переписать нахуй это место, пусть вручную циклом с джсона в обьекты загоняет. Но сам учи как делать. Может у тебя обьект Audio говняный. Может у тебя всё делает так как написано и записывает только первый элемент из всех аудио что пришли.
Если поля (наименования) в Audio не совпадают с тем, что лежит в json ты получишь хуй. Залил бы уже исходники на тот же гихаб, вмето того, чтоб скриншотами сыпать третий день.
Дело в том, что я пытаюсь заставить работать это, чтобы потом переписать код в чистовой вариант.
Мне чтобы изучить что-то, нужно понять, как это работает.
>>103512
Так я ж давал ссылку ещё в начале.
https://ideone.com/AuPdMY
А то через профайлер неудобно смотреть уские места
Разве не подразумевается, что по стандартам будет, может, больше писать, но в итоге удобнее?
Когда я начинаю как мне удобно делать в итоге каждый раз вещи перестают срастаться и приходится все переделывать только для того, чтобы обнаружить, что был шаблон, который я пытаюсь заново изобрести.
А то описание какое то слишком простое, похоже на принципы ООП.
Будут виндовс - будут приложения.
Как минимум еще десятки лет придется сопровождать те что есть.
Смотри Bitmap
Ну бамп же!
int a = 15;
a++;
Console.WriteLine(a);
Он возрващает 16, а не 15.
Баг какой-то.
Толсто
Jsники знают только js.
Если оно не работает и ты не знаешь как это работатет - удаляй нахрен этот кусок кода и пиши так как ты понимаешь.
Шаблон это рекомендация. Делай как тебе удобнее. Раз выйдет говно, два выйдет говно, на третий раз прохаваешь. Шаблоны чтобы адекватно применять надо понимать зачем они такие. А просто следование гайду приведёт тебя в ступор, ибо ни один гайд не покрывает всех частных случаев.
Не особо понял что ты спросил, задай вопрос ещё раз. Если правильно понял, то достаточно сделать внутренний класс private и никто снаружи знать о нем не будет.
Потому что ты такой код компьютеру дал.
Это всё равно что удивляться что ты покакол и из тебя говно вылезло, а хотелось чтобы внутри осталось.
Отписываться нужно только есть у тебя публишер живет дольше подписчика. Если они дохнут в одно время то однохуйственно.
Ну они сами же живут, в то и вопрос, не залочит ли подписка сборщик мусора, он будет думать что паблишер еще нужен так как на него подписаны. С другой стороны, какой в этом смысл, если паблишеру пришло время умирать то ему можно не смотреть на подписчиков, они же все равно только получатели.
Публишер хранит ссылку на подписчика, а подписчик на паблишера ссылку не хранит и ничего о нем не знает. Вот и всё.
Удалил его нахуй с азуры, тот же проект создал на другой машине и серваке (план и служба north europe)
Итого:
Хеллоу ворд на хосте выдает, а в телеге не отвечает.
Что это может быть? Что делать? У всех Azure нормально работает?
да я ньюфаг
Ну нахуя на такое отвечать-то? Это бы даже в ньюфаг-треде засмеяли. Человек натурально не умеет пользоваться документацией.
Чувак вообще охуеет, когдаузнает, что операции i++ и ++i по-разному работают
Попробуй Console.Writeline(a++);
Описать перечисление ResidenceType (дом, квартира и т.д)
Создать класс Residence:
с полями - тип жилья, кол-во комнат, есть гараж, есть сад
с методами, рассчитывающими стоимость жилья и затраты на содержание сада
Само задание я уже сделал на 90% и осталось высчитать затраты на содержание сада. Как это сделать, блять? Че не напишу - получается полная хуйня. Пытался и вычитать и делить - нихуя не получается как надо, не умею в ебучую логику.
Вот код https://ideone.com/ZWhT0F
Напишите мне этот return в методе TheCostOfMaintainingTheGarden, буду благодарен.
А как рассчитывается стоимость жилья и сада? Формула то какая?
@if (Request.IsAuthenticated)
{
}
else
{
}
всегда возвращает false, даже после входа. Как это исправить?
Начнём с того что названия переменных у тебя говно и нечитабельные. Что за кол, арр2 и арр4?
Не работает, потому что код в районе kol[j+1]=kol[j] не сортирует массив, а местами меняет элементы. Не факт что в итоге будет сортировочка.
В с# у коллекций есть метод Sort (), который за тебя пол работы сделает. И ещё в треде выше есть точно такой же вопрос, там через LINQ запрос сделано.
Я эту задачу третий раз за два дня вижу. Колись, что у вас там за курсы для двачеров.
А ты уверен что у тебя авторизация правильно отрабатывает? Ничего не забыл туда запихать? Кукисы проверял? Мало информации для понимания ситуации.
Да там по дефолту вроде всё.
>Кукисы проверял? Мало информации
Как это сделать и какую ещё информацию предоставить?
Авторизация проходит нормально? Что пишет в логи? Кукисы в браузере смотреть. Это если у тебя авторизация через них настроена. Вообще гугл по твоим сисптомам выдаёт три разных решения трех разных проблем. Глянь сам, что тебе ближе.
>Не работает, потому что код в районе kol[j+1]=kol[j] не сортирует массив, а местами меняет элементы.
Так kol -это одномерный массив == последнему столбику двумерного. Там и надо только местами поменять. В итоге j - будет индекс строки для двумерного массива. Почему не сортирует-то?
Точнее как совладать с этими файлами там?
В каждом сеттере модели помимо field = value; добавляешь PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Field));
ObservableCollection в XAML'е через ItemSource = {Binding Path=myObservableCollection}. Теперь у тебя в коллекции будут выводиться ListItemModel.toString(). Поэтому либо оверрайди его, либо наверстай дататемплейт по типу
<DataTemplate x:key="modelTemplate" type="{x:Type local:ListViewModel}">
<Border>
<StackPanel Orientation="Vertical">
<TextView Text = "{Binding Path = Field1}" />
<textView Text = "{Binding Path = Field2, UpdateSourceTrigger = PropertyChanged}" />
//Field1, Field2 - свойства в классе модели
</StackPanel>
</Border>
</DataTemplate>
> Там, если у меня были какие-то пронаследованные классы я использовал поле с enum, в котором можно было непосредственно узнать их
- це пиздец. наркоман?
Для этого в сисярп завезли оператор is, который используется в if:
if (anObject is ListViewModel)
{
}
Вообще, если у тебя больше чем 2 конкретных класса в цепочке наследования, то скорее всего ты что то делаешь не так. Странно, что апкаст делать не даёт. Ты уверен, что у тебя кастуемый класс есть в цепочке наследования? В теории, помимо эксплисит каста ты можешь создавать ссылку типа
Father f = new Father();
Grandfather gf = f;
Да ну ёбаный, проебался.
Это местный хейтерок впф.
Нет, сам только сейчас заметил.
myArray[][] - массив массивов. ты можешь в любой момент уебать
myArray = new int[3]
а myArray[,] - матрица, там такое не прокатит. еще слышал, что массив массивов производительнее, чем матрица, но не помню почему.
Уже дохуя видео уроков пересмотрел и так не смог понять.
сеттер: например, при смене какого то значения, тебе нужно изменить другое на основании нового значения, и для этого достаточно членов класса этого объекта. чтобы не выносить эту логику вне класса, она может содержаться в сеттере. например, ты меняешь имя у человека через сеттер, а в сеттере помимо присвоения поля name ты еще и у всех детей, которые типа List<Person> Chlidren ставишь отчество на value+"ович".
геттер - например, тебе не хочется выводить ФИО через Name + LastName + MiddleName, ты хочешь одним свойством. делаешь там Fullname {get {return this.Name + this.LastName+ this.MiddleName; }}. Также, в событиях удобно дёргать обработчики событий, если они есть и на них кто нибудь подписан. формально, если раньше писал на яве или на крестах, это ничем не отличается от создания методов getFullname(), setName(string nma) и т.д.. В C# просто много сахара
понятие матрица вообще есть в с#? Та же вроде только массивы. И вот это (,) двумерный массив.
Array[][] - одномерный динамический массив одномерных динамических массивов.
Array[,] - двухмерный динамический массив.
Кстати, как тебе такой вариант int [,] [] [,,,] ?
Нихуя не понял, почему ViewBag в исходниках возвращает тип object? Это так решарпер при декомпиляции начудил?
К счастью, такое понятие только в твоей отбитой голове есть :3 У ровных пацанов есть функции на векторном пространстве.
Всё просто и понятно, фича технологии, да такая, что всё в две строчки делается.
wpf хейтерок
Покажи мне десктопную либу, которая в две строчки можно сделать хороший интерфейс
Как с помощью метода Type.GetMethod получить protected virtual метод, определенный где-то выше в цепочке наследования?
це web, это не считается. хотя я не могу не признать, что WPF практически никому не нужен, но тем не менее лучше платформы для десктопа я не видел и не слышал
В BindingFlags смотри.
Пфф, линейные операторы.
За позже пожалуйста. Используй множества.
криво поставилась/твоя пека говно
> Как сделать
Замени свой цикл for на это:
badWords.Select(w => message = message.Replace(w, "censored"));
Сап двач, есть один файловый поток.
Как правильно считать с строки файла к определенному символу (по одному слову, если они разделяются пробелом) ?
Я так понимаю должно получиться что-то типа такого:
string line = "";
char symbol;
while (считать посимвольно != " ") line += symbol;
Создавай StreamReader, в конструктор ему пихай файлстрим. Делай while ((symbol = streamReader.ReadChar()) !=' ') line+=symbol;
Колитесь, кто из вас писал это, вкатывальщики? Один совет охуительней другого.
сенкс. эти классы еще не устарели?
Task.WhenAll/.WhenAny
try {ii.fulldescr.links.blog = fdoc.QuerySelectorAll("a").Where(q => q.TextContent.Contains("Blog") && !q.TextContent.Contains("not available")).FirstOrDefault().Attributes["href"].Value;}
catch (Exception){ ii.fulldescr.links.blog = null;}
try { ii.fulldescr.links.whitepaper = fdoc.QuerySelectorAll("a").Where(q => q.TextContent.Contains("Whitepaper") && !q.TextContent.Contains("not available")).FirstOrDefault().Attributes["href"].Value; }
catch (Exception) { ii.fulldescr.links.blog = null; }
try { ii.fulldescr.links.facebook = fdoc.QuerySelectorAll("a").Where(q => q.TextContent.Contains("Facebook") && !q.TextContent.Contains("not available")).FirstOrDefault().Attributes["href"].Value; }
catch (Exception) { ii.fulldescr.links.blog = null; }
> редакторам-монстрам
Vscode.
> фреймворкам
Странная претензия.
> принудительному обьекто-ориентированию
Хуита, современный мейнстрим - процедурное на ioc-стероидах.
> виндовсу
.net core
Лучше копипасть код на какой нибудб repl.it или пастебин, и кидай ссылку сюда.
Старые тоже не открывает.
[] Конструктор внезапно прервал выполнение!
когда создаю windows forms или uwp приложение, конструктор появляется, а WPF не хочет.
Пробовал всё со стаковерфлоу и интернетов вообще, ничего не помогает.
как заставить эту хуиту работать?
Отдельным классом
Нахуя?
для Scoped объекта?
Нужно каждый день сбрасывать значение.
Делал по этому
https://blog.maartenballiauw.be/post/2017/08/01/building-a-scheduled-cache-updater-in-aspnet-core-2.html
нихуа...
Сделай костыль на событиях.
>
Есть ли здесь в треде кто работает .net разработчиком?
Как в целом? Я так полагаю что в основном это asp. Посмотрел вакансии по своему мухосранску, почти везде требуют в добавок еще и js(angular) и прочее говно в виде html и css.
В планах пойти работать через полгода джуном, куда-нибудь на part-time, благо есть опыт с wpf.
Долбаеб препод агитирует за js, мол майки с кором хуйню мутят, шарп дохнет кококо, но в js помойку я влазить не хочу от слова вовсе.
Собственно вопросы такие:
1. Что там с актуальностью в целом
2. Чем в основном занимаетесь?
3. Если asp.net, то нужен ли js.
Проблемы вкатится в js нету, но это такое говно ебаное, что блевать тянет.
JS реально лучше, если бабло нужно.
Если на бабло похуй, жить будешь в мусорном ящике ради того, что ближе к сердцу - то тогда да забей, и чисто занимайся .NET средой.
Если статик убрать, то ничего не изменится, но если создать экземпляр Form1, то работает, но криво.
Не подскажите как сделать лучше, правильнее.
Проект на винформс. Там часто встречается один и тот же код, а именно код на запись в файл и на чтение из него.
Я и хотел этот код в метод засунуть и вызывать уже метод. Но что-то не работает.
Вернее, вот тот вариант, что на картинке, он записывает в файл, но при попытке записать еще раз информацию он файл перезаписывает, а не дописывает в него. Почему так?
>Если статик убрать, то ничего не изменится
Потому что матчасть, бл. Статик филды и методы - они вне времени и пространства, им знать не ведемо данные какой инстанции брать да и как бы плевать на всю эту мелочь.
Если нужно, что бы статик что-то обрабатывал - посылай ему этот как аргумент.
>Вернее, вот тот вариант, что на картинке, он записывает в файл, но при попытке записать еще раз информацию он файл перезаписывает, а не дописывает в него. Почему так?
А чем не угодил File.AppendAlltext?
Тебе зачем вообще сисярп? Если для дела - то прочитай хотя бы Рихтера - там чтива на одну ночь.
>JS реально лучше, если бабло нужно.
>
Ну пиздец. Этого я и боялся больше всего.
Деньги нужны, ибо я собираюсь слазить с мамкиной шеи.
Походу придется вкатываться в это говно.
>Если нужно, что бы статик что-то обрабатывал - посылай ему этот как аргумент.
Как я ему передам как аргумент? датагридвью1 не существует вне класса форм1.
Я уже сделал вон как. Но! Код тот же самый, но если в кнопке он записывает как надо в файл, то в классе MyUtils он перезаписывает последнее введенное, стирая все предыдущие записи. Чому так?
Короче, он обнуляет, потому что записывает туда одну строку и создает новые датагридвью1, в котором было пусто.
А как мне сделать так, чтобы он записал данные из уже созданного датагридвью?
Всмысле, может и можно обработчик нажатия кнопки сделать публик, но а как вообще сделать правильно? Как это делается? Ну чтобы вот тот код, которые отвечает за запись и считывание засунуть в метод и как метод использовать? У меня 4 кнопки и везде этот код там используется.
То есть говнокодер это что-то среднее между ремесленником и библиотекарем? Ну в принципе да, вполне логично.
>>108155
Если это общий static method, просто передавай ему данный или референс на collection через аргументы.
Если же ты делаешь extensions (судя по имени класса MyUtils ), у тебя синтаксис вообще некорректен. Погугли c# extension method example.
В любом случае, твой текущий метод пытается обратиться к уже существующей коллекции где-то, а это не правильно если он static.
Суть в чем. Есть на форме 4 кнопки. Все 4 кнопки имеют ту часть кода, которая осуществляет запись и чтение в файл. Эти части кода идентичны.
Наверное это как раз тот случай, когда надо использовать методы, чтобы облегчить написание кода.
Я хотел эту часть кода поместить в метод и просто вызывать метод для записи/чтения.
Ну и тогда вопрос, как это делают по-настоящему? Просто в классе форм1 создать статик метод или надо создавать класс и прочее?
А настоящий ТруЪ кодер — навроде спецiалиста по пчолам @ собакенам. И их мало.
Если код повторяется - генерализируй его в метод и вызывай с параметрами.
Например Кнопка1 записывает значения из Поле1 и Поле2, ну вот и вызывай этот saveTo() метод с параметрами saveTo(поле1, поле2). И в с амом теле метода уже обрабатывай сохранение.
Ну вот как правильно это оформлять? Вот если я так просто возьму, пропишу методы вот тут и все - это норм будет или так не делается?
Для школьного задания - норм.
Я хз что там для WinForms используется, но вот для WPF есть MVVM структура.
Но, имхо, тебе пока нет смысла заморачиваться, просто используй codebehind как сейчас.
Это тот же самый вопрос, ты спрашиваешь про design pattern, просто сам не понимаешь
Схороняет хуево, может записать в значение какой-то мусор, а может и по несколько раз закрыть поля/файл/алаха
Напиши свой или поправь существующий или покопайся на нюгетах в поисках лучшего
да хуй знает. я им не пользуюсь, мне и newtonsoft.json всё перемолит. но раз у тебя там какие то проблемы - скинь модель сериализуемого класса, XML на выходе и ожидаемый XML в пастбин, посмотрим с анонами. может ты пытаешься какую нибудь сложную хуйню перемолоть, которую xml.serialization официально не поддерживает. а то ты спрашиваешь абстрактно, мы даже модели не видим, что тебе тут ответить?
Да он просто не совладает с классами в принципе. Бывает нормально запишет, а бывает рандом с одинаковыми данными.
> ты пытаешься какую нибудь сложную хуйню перемолоть
Обычные переменные/свойства
Возможно я просто что-то не так делаю.
Вот пример: https://pastebin.com/hFRNd7aR
Одинаково хаотически работает на 15 и 17 visual.
>>108356
Вроде код обычная копипаста, какой хмл скармливаешь?
Стартовый тег <?xml version="1.0"?> не забыл добавить?
С массивом там залупа, надо в тег <ArrayOfZalupa> запихать элементы со стороны хмл, а если наоборот то спокойно сериализуется List<Zalupa> обьект.
Ты щас серьёзно или тралишь? Сбор мусора нужен чтобы памяти стало больше. После очистки кусок памяти сжимается, твои два обьекта стали меньше места занимать.
Блять, вот я еблан, ночью уже вообще мозги не варят. Спасибо.
> Стартовый тег <?xml version="1.0"?> не забыл добавить?
Он сам вроде добавляется
> спокойно сериализуется List<Zalupa> обьект.
Вот я и в массивы пытался, потому что нихуя не спокойно
> какой хмл скармливаешь?
Обычный. Using.xml.serialization
Платиновый вопрос. Что такое net.core? Имею в виду, есть где то адекватный список что туда вошло? Прям по классам, неймспесам
потому он и без параметров, что СИНГЛТОН
и конструктор приватный, чтобы говнокодер не додумался наплодить инстансов
пустой WriteLine уже сам по себе \r\n
Нужно переставить в нем строки так, чтобы в последнем столбце числа расположились по возрастанию.
Как это сделать максимально просто? Без листов, лямбд, интерфейсов и прочего.
Есть идеи?
>Без листов, лямбд, интерфейсов и прочего.
Если даже array.Min() нельзя, тогда придется создать helper-method, который принимает int[] и находит самое меньшее число, которое как минимум больше заданного x.
Затем просто итерируешь через массив и подменяешь последнее значение
Что из них что?
Это платина какая то, где вы это задание берете?
Раз в неделю кто то приходит с этим.
Пиши цикл пузырька например. Берёшь каждый элемент столбца сверху вниз и сравниваешь с последующими по очереди. Если твой элемент больше сравниваемого - меняешь их местами. В итоге самое тяжёлое как пузыри в конец. массива уплывает. Единственный подвох в задаче - что нужно допереть как по столбу пробегать и в верное измерение i подставлять.
>Это платина какая то, где вы это задание берете?
>Раз в неделю кто то приходит с этим.
Школьники же
>первый раз пытался собрать мусор, и нихуя непонятно почему объем памяти после сборки вырос?
Ты мусор собрал, а вынести забыл
А куда тут втулить перестановку строк? Ну т.е. последний столбик я сортирую пузырьком, но как ни пытался добавить еще цикл чтобы он строкит менял, то не выходит.
Если не затруднит, мог бы кто-нибудь написать готовый код, а то у меня не выходит.
Пытаюсь сделать себе виртуальную мышь. Вот у дефолтных виндовсовских клавиатурах и панелей управления все норм, хотя не всегда, но у меня вообще пиздец.
Использовал mouse_event
Declare Function MouseClickB Lib "user32.dll" Alias "mouse_event" (ByVal dwFlags As Int32, ByVal dX As Int32, ByVal dY As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As Int32) As Boolean
Короче, что это за пидорство такое? Что эти игры себе возомнили? В остальных программах все работает как планировал.
Это не для читерства, просто взял себе планшет на шиндовз, а программы не адаптированы под сенсорный экран. Виртуальный тачпад виндовс 10 — это черная хуйня (совсем не прозрачная даже, несмотря на прозрачный стиль), перекрывающая половину экрана. В общем не удобно совсем.
Могу дать более широкую информацию, если потребуется.
А что значит столбцы и строки? Это же массив, епта. Или ты пытался почикать первый уровень массива?
Не совсем понял что ты имеешь ввиду. Массив, да. Двумерный массив. В нем строки и столбцы.
Короче, тебе нужно копировать строки с помощью временного массива т.к. столбцы (если ты понимаешь под этим первый уровень массива) всегда неизменны.
Это как некоторые люди смотрят на абсолютно горизонтальную улицу ИРЛ и говорят "идем вверх" — потому что до этого они смотрели на карту в мониторе и то самое направление улицы устремлялось вверх монитора.
Вот и я не понимаю какие нахуй строки и столбцы.
Не понял. Не мог бы ты написать код. Просто я уже по-всякому пытался и не выходит. А чувствую, что решается все 5 строчками кода и парой циклов.
>Где ты блять учишься?
Нигде
>Таблицы ни разу не видел?
Хм, в таблице можно данные представлять как угодно. Вот смотри пикрилейтед: у меня строки стали стобцами, а столбцы строками и нихуя не потерялось. Это вопрос визуализации данных.
Я как-то привык уровни массивов называть уровнями, тогда нельзя перепутать, к тому же такой вид восприятия тебе даст ответ, почему у тебя не получилось то, что ты задумал.
https://msdn.microsoft.com/ru-ru/library/2yd9wwz4(v=vs.120).aspx
не мог бы ты написать код, который бы переставлял строки как нужно в задании?
Короче ты можешь обращаться только к столбцам (я по части vb.net)
Поэтому если у тебя в строке, допустим, 10 столбцов, то тебе нужно создать цикл, где ты поочередно int(0,0), int(0,1) int(0,2) ... int(0,n) перемещаешь, например в int(3,0), int(3,1) int(3,2) ... int(3,n)
Если ты захочешь тупо переместить int(0) в int(3), то будет ошибка.
Ты хоть условие опиши. Я понимаю тебе нужно сортировать строки между собой в каждом столбце, но по какому параметру ты хочешь сортировать столбцы?
Тьфу ты, перепутал строки и столбцы. Что за дурацкая система?
Короче есть у тебя первая строка с данными (5, 8, 6, 1), а вторая с данными (15, 3, 2, 10).
Потом ты каждую строку сортируешь пузырьком и у тебя получается первая строка (1, 5, 6, 8), а вторая строка (2, 3, 10, 15).
Ну а дальше что ты хочешь с этим делать?
>Поэтому если у тебя в строке, допустим, 10 столбцов, то тебе нужно создать цикл, где ты поочередно int(0,0), int(0,1) int(0,2) ... int(0,n) перемещаешь, например в int(3,0), int(3,1) int(3,2) ... int(3,n)
Ну да, вот только не выходит.
я перекатился с бажесвеных дельфи
вижу, как много они переняли хорошего и доброго
в сисярпе меньше пердолинга с гуем, нет указателей (харам) и много фичей из коробки
пердолилг будет на раздаче приложений из-за недосовместимости версий фрейворка
И CYKABLYAT ПОХЕРЕННЫХ assemblies!!!!
из-за этого я к сисярпу отношусь без полного доверия в отличие от всех версий дельфи
Они в режиме direct3d как минимум. А твоя хреновина скорее всего просто форма.
Просто в своем пузырьке сделай перебегаение по массив[итератор, длинаСтроки - 1].
Не выходит говно из жопы, код показывай свой и что он выводит.
И что у тебя int[0,3] = int[1,3] не работает?
моя херовина действительно просто форма.
>Они в режиме direct3d как минимум.
Я тестил на фаллауте 2. Не знаю была ли на момент его разработки поддержка директа.
В любом случае, почему тогда стандартная виртуальная сенсорная панель работает как в играх, так и в остальных режимах? Что за магия такая? Куда мне нужно копать?
да, фалалут 2 был на DirectX 7
Да-да, на сисярпе особо не побайтоёбствуешь
Это значит, что для приёма бинарного пакета данных надо встать на уши. Но это лечится
Да, работает, а почему там getLength(0)-1 , а не просто getLenght? когда пробегаемся до последней строки?
ты сравниваешь
первую строку со второй
вторую с третьей
.....
предпоследную с последней
то есть пробегаешь в первой до предпоследней
поэтому и -1
Строки ясно, а вот почему столбец мы сравниваем предпоследний?
потому что с нуля нумерация
GetLength(1) даёт количество столбцов, но их индексы начинаются с нуля
то есть 0..GetLength(1) - 1
Например, декларируешь как int[] a = new a[3];
GetLength(0) выдаст 3, но индексы будут 0, 1, 2
а почему тогда тут написано "до предпоследней строки" https://pastebin.com/QNxR20Xs на 30 строке? до последней же выходит, что?
Реквестирую гуру системного дизайна. Какие паттерны можно здесь применить?
Компоновщик, декоратор.
Если nullref exception то null operator его "проглотит" без catch
Pointers есть, но они для гуру с unsafe/umnagaed code.
Побайтовость никуда не делась, ибо память не резиновая, а GC еще и тормоза вносит, посему бисер метать перед ним буде
int[][] ArraY = new int[hyj][zalupa];
где huj, zalupa - нужные переменные?
Надеюсь это не так сложно как в С.
Можно и через int[][] хотя этот вариант используется для jagged arrays или для особого удобства.
Если тебе нужен "ровный" массив используй
int[x,y]
Потому что инициализируешь неправильно. Для компилера - width и length не существуют на тот момент. Запихни саму инициализацию в конструктор, где ты определяешь width и length.
Оказывается для эвента мыши существуют специфические координаты (см. заголовок "Координаты мыши"), от чего мой эвент срабатывал не там где надо
Но теперь другая проблема. Т.к. по задумке моя виртуальная мышь должна следовать за пальцем на тач-экране моего планшета, то хотелось бы сделать кнопки мыши максимально незаметными и маленькими. Но вот хуй (Смотрите картинку), если форма прозрачная, то какой бы ни был большой размер кнопки, реакция на клик будет только если курсор попадет по изображению кнопки. Ну а так как картинку я задумал сделать маленькой, то попасть очень сложно, особенно на тач-мониторах пальцем.
Вопрос: Как заставить реагировать кнопку в соответствии с ее реальными габаритами?
Не помню поддерживается ли прозрачность, но двачую этого специалиста. Сделай большое изображение на кнопке, но лишнее залей rgba(255,255,255,0,01).
А зачем тебе кстати именно кнопки? По прозрачной форме клик не срабатывает?
в популярности как языка программирования. Я так понимаю, что у Жабы только Андроид остался, во всех остальных местах она продула
В идеале я хотел сделать форму как на пикрилейтед №1, где белый цвет — это прозрачный фон.
Но столкнулся с проблемой как мне сделать форму прозрачной. На выбор было два стула. Первый стул: параметр opacity который делал однородную прозрачность - нельзя кнопочки оставить непрозрачными, а все остальное прозрачным. Но зато можно устанавливать степень прозрачности.
Второй стул (тот, что выбрал я): параметр transperencyKey, который делал прозрачным те пиксели формы, цвет которых совпадал с цветом transperencyKey. В этом случае мне удалось кнопки оставить непрозрачными, а все остальное прозрачным. Но проблема в том, что в отличии от opacity, здесь нельзя настраивать степень прозрачности — либо абсолютная прозрачность, либо абсолютная непрозрачность. Границы перехода из непрозрачности в прозрачность получились грубыми, поэтому пришлось избавиться от тени от кнопок, а их форму сделать квадратной (пикрилейтед 2) иначе появляются "зубцы" на границах, как будто отключили антиалиасинг.
Ну а так как фон становится абсолютно прозрачным, то пропадает реакция на клик. Нельзя в моем случае сделать немного непрозрачным. Я бы с удовольствием сделал так.
>>109481
>rgba(255,255,255,0,01)
Кнопку-то можно сделать немного прозрачной, и я в принципе вставлял обычный png и все нормально работало на непрозрачной форме. Но вот как только я сделал форму прозрачной с помощью transperencyKey, то появились трудности.
>По прозрачной форме клик не срабатывает?
Так у меня минимум три кнопки на этой форме, да и форма такая же прозрачная.
>Первый стул: параметр opacity который делал однородную прозрачность - нельзя кнопочки оставить непрозрачными, а все остальное прозрачным
Это не parent-child зависимость? Распарентить реально?
Я не знаю о чем ты. Me.opasity имеет числовой диапазон от 0 до 1. В него нельзя закинуть растровую карту в качестве алфы прозрачности.
Хамарин уже почти приятен для разработки. Так что и тут скоро проебет.
Есть ли возможность преобразовывать строки вида "System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" в соответствующий тип? Сейчас приходится парсить строку вручную, что неудобно. Нужно десериализовывать чужие данные, сериализованные через BinaryFormatter. У меня нет возможности подключить чужую либу в свой проект (а сорцы нужных классов есть), поэтому приходиться извращаться через оверрайдинг BindToType.
Пиздец, сначала они уродовали шарп убогим синтаксисом, а теперь и до семантики добрались.
Вот сдесь окончатеьно бомбануло:
> public bool SureThatAlwaysTrue(AnyType item) => item is var x;
> в контексте C# 8 выражение 'AnyType item' предполагает, что 'item != null' (компилятор не пропускает выражение 'SureThatAlwaysTrue(null)' и отображает warning message в случае 'SureThatAlwaysTrue(null)'). Сообщение можно лишь намеренно убрать с помощью оператора '!' следующим образом 'SureThatAlwaysTrue(null!)'
Больше бессмысленного говна богу говна. Разработчик должен бороться со своей программой пока конпелятор заставляет его правильно расставлять "var?" и "!".
В чем проблема сделать бинарную десериализацию, если известно как устроины объекты внутри и есть строки их представляющие?
Проблема в ошибке "Не удалось найти сборку" при десериализации имеющегося у меня объекта. Если не тыкать десериализатору прямо, что нужно строку такую-то ассоциировать с типом таким-то.
пиздец какой то.
Нахуй надо, нет ничего лучше старого доброго if(hui==true) drochit() ; и всем понятно.
> Ну если ты знаешь что коллекция generic так достаточно указать тип и его НАДО указать
Так всё в итоге и сводится к парсингу строки с типами, и ручному формированию дженерик типа. Хотелось это автоматизировать.
> Юзай >where
А где там where можно заюзать, до меня не доходит.
1. Количество одновременных таймеров как-то нагружает систему в отличии от одного?
2. Частота таймера важна для производительности?
3. Таймеры засоряются? Их нужно чистить если они должны работать не прекращая?
А если у меня есть несколько задач, которые можно выполнять с разной частотой. То как поступить:
а) запихнуть все в один таймер
б) сделать несколько таймеров с разной частотой и раскидать в задачи разной степени важности.
Может быть знающие вообще не используют таймеры, а что-то еще? Если в бэкграундворкер засунуть бесконечный цикл, то это будет хуже таймера?
>А если у меня есть несколько задач, которые можно выполнять с разной частотой.
В плане?
Я кун, который продолжает делать виртуальную мышь для планшета на шидовс.
Одна задача: кнопки мыши должны постоянно двигаться за курсором. Чтобы движение было плавным, нужен таймер высокой частоты. У меня установлена частота на 400 тиков.
Вторая задача: у моей мыши есть доп функции, которые зависят от программы с которой я работаю в данной момент. Так вот периодичность запросов активного окна НЕ требует такой высокой частоты, как в случае с первой задачей. Тут частота где-то около 1000 тиков, а может даже и больше
Третья задача: если курсор неподвижен (например пользователь смотрит видео), то виртуальная мышь должна исчезнуть и появиться снова как только курсор начнет движение. Тут тоже незачем высокая частота обновления.
Тут частота выше 5000
Так вот я не знаю как мне поступить в этом случае.
мимовопрос - зачем виртуальная мышь на планшете с тачпадом?
То есть, я бы понял, если бы у планшета была клава и сенсор тачпада приказал, тогда ясно, курсор мыши клавишами клавы можно двигать. Но если тачпад в норме - нафига мышь?
>мимовопрос - зачем виртуальная мышь на планшете с тачпадом?
Прелести планшета на виндовс, лол. Купил себе планшет и думал, что буду королем вселенной теперь (я так-то десигнер), но когда установил программы и игры, то большая часть просто не слушалось моего управления.
Преимущественно это касалось графических 3d-пакетов и игр (короче все что на директе) — все они отказывались воспринимать тач. Можно вращать, масштабировать, но сделать клик невозможно.
Походу сенсор экрана не воспринимается как мышь или физический тачпад.
>я бы понял, если бы у планшета была клава и сенсор тачпада
Я тоже думал, что сенсор на экране == сенсор тачпада на клавиатуре. Но это не так. К моему планшету пристегивается клава с тачпадам и там все норм. А вот когда тыкаешь пальцем по экрану, то даже курсор пропадает.
Поэтому в виндовсе 10 есть виртуальный тачпад — если в его области двигать пальцем, то появляется курсор, который работает в обычном режиме.
Но он такой корявый шо пиздец — он имеет размеры реального тачпада и у него отсутствует прозрачность, а на маленьких экранах эта херь перегораживает собой половину пространства.
Вот я и решил запилить более удобный вариант на мой взгляд. Короче планшеты на виндовс — очень сырые еще. Может на дорогих планшетах типа серфейса есть мышиные хардкнопки, хз.
Еще вроде как подтягиваются планшеты, поддерживающие актив-пен (стилус с кнопками как у мыши), но у меня бюджетный вариант планшета и такой функции нет. да и сам активпен стоит как половина моего планшета.
Я когда то делал костыльное говно для древней говняной виндовс се. Надо было чтобы раз в минуту устройство делало запрос и если всё окай, делало дело. Таймер почему то работал на компе, но вешал в ноль девайс.
Сделал так -функция ожидатор, в ней создаёшь поток и в него пихаешь делегат {
wait (int n);
this.Invoke(Logika()) ;}
Ну и в логике по кругу вызываешь ожидатор если что.
А чем тебе вариант в событии OnClick не передвигать элементы к мышке? Или ты анимацию хочешь? С исчезновением кнопок то таймер пригодится.
Так я уже описал зачем. Я его использую, потому что других способов не знаю.
Мне нужно, чтобы:
1. меню постоянно следовало за курсором
2. кнопки меню появлялись в зависимости от активной программы
3. убирать видимость меню, если курсор перестал быть активным
Имхо Лучше через события, у формы есть событие онклик для мыши.
У винапи есть событие на смену окна
https://stackoverflow.com/questions/4407631/is-there-windows-system-event-on-active-window-changed
.
Ну а исчезновение кнопок таки через таймер.
Попробую отдельный поток, если это разумнее таймера.
Спасибо, посмотрю
Смотря Sort чего
Если object то у него не будет sort, базовый объект его не имеет.
Если кастомный тип, определенный твой - ты и будет имплементировать Sort
Тип должен реализовывать IComparable для сортировки.
>но сделать клик невозможно
Обычный тап по экрану. Но если ПО воспринимает "пальцевый" ввод по своему то поведение может отличаться.
Вообще работать пальцем это то ещё "удовольствие", зачем тебе оно?
Так там Экспешн же сериализатор кинул, ебал он в рот твой говнокод парсить , напиши класс чтобы разбивал - собирал многомерную твою бадью на - из нескольких одномерных массивов.
И кстати. Нахуя тебе двумерный массив тут?
Тогда сделаю 2 листа
Сделай обьект с двумя полями - столбцы твоего массива, запихай обьект в коллекцию - получишь строки. Вуаля, ты решил проблему сериализации.
>Вообще работать пальцем это то ещё "удовольствие", зачем тебе оно?
Не всегда можно развернуть клавиатуру и мышь. Это для мобильности.
А чтобы не ждать пока он откроется, решил написать консольное приложение на С шарп, чтобы код дописывал в файл заметок то, что я в консоль скопирую.
А как ввести в консоль текст многострочный? Да еще такой, где могут быть пустые строки?
Додумался бесконечным циклом записывать строки в массив, даже пустые. А когда строк в массиве будет больше 30, то проверять последние 30 строк и если они пустые, то переставать записывать и стирать эти 30 строк.
А потом записывать в сам файл.
Но не работает почему-то. Почему?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace notesAdd
{
class Program
{
static void Main(string[] args)
{
const string path = @"C:\Users\123\Desktop\notes.после редактирования.txt";
List<string> newLines = new List<string>();
int flag = 0;
while (flag == 0)
{
newLines.Add(Console.ReadLine());
if (newLines.Count > 31)
{
for (int i = newLines.Count - 1; i > newLines.Count - 30; i--)
{
if (newLines == "")
{
flag = 1;
}
flag = 0;
}
}
}
for (int i = newLines.Count - 1; i > newLines.Count - 30; i--)
{
if (newLines == "")
{
newLines.Remove(newLines);
}
}
using (StreamWriter sw = new StreamWriter(path, true, Encoding.UTF8))
{
sw.WriteLine("---------------------------------------------------------------------------------------------------------------");
sw.WriteLine(DateTime.Now.Date);
foreach (string el in newLines)
{
sw.WriteLine(el);
}
}
}
}
}
А чтобы не ждать пока он откроется, решил написать консольное приложение на С шарп, чтобы код дописывал в файл заметок то, что я в консоль скопирую.
А как ввести в консоль текст многострочный? Да еще такой, где могут быть пустые строки?
Додумался бесконечным циклом записывать строки в массив, даже пустые. А когда строк в массиве будет больше 30, то проверять последние 30 строк и если они пустые, то переставать записывать и стирать эти 30 строк.
А потом записывать в сам файл.
Но не работает почему-то. Почему?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace notesAdd
{
class Program
{
static void Main(string[] args)
{
const string path = @"C:\Users\123\Desktop\notes.после редактирования.txt";
List<string> newLines = new List<string>();
int flag = 0;
while (flag == 0)
{
newLines.Add(Console.ReadLine());
if (newLines.Count > 31)
{
for (int i = newLines.Count - 1; i > newLines.Count - 30; i--)
{
if (newLines == "")
{
flag = 1;
}
flag = 0;
}
}
}
for (int i = newLines.Count - 1; i > newLines.Count - 30; i--)
{
if (newLines == "")
{
newLines.Remove(newLines);
}
}
using (StreamWriter sw = new StreamWriter(path, true, Encoding.UTF8))
{
sw.WriteLine("---------------------------------------------------------------------------------------------------------------");
sw.WriteLine(DateTime.Now.Date);
foreach (string el in newLines)
{
sw.WriteLine(el);
}
}
}
}
}
>Оперы уже давно нет, и заметок тоже
В Vivaldi есть, может туда импортировать.
>А как ввести в консоль текст многострочный?
Сделай лучше так:
1. копируешь текст в clipboard (ctrl+c)
2. жмешь хоткей, который запускает консольное приложение
3. Это приложение берет текст из clipboard как есть и сохраняет
Так как у тебя CLI проект, нужно зареференсить Windows.Forms
Ну и вообще, если по каким-то причинам не хочешь испортировать существующие заметки в специализированый тулзы по хранению заметок, коих СТОТЫЩЬ, можешь написать свою свистоперделку с треем:
https://www.codeproject.com/Articles/18683/Creating-a-Tasktray-Application
Само собой 20Mb в plain-text это пиздец, но если памяти дохуя и тебе пофиг, можешь смело в array при загрузке и даже написать простенькую хуету по keyword-поиску нужной заметки
Так, насколько я понимаю, для этого требуется встроенный в студию хелпвьюер. На рабочей станции нет студии, установить что-то я тоже не могу. Знаю, что это пиздец, пошел ради опыта
Ну скопируй файло и смотри вручную, там простой HTML или аналог.
Figure.Border.DistantionFromCenter (double angle)
Судя по твоему коду, тебе надо каждый раз приложение открывать, это же неудобно.
Сделай на WinForms приложение, которое бы слушало горячую клавишу глобально и при её нажатии писало в твой мегафайл. Закинешь своё поделие в автозагрузку и будет тебе счастье.
У тебя бесконечный цикл, в конце тела цикла flag=0в любом случае.
Потом ты коллекцию строк сравниваешь с пустой строкой, конечно оно всегда будет фолс возвращать. Походу пропустил.
Неудобно код без разметки читать капец.
Вообще идея не очень продуманная. В конце каждой строки есть невидимый символ перевода строки. Можно содержимое буфера по нему резать и сохранять. И не нужно будет городить всякие 30 строк. А если их 50 будет? Соснет твоя программа.
>Открывать клипборд, кпировать туда, потом открывать консоль для записи. Долго.
Ты совсем тугой? Зачем открывать клипборд? Ты о чем?
Текст выделил, ctrl+c нажал, тулзу запустил - она все из клипборда взяла, пропарсила и записала.
Если тебя так прет пялиться на черное окно консоли, тогда повесь вечный ReadKey на цикл и по нахажатию любой кнопки пусть берет из консоли, парсит, сохраняет, отписывается о результатах и снова ждем ввода.
Требуется помочь с программой на C# конечно же.
Решил написать полу-авто программу для решении задач по химии( ненавижу этот предмет) ,но после первых строк начались проблемы , так как ещё зелёный.
Нужно было чтобы пользователь вводил заданные числа и затем программа решала задачу попутно показывая решение.
Это только часть кода , я хотел проверить работает ли программа , а точнее принимает ли переменная double введенное число
Вот ссылка https://ideone.com/mIlxnR , объясните где и из за чего проблемы и помогите найти пути их решения
Ты вообще какой-то язык изучал? Сам или в универе? Почему именно шарп выбран?
Касательно твоей проблемы -
string firstm = Console.Readline();
double firstm = Convert.ToDouble;
firstm УЖЕ инициализирована и назначена, ты не можешь ее переназначит как double.
Это раз.
Два, твоя конвертация ничего не конрвертирует, ты вызываешь метод без параметров. IDE тебя об этом должен был уже предупредить ошибкой.
Правильно будет:
double firstm = Convert.ToDouble(Console.ReadLine());
Писал выше , что хотел проверить принимает ли моя переменная число
http://www.csharp-examples.net/filestream-read-file/
while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
Даже если файл 500 метров происходит всего лишь одна итерация чтения с буфером в 500 метров.
istinu glagolit
Написано же
>// read until Read method returns 0 (end of the stream has been reached)
Происходит не "одна итерация" а цикл работает пока есть байты для чтения.
https://msdn.microsoft.com/ru-ru/library/system.io.filestream.read(v=vs.110).aspx?f=255&MSPPError=-2147217396
Юзай лучше:
https://msdn.microsoft.com/ru-ru/library/system.io.file.readallbytes(v=vs.110).aspx?f=255&MSPPError=-2147217396
если тебе сразу нужно все в массив.
FileStream используется тогда, когда нужно по-шагам, с проверкой текущего результата или в случаях, когда нужно держать стрим.
Ну я создал файл на 500 метров.
Прочитал их с помощью этого цикла, один раз считало 500 метров и все. То же самое если бы я его не использовал. Чем определяется сколько этот метод за раз читает.
>>111871
Мне не подходит т. к. мне нужно учитывть особые атрибуты доступа из Fileshare, которые при чтении через FileStream можно задать.
>Чем определяется сколько этот метод за раз читает.
Ты долбишься? Я же запостил ссылку на док:
Может я чего-то не понимаю, но судя по тексту определяется параметром count сколько за раз байт читается. В примере этот каунт равняется длине файла. Мне непонятно зачем тогда цикл если мы сразу задаем буфер равным длине файла.
Вот тут нашел, что система не всегда отдает все байты которые запрашиваются и может быть ситуация что отдаст только часть, ожидая что в последствии программа сама обратится за остальным.
https://stackoverflow.com/questions/5075924/what-does-filestream-read-return-value-mean-how-to-read-data-in-chunks-and-proc
Свободный вариант .NET фреймворка, который работает в том числе и на линукс
do {} while(), или для этого другие какие-то конструкции используются?
В том смысле, что если сообщение дошло до сервиса, мне придёт в ответ копия JSON'а, который я отправил, а если не дошло - придёт сообщение об ошибке.
А если не дошло, у тебя таймаут эксепшон выпадет и ты уж как-нибудь сам его обработай.
Блэт, какой эксепшн. https://core.telegram.org/bots/api#sendmessage
Мне нужно повторить запрос, если в ответ не пришло моё же сообщение.
Так блядь вопрос изначально стоял "нормально ли использовать конструкцию do{}while() для этих целей, или это как-то иначе делается.
Хуйню какую-то сказали. Что значит "используй await"? Отправление http запроса и так await требует.
Ну так еб твою мать. Ты отправил свое жсон говно на сервер. Отправил. Ждешь. Ответа нет - таймаут эксепшен, в нем опять вызови отправку, хули ты выдумываешь какие-то лупы.
Потому что я пользуюсь такой конструкцией
HttpResponseMessage Response = await HttpClient.PostAsync(MethodURL, Query);
> HttpClient
У него есть таймаут проперти есличе. Ладно, я понял что ты извращенец и это у тебя не отдельный таск а какая-то херота внутри метода, бог с тобой, сделай while(true) в котором жди ответа и проверяй его, если то, что надо, то return;
Но вообще ебать сервер без остановки не разбираясь почему он твой запрос завернул это максимально хуевая практика.
Не тот анон, но причем тут многопоточность, когда ты неправильно обрабатываешь сценарий повисшего запроса.
Так я не ебу как обрабатывают в принципе. Потому и пишу пет-проджект.
Всегда же так, блядь - пишешь что-то сложнее хеллоуворлда и хуй проссышь как это делается, потому как не знаешь по каким словам гуглить даже.
>Всегда же так, блядь - пишешь что-то сложнее хеллоуворлда и хуй проссышь как это делается, потому как не знаешь по каким словам гуглить даже.
Хуле, жизнь такая.
>Async. A river rushes along with no interruptions. Now imagine another river some distance away. It too flows with no interruptions. A bird's song can be heard.
Поддвачну вопрос
и парралельно задам свой
Аноны я тоже дохуя вкатыватель в C#. Появилась возможность купить недорого книгу Изучаем C#. 2 издание пикрелейтед (С# 4.0 Visual studio 2010). Или подкопитть и взять 3-е издание. Во многих отзывах читал что 3-е издание (С# 5.0 Visual studio 2012) привязано к Windows 8 и к магазину который на нем и на Windows 10 не актуально.
Аноны критично ли на ваш взгляд различие в изданиях ?
даже не смотря на то что скорость нашего треда маленькая, я реально не встречал на просторах интернета более адекватного комьюнити.
схуя ли я троллю по твоему ? Я реально дохуя раз спрашивал у анона и всегда получал ясный ответ. Без лишнего пиздежа от том что я тупой.
Думаю для основ и старого издания хватит. А потом навернешь что-то поновее. Основы одни и те же. Сам я книгу не читал. Но реально по отзывам на русском ничего такого уровня поновее нет.
в цифре есть, но люблю читать с бумаги. Бумага как-то получше. А ты лучше погромираование учи чтоб на дошик хватило и на хлеб.
книга стоит 450 рублей. Тебе не кажеться что дешевле ее купить чем ебатся с покупкой бумаги и картриджей ?
>>112803
Я не рекомендую C-Player-s-Guide. Сам начал с него, но слишком уж поверхностно и разбавлено автор поясняет вещи. Например, когда дошло до boxing/unboxing и stack/managed heap я полгугла перерыл, дабы найти вменяемую и корректную информацию на тему.
В итоге, книгу так и не дочитал, понял, что фигня дикая. Сейчас банально вот гуглую артиклы разные и закусываю ответами со StackOverflow когда нужно в чем-то разобраться.
А в чем проблема ? Я в курсе что английский необходимо знать. Но сорян, превозмогать основы на английском я ебал.
мне кажется, это костыль. сделай либо систему оповещения, что не удалось связаться с сервисом N, если в процессе участвует пользователь, либо выстраивай порядок действий так, что при отсутствии связи с сервисом ты аварийно завершаешь весь основной процесс, опционально с логгированием.
>сделай либо систему оповещения
>опционально с логгированием
Не умею в логи на ажуре. В гайдах какая-то муть.
>при отсутствии связи с сервисом ты аварийно завершаешь весь основной процесс
Какой процесс-то? Сервер выключить чтоль? А если сообщение дошло в 6 из 7 чатов, к примеру?
Пилите перекат.
У меня есть TextBox, в который выводится какое-то значение из базы данных, приложение иногда синхронизируется с базой и если значение изменилось, то вызывает NotifyPropertyChanged и по нему обновляется Textbox.
Соответственно в текстбокс можно вводить какие-то значения и по нажатию на Enter записывать их в базу.
Проблема: Когда в текстбокс что-то вводишь и в этот момент происходит синхронизация с базой, если в ней уже измененное значение, то райзится PropertyChangedEventHandler и обновляется текстбокс прямо в момент ввода, что естественно неприемлимо.
Вопрос: Как игнорировать обновление текстбокса евентом PropertyChangedEventHandler в то время, когда данный текстбокс в фокусе, ну и чтобы остальные текстбоксы в это время нормально обновлялись, их штук 20 таких.
Блокируй интерфейс во время синхронизации в БД?
Нормально там все описано, примеры очень понравились. Ну блядь, галопом по европам, основы дает чисто с нуля, считаю, мастрид для вкатывальщиков. Затрагивает практически все, что требуется для не особо болезненного чтения чужого кода, при этом все разжевано, упорядочено и читать реально приятно. Ну а потом ясен хуй надо что-то серьезнее начинать читать, никто не спорит.
listBox1.Items.Insert(0, receivedString);
Большинство методов отправки запроса имеют асинхронную версию.
Это копия, сохраненная 31 января 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.