Христ, я хочу сказать одно, спасибо тебе огромное! Благодарю тебя за то что ты тот кто смог меня научить всему этому, я пересматриваю эти ролик спустя год что бы не упустить тонкости, я наконец-то смог создавать программы которые имеют спрос среди моих пользователей, спасибо тебе!
Привет. С удовольствием слушаю, что ты вещаешь. Благодарен за знания которые передаешь!! Слушать легко, интересно и довольно неплохо воспринимается и усваивается информация, это радует. За дельные советы, нюансы и фишки очень благодарен! Здорово, что даешь практичные и легко применимые примеры. В общем, подход дельный, береги себя, верь в себя, и продолжай в том же духе. По LINQ урок мне тоже оч понравился. ✊👍🙏
Наверное уже поздно но всё же. Мужик спасибо большое, нам дали задания (учусь на программиста) с или очень тупым или вовсе без объяснения. Посмотрел первые 5 мин ролика и уже сделал 80% задания. Просто огромное спасибо!!!
Спасибо большое написал программулину по выборке телефонных переговоров. Раньше тратил на эту лабуду полдня. Теперь все получается за доли секунд. Класс!
привет Хачатур спасибо за урок!мне 14 лет но я работаю в юнити и в будущем настроем на гейм дев, нужен си шарп, твои уроки это просто пушка. сделал дз, криво, но все вычисляется нормально и работает тоже.В основном был настроен на то чтобы разобраться с Replace, поэтому не особо заморачивался насчет мелких ошибок и вычитаний. bool fix = false; async private void button1_Click(object sender, EventArgs e) { if(fix == false) { textBox2.Text = File.ReadAllText(file2); await Task.Delay(3000); Method(); await Task.Delay(1500); button1.Text = "Исправлено"; await Task.Delay(500); fix = true; button1.Text = "Скопировать в буфер"; } else { Clipboard.SetDataObject(textBox2.Text); textBox2.Text = "Готово"; }
Всегда писал букву ё и никогда не понимал, почему так сложно удержать её на телефоне или ткнуть на клавиатуре. Как будто буква е дофига времени экономит. Сказал бы Я что экономит время. Уж точно не буква е.
Домашнее задание: Необходимо сделать программу, в которой должен быть TextBox и Button. 1. Пользователь должен вставить в поле любую статью или цитату из интернета. 2. Нажатие на кнопку исправит все слова еще на ещё, все равно на всё равно. 3. Нажатие на кнопку также должно расставить запятые по правилам русского языка. 4. Кнопка Исправить должна писать Исправлено после исправления. 5. Спустя пару секунд на кнопке должно быть написано Скопировать исправленный текст. 6. Текст, который исправлен в поле TextBox должен лететь в буфер обмена. 7. Кнопка пишет Скопировано в буфер обмена.
С двумя запятыми, красава, верный подход. Касаемо слово "все" - не факт, что там всегда буква ё. Поэтому предпочтителен перебор фраз "всё равно", "всё верно" и т.д.
С запятыми Игорь верно смекнул - нужно сначала заменить слово "пожалуйста" на "пожалуйста, ". Таким образом есть риск, что где-то появятся две запятые и он сразу же убирает их методом замены двух запятых на одну.
Посмотрел основу, все гуд, лайк, подписка)) В общем из пожеланий: пролистал плейлист, не нашел ничего про базы данных, а очень хотелось бы, дальше скажу почему. Предыстория: собственно почему стал учить C#, в общем то с программированием знаком, 2 года работал в веб-студии. Сейчас работаю на крупном заводе, большой парк компьютерной техники и для того что бы сотрудники моего IT-отдела пошли и исправили у кого то какие то неполадки с техникой, пользователь должен написать заявку, подписать у своего руководителя, подписать моим руководителем, потом должен подписать я и отдать заявку своему сотруднику что бы он что то пошел и сделал, хотя там и работы то на 5 минут, в общем советская бюрократия. К делу: хочу написать некое подобие электронного Документооборота. Программка, в ней заведены пользователи, у каждого есть права, допустим подача заявки, подписание документа, принятие в оборот и к примеру что бы пользователь по выполнению работ подтверждал выполнение. И что бы все это в базе хранилось и в любой момент, начальник мог посмотреть когда были заявки, сколько и как выполнялось. Для начала. В последствии перевести в программу все журналы работ, регистраций и прочей лабуды. Так что если есть знания работы с БД, поделись, очень нужно, у меня в них большой пробел, а у тебя все отлично получается объяснять. Ну и распределение прав, как это вообще работает и как это реализовать. А за курс огромное спасибо, Win 10 Tweaker пользуюсь, прога огонь, до просмотра курса не знал что ты ее написал. Продолжаю смотреть дольше. Спасибо все очень интересно.
С базой данных знаком и там как раз всё очень и очень просто. Знаний php нужно вот прям минимум. Когда сделаю видео, Ты будешь в шоке и одновременно в восторге от того, как легко и быстро сделать базу данных, а точнее, как вообще с ней работать. То есть как подключаться, как вносить изменения, как читать, как делать так, чтобы другие не могли ничего менять, а только читать. Как сделать так, чтобы никто не мог достучаться просто так и прочее и прочее. В одном небольшом видео будет полнейший охват вопроса и думаю все будут очень рады и удивлены тому, насколько это всё просто =) Это будет действительно очень простой урок. Даже mySql и php не нужно знать. Там нужен не просто минимум, а тупо шаблон, которым поделюсь. Но позже, сейчас очень занят и дела семейные не позволяют пока. Но курс продолжится с уклоном как раз на продвинутые вопросы и фичи. Я постепенно отмечаю для себя из комментов, какие темы приоритетнее. Но всё потом.
Возможность присваивания строковой переменной несколько строк продиктована тем, что тип string в C# воспринимается как последовательность (массив) символов.
Ассалому алайкум Хачатурака! За класные уроки огромный Рахмат!!! В качестве домашная задания написал программу каторий переводит Кирилский буквы на Латинский и обратно. Возник проблема с буквы "е"(кирилский) это букву надо читат как "э", местами "йе" для этого я написал это: ... else if(textBox1.Text.StartsWith("е")) textBox1.Text = textBox1.Text.Replace("е", "ye");// ("Узбекский кирил", "O`zbekcha lotin") else if (textBox1.Text.Contains("е")) textBox1.Text = textBox1.Text.Replace("е", "e"); ... тепер когда запускаю и набераю текст:"место елена" программа переводит "myesto yelena" пожалуйста, помогите как исправит. Знаю где ошибся но как решит незнаю.
Вы все методы класса String покажите . Когда показываете метод - говорите из какого он класса , потом будет удобнее его найти в справочнике или самоучителе . А вообще классные уроки !
Придумал вот: label1.Text = WriteLine(); В скобках нужно указать метод рандома из которого будет браться номер строки и указать путь к файлу в котором на каждой строке есть текст То есть текст лейбла равен рандомной строке из файла
19:21затем что именно возвращает и именно копию, то бишь на сому строку влияния не оказывает. Копирует строку, изменяет ее и возвращает обратно уже новую строку с новым адресом в памяти. laibel2.Text=label1.Text.ToLower() результат в лэйбле 1 строка остается без изменений в лэйбле 2 появляется новая строка идентичная строке в лэйбле 1 но все буквы в ней будут маленькими.
Вопрос по уроку. Как в массиве заменить все пустые строки(ячейки) когда в них вроде пусто а пробелов или нет или много в этом пустом. Как правильно записать код замены, по всему массиву где много строк, пустого на любое слово?
Придётся подождать до 20 урока. Крайне не советую бежать с этим вопросом вперёд, не узнав кое-что ранее. Очень важно первые 20 уроков посмотреть по порядку.
Уважаемый Хачатур! Не будет ли видео на тематику "О вкусах спорят"? Интересна именно ваша концепция. Просто бездна подводных потоков информации. Просто великолепно.
Спасибо тебе! Впервые я сделал код сам (ну почти (: ) Вот что получилось у меня: public partial class Form1 : Form { public Form1() { InitializeComponent(); } int i = 0; async private void button1_Click(object sender, EventArgs e) { textBox1.Text = textBox1.Text.Replace("Еще", "Ещё"); textBox1.Text = textBox1.Text.Replace("Все", "Всё"); while (i != 2) { i++; await Task.Delay(1000); button1.Text = "Копировать"; } Clipboard.SetDataObject(textBox1.Text); } }
2:31 Ох уж эта "C" или "с"... Тот самый случай, когда неосознанно повторяешь одну и ту же ошибку за маэстро 🙂 - спасибо русификации клавиатуры за это 😅
Привет! А можешь дать название книги или ссылку на урок, где объясняется вывод документа на принтер, ну типа как сделать накладную и вывести её на принтер. Спасибо!
Ведь теоретически может быть так, что во фразе ", пожалуйста," между первой запятой и буквой П может быть бесконечное количество пробелов, тогда вот такая замена не будет учитывать все случаи .Replace(" пожалуйста ", ", пожалуйста, ")
@@XpucT Trim же только в начале и в конце удаляет пробелы, перед первой запятой удалит и после второй, а между первой запятой и буквой П так они и останутся Не до конца понимаю просто как это сделать именно для всех случаев, а не только когда один пробел стоит всегда
@@1skyfallc Можно проверять на большую букву П. Вариантов много и вот тут действительно нужно учитывать всё, и пробелы, про которые Ты написал и отступы.
Мне понравилась идея в комментариях запихать сюда ещё и прогресс бар. Попытался реализовать его в привязке к ходу выполняемых операций по исправлению, привязав к переменной, чтоб была возможность в дальнейшем, с появлением новых операций по проверке текста, изменять процент заполнения полоски. Понятно, что там на выполнение всего кода уходят доли секунды и заполнение прогресс бара будет не заметно, поэтому навтыкал делеев, по другому не придумал как сделать) Кстати, вот тоже интересно почему если задержка меньше 1 секунды, то анимация заполнения полосы не доходит до конца? Приходится ставить дополнительную задержку после цикла for, чтобы видно было полоску при 100% Реализовал через свитч кейс, т.к., мне показалось, что в таком виде удобнее дополнять список новых правил проверки, плюс хорошо видно их количество для того чтобы присвоить значение переменной num. async void Button1_Click(object sender, EventArgs e) { if (textBox1.Text != "") { int num = 12; //количество операций по исправлению progressBar1.Visible = true; for (int i =0; i
Немного модифицировал код, мне показалось, там слишком много повторяющихся элементов и сделал функцию возвращающую две текстовые переменные. Пришлось только погуглить как объявить такую, а дальше методом тыка разбирался как это со свитч кейсом заставить работать. Хотел запихнуть ретёрн сразу туда, но выдавало ошибку, пришлось вводить ещё дополнительную переменную. Наверняка очередной говнокод, но это такой кайф, когда оно начинает работать как ты хочешь)) async void Button1_Click(object sender, EventArgs e) { if (textBox1.Text != "") { int num = 12; //количество операций по исправлению progressBar1.Visible = true; for (int i = 0; i < num; i++) { textBox1.Text = textBox1.Text.Replace(Nabor(i).Item1, Nabor(i).Item2); progressBar1.Value += 100 / num; await Task.Delay(3000 / num); } progressBar1.Value = 100; await Task.Delay(1000); button1.Text = "Исправлено"; progressBar1.Visible = false; progressBar1.Value = 0; await Task.Delay(2000); Clipboard.SetDataObject(textBox1.Text); button1.Text = "Скопировано в буфер обмена"; } else { button1.Text = "Введите текст"; await Task.Delay(2000); button1.Text = "Проверить"; } } (string, string) Nabor(int num) { (string, string) a = ("", "");
switch (num) { case 0: a = ("Ерш", "Ёрш"); break; case 1: a = ("ерш", "ёрш"); break; case 2: a = ("Все же", "Всё же"); break; case 3: a = ("все же", "всё же"); break; case 4: a = ("Ежик", "Ёжик"); break; case 5: a = ("ежик", "ёжик"); break; case 6: a = ("нес", "нёс"); break; case 7: a = ("Нес", "Нёс"); break; case 8: a = ("Пожалуйста ", "Пожалуйста, "); break; case 9: a = (" пожалуйста ", ", пожалуйста, "); break; } return a; }
06:00 При чтении из файла Лейбл выдает только ??????? в черных ромбиках, вместо русского шрифта. Как это можно поправить? PS string line = File.ReadAllText(@"C:\Users\IDis\Desktop\1.txt"); label1.Text = line;
@@BobiBobObana помните файл, который открывал на рабочем столе? Внёс туда текст "Слово, просто слова". Потом упрекнул как раз Microsoft.... потом исправил, сохранив Блокнот в Unicode...
Привет, Хачатур! Мой недокод по ДЗ) Не очень понял одно, если вместо "" написать null, как в первом варианте if'а, то месседж не выдаст ошибку, хотя по идее что "", что null это пустота, ничего. Или я что-то не понимаю? public Form1() { InitializeComponent(); } void Form1_Load(object sender, EventArgs e) { button1.Text = "Исправить"; label1.Text = "Введите текст который хотите исправить..."; } async void button1_Click(object sender, EventArgs e) { if (button1.Text != "Скопировать") { if(textBox1.Text == "") { MessageBox.Show("Введите текст для исправления.", "Ошибка!", MessageBoxButtons.OK); } else { textBox1.Text = textBox1.Text.Replace("еще", "ещё").Replace("пожалуйста ", "пожалуйста, ").Replace("все", "всё"); await Task.Delay(1000); button1.Text = "Скопировать"; } } else if (button1.Text != "Исправить") { Clipboard.SetText(textBox1.Text); button1.Text = "Исправить"; label1.Text = "Скопировано!"; await Task.Delay(1000); label1.Text = "Введите текст который хотите исправить..."; }
Привет 🖐 Не совсем. null - это действительно пусто. "" - это когда значение есть, но оно пустое. null - это когда значения нет. Это станет понятнее на примерах в следующих видео с реестром, где пустой параметр и параметр с пустым значением - это разные вещи.
Отличная идея, можно сделать прогу которая будет почти все слова, содержащие "е" вместо "ё" заменять на правильное написание с "ё". Есть одна веб страница со списком, якобы, всех русских слов, содержаших букву "ё" Только я не умею в парсинг веба пока чт
Привет, XpucT, написал секундомер через stopwatch , и возник вопрос. В программе выполняется бесконечный цикл в Metod(), и хотелось бы чтобы при нажатии на Stop программа выходила из этого цикла, а как это сделать я что-то не могу понять //Секундомер Stopwatch Vremya = new Stopwatch(); async void Metod() { await Task.Run(() => { for(; ;) { label1.Text = Vremya.Elapsed.ToString(); } }); } void Button1_Click(object sender, EventArgs e) { Vremya.Start(); Metod(); // как мне из него выйти повторным нажатием Button btn = sender as Button; btn.Text = "Stop"; btn.Click -= new EventHandler(Button1_Click); btn.Click += new EventHandler(Button1_Click_1); } void Button1_Click_1(object sender, EventArgs e) { Vremya.Stop(); label1.Text = Vremya.Elapsed.ToString(); Button btn = sender as Button; btn.Text = "Start"; btn.Click -= new EventHandler(Button1_Click_1); btn.Click += new EventHandler(Button1_Click); } void Button2_Click(object sender, EventArgs e) { Vremya.Reset(); label1.Text = Vremya.Elapsed.ToString(); } //
Привет 🖐 Прямая ссылка на Мой ответ (похожий вопрос): ua-cam.com/video/1AiKew-XQsk/v-deo.html&lc=Ugz3tr7NCpDesntMog54AaABAg.995RJI_Vi0x995Sxj6fLOl Открывай с компа ссылку, чтобы внизу развернулся Мой ответ 👍
Не знаю можно ли скидывать код, но очень хотелось бы чтобы вы сказали мне как сократить все проверки на то, где стоит слово. Допустим *наверное* стоит в конце с точкой или в середине. Очень растягивает код. Можно чтобы я скинул код и вы проверили домашнее задание и помогли?
Приветствую всех,знаю что видео уже как год на канале,но может хоть кто и ответит)))Проблема в том, что когда читаю текст в файле как в видео,то вместо русских символов выходят знаки вопроса а с латиницей всё нормально,как быть?Я так понял проблема в какой-то кодировке,так вот как это настроить,видать надо в настройках программы полазить?Сам новичок я в winforms,обычно работаю с железом на C++,VisualStudio2019 у меня и решил подружить компьютер с микроконтроллером.
Нужно сохранять файл в кодировке Unicode, иначе действительно будет всё коряво со знаками вопроса. Но если файл нельзя изменить, то можно изменить кодировку на лету. Пример: File.ReadAllText(@"C:\Сергей Тиркин\Файл.txt", Encoding.GetEncoding(1251);
@@XpucT ,не фига се быстро ответили)))Хачатур, спасибо большое за уроки,очень помогают мне в изучении C#,продолжай в том же духе!Не планируешь ли сделать видео по работе с ком портом,хотя я вроде как разобрался,но интересно было бы узнать ваше мнение.Ещё раз благодарю!!!!
А как удалить все слова которые мы выбрали (например если их в тексте несколько одинаковых), у меня просто удаляет первое из этих слов. Например: "Сжатие", встречается несколько раз, но удаляется только первое на которое наткнулась программа. Спасибо
Если коротко, то например: string path = @"C:\Пример\Файл.txt"; string line = File.ReadAllText(path); line = line.Replace("Искомое слово", ""); File.WriteAllText(path, line);
Хотел сделать progressbar(continue), но когда ставлю Task.Deley меньше 1000 анимация не успевает идти одновременно с счетчиком(проверял через лейбл) по-этому, красоты поставил progressbar(marquee), вот сам код(надеюсь вы еще читаете коментарии ) using System; using System.Drawing; using System.IO; using System.Threading.Tasks; using System.Windows.Forms; namespace трень { public partial class Form1 : Form { public Form1() { InitializeComponent(); } bool done = false; private async void button1_Click(object sender, EventArgs e) {
@@XpucT Код писал по видео, всё работает, но русские символы пишутся под знаком "?", а английские нормально показывает string line = File.ReadAllText(@"D:\Рабочий стол\Sasha\PROGIS\черновик.txt"); label1.Text = line;
На самом деле очень качественные уроки, но главное проблема в том, что не используешь консоль. Поверь, графическая оболочка не самый лучший вариант. У меня есть база знаний, из-за этого так говорю.
9 из 10 благодарны за то, что обучаю не просто языку, а применению. При чём не на сложном в понимании новичка MVVM или бестолковом Console, а на живом примере. Круглый год такие комменты и да, это Я предугадал сразу. Иначе человек с нулевым знанием не знает что к чему привязать. Нужны всегда живые примеры и ошибки. Без них урок не усваивается с первого раза.
Здравствуй, Хачатур! Вот дз)) Сложнее всего было сделать так чтобы кнопка выполняла сразу несколько функций. В итоге придумал чтобы if сравнивал название кнопки, а потом выполнял действие. И такой вопрос: есть ли нормальный способ чтобы кнопка разные функции выполняла? using System; using System.Threading.Tasks; using System.Windows.Forms; namespace Поправлятор { public partial class Form1 : Form { public Form1() { InitializeComponent(); } async void Button1_Click(object sender, EventArgs e) { if (button1.Text == "Скопировать") { Clipboard.SetDataObject(textBox1.Text); button1.Text = "Скопировано в буфер обмена"; await Task.Delay(2000); button1.Text = "Исправить новый текст?"; } else if (button1.Text == "Исправить") { string[] lines = textBox1.Lines; foreach (string word in lines) { textBox1.Text = textBox1.Text.Replace("еще", "ещё"); textBox1.Text = textBox1.Text.Replace("все равно", "всё равно"); textBox1.Text = textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, "); textBox1.Text = textBox1.Text.Replace("Пожалуйста ", "Пожалуйста, "); textBox1.Text = textBox1.Text.Replace("Здравствуйте ", "Здравствуйте, "); textBox1.Text = textBox1.Text.Replace(" а", ", а"); textBox1.Text = textBox1.Text.Replace(" но", ", но"); textBox1.Text = textBox1.Text.Replace(",,", ","); } button1.Text = "Исправлено"; await Task.Delay(2000); button1.Text = "Скопировать"; } else { button1.Text = "Исправить"; textBox1.Text = ""; } } } }
Можно сделать булевое значение, например: bool working = false; На лету его менять или проверять. if (working) работает else не работает Не забываем на лету менять значение, когда это нужно 👍
Спасибо за крутой урок!) Кстати я уже дня 3 борюсь с багом, может у вас будут идеи. Дело в том что я написал сервер, и чат на нем реализовал через json, и получается что когда один клиент отправляет второму сообщение, то он находит его текстовый файлик, и вписывает в него это сообщение, и если выйти с сервера нормально, т.е закрыть сокет и все такое, то нет проблем, ну а если просто закрыть клиент не по правилам, то при попытке прочитать это сообщение, сервер начинает глючить, второй клиент не может получить доступ к файлу. Можно ли как-то освободить файлик? Ну т.е закрывать процесс, что бы он не мешал, т.е записал и освободил. Я рылся в сети, пишут про потоки, то что можно через поток текст передать, и просто закрывать поток, но я что-то сомневаюсь что это поможет, а вы как думаете?
@@XpucT т.к. написать в теме сейчас нельзя, напишу здесь. Есть предложение по твикеру - сделать подсветку Shift + ПКМ серым если он применен и белым если нет. В тех пунктах где он есть конечно.
А теперь вариант кода для тупых, как я. Я сделал так: сперва составил текст, в котором будет проверяться нужный сценарий: "Все все еще все равно не собрались. Пожалуйста собирайтесь. Все все еще все равно не собрались пожалуйста собирайтесь. Все все еще все равно не собрались. Собирайтесь пожалуйста." Затем, не прибегая к шпаргалкам, написал самый простой код, там даже скобки вроде можно поставить, но я не стал. По-моему это получится у каждого: using System; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } async void Button1_Click(object sender, EventArgs e) { textBox1.Text = (textBox1.Text.Replace("все " + "равно", "всё " + "равно").Replace("все " + "еще", "всё " + "ещё").Replace("еще", "ещё").Replace("Пожалуйста", "Пожалуйста,").Replace("пожалуйста", ", пожалуйста,").Replace("пожалуйста.", ", пожалуйста.").Replace(".,", ".").Replace(" ,", ",").Replace(",.", ".")); button1.Text = ("Исправлено!"); await Task.Delay(1000); button1.Text = "Скопировать в буфер"; Clipboard.Clear(); Clipboard.SetDataObject(textBox1.Text); } } } Работает, исправляет нужный текст, убирает лишние знаки, копирует в буфер. З.Ы. как тут через массивы можно сделать не понял, ведь в примерах с массивами был выбор одного и того же в теле массива, но с разными версиями строк (и т.п.).
Интересно, я туповат, или не понял нюанса задания? То есть, если нужно исправить определенные слова, то обязательно писать тучу строк кода? Если к примеру после "пожалуйста" есть пробел, значит слово не последнее в предложении, и его можно исправлять. Просто меня немного напугали решения в комментариях, ибо у меня вышла простейшая ерунда, которая в принципе сработала на моём примере. async void button1_Click(object sender, EventArgs e) { if (button1.Text == "Исправить") { string line = textBox1.Text; textBox1.Text = line.Replace("пожалуйста ", "пожалуйста, ").Replace("еще", "ещё"); button1.Text = "Исправлено"; await Task.Delay(2000); button1.Text = "Скопировать"; }
else if (button1.Text == "Скопировать") { Clipboard.SetDataObject(textBox1.Text); }
Дружище, есть у тебя видосы про формы, написал авторизатор, он все норм заходит регается и сворачивается и сразу же запускается второе окно, в этом окне расположен основной функционал, когда жму на кнопку запустить ни чего не происходит, переношу этот же код в первую форму там все норм работает, пробовал уже все что мог найти в инете по C#, пишут что фокус надо переводить на вторую форму, но я начинающий, как неделю назад начал что то писать и много еще чего не понимаю,а то что пишут в инете не рассказывая что ставить куда ставить хз, я поставил ни чего не работает, думаю или я что то не делаю или это не работает))) короче удалил вторую форму сделал на одной, но сегодня понял что надо возвращать вторую форму.
Если формы не связаны, значит нужны либо делегаты контролам, либо открывать вторую форму и делать её дочерней. На канале про это не было, но обязательно будет. А пока могу дать просто рекомендацию начать искать ответ на cyberforum. Там есть тема типа «7 популярных вопросов, касающихся форм». И там много ответов на вопрос, как сделать что-то из второй формы.
Снова привет, Хачатур. Не подскажешь в чём проблема? При чтении файла с русским текстом ловлю это prntscr.com/ohs00e, также почему то ничего не выводит данный код prntscr.com/ohs2gy (текст брал тот же, от Win10 Tweaker`a)
Не пропускай уроки и не опережай их ;) Говорил, что текстовый файл должен быть в кодировке UTF-8. Если используешь родной блокнот, а не Notepad++, то нужно обязательно _Сохранить как_ И там выбираешь Unicode или UTF-8.
Привет . Ролик очень сильно помог - спасибо . Но у меня остался один вопрос : Как можно заменить в текствовом документе целую строку на свой аналог ? Наглядно : Files: File.1 = C\text\Text1.txt File.2 = C\text\Text2.txt File.3 = C\text\Text3.txt ... Нажимаем конпку " Files: File.1 = C\text\Text1.txt File.2 = C\text\Text2aaa.txt File.3 = C\text\Text3.txt ... Я сделал так , чтобы программа определяла по большей части текста строку , но далее я встрял . Я ещё мало знаю о С# , поэтому возможно я и не могу найти ответ на свой вопрос .
Домашнее задание: string text = File.ReadAllText(@"C:\Users\ultra\Desktop\1.txt"); bool textFixed = false; //переменная для проверки изменён ли текст public Form1() { InitializeComponent(); }
private void btnChange_Click(object sender, EventArgs e) { if (!textFixed) // если не изменён { text = Change(text); // изменяем tbInput.Text = text; // перезаписываем btnChange.Text = "Исправлено после исправления"; textFixed = true; //указываем,что текст изменён Task t = new Task(RenameButton); //вызываем задержку предлагаем сохранить текст t.Start(); } else //если текст изменён, { WriteInMemory(); // записываем текст в память btnChange.Text = "Текст скопирован в буфер"; } } void RenameButton() //метод задержки { Thread.Sleep(2000); btnChange.Text = "Скопировать исправленный текст?"; } string Change(string text) // метод изменения (подсмотрел его в коментах) { text = text.Replace("еще", "ещё"); text = text.Replace("все верно", "всё верно"); text = text.Replace("все равно", "всё равно"); text = text.Replace(" если", ", если"); text = text.Replace("пожалуйста", "пожалуйста,"); text = text.Replace(",,", ","); // в случае *пожалуйста, если вы ....* получается *пожалуйста,, если вы ...* text = text.Replace(",,", ","); // это убирает баг описанный выше return text; } void WriteInMemory() // метод записи в память { Clipboard.SetDataObject(text); }
Затем, что покодишь столько сколько Я с виндой играюсь и поймёшь, что откаты нужны постоянно. Рассказывалось об этом в Уроке 1. Были также случае, где даже на стримах показывал, что будет если... И всё, прощай Windows. А виртулку можно быстро откатить. Понятно, что если играться с банальным калькулятором или делать игру - для этого виртуалка не нужна. А вот серьёзные сетевые хаки, политики и прочее очень желательно не трогать в живой среде Windows. Накроешь свою винду и даже не узнаешь порой. Те же патчи и прочее. Нужно сразу привыкать серьёзные вещи делать только на виртуалке и только после тщательного тестирования переходить на живую среду. При этом, как видно, в производительности ничего не теряешь на виртуалке и всё так работает сверх быстро, как мы видим на компе 5-ти летней давности.
@@XpucT Ну, хз, я уже давно ушел от основ, на видос наткнулся от скуки, вот стало интересно. Так как в первые такую практику вижу. Обычно юзают, Песочницу или же Docker. Чтобы прям в VirtualBox писали код, вижу в первые. Чисто из за безопасности системы, OK. Вопросы отпали.
@@onecelldm помимо безопасности, есть неотъемлемая практика - патчинг системных библиотек. При том, что нужно помнить, что патч - это не замена одного файла на модифицированный, а сам процесс патчинга, dll к примеру. Например, в Win 10 Tweaker реализован патчинг dll, отвечающий за отображение раздражающий плашки языка справа в Windows 10 (ua-cam.com/video/RXmQ9IuIGLc/v-deo.html) в реальном времени. Я не заменяю файл, а делаю бэкап оригинальной библиотеки и патчу оригинал на лету, переписывая байт-последовательность. Делать это на реальной винде чревато тем, что права системе уже не вернёшь. Да, есть sfc /scannow, есть восстановление прав из безопасного режима, но эти танцы с бубном отнимают очень много времени. А так, просто сделал снимок системы, протестировал твик, всё работает, протестировал на других виртуалках и версиях Windows, и, если всё работает, переходим в живую среду Windows. Таких примеров можно привести очень много. Тем не менее, если у человека даже банальная задача создать плеер или текстовый редактор, были случаи, когда Live Share обновился на VS 2017 и накрывал при этом свой же функционал в VS 2019. Отката не задумано. Удаление не работает, потому что видишь ли он уже в процессе. Где-то что-то там записал и всё, тупик. Жди пока исправят баг. А зачем ждать, если есть виртуалка. Песочницы удобны как раз в реальной винде, когда делаешь первый тест. Очень много раз спасал Shadow Defender (ua-cam.com/video/GiPgdYEVIo0/v-deo.html) и Sandboxie (ua-cam.com/video/ii_t-FuEeZs/v-deo.html).
@@XpucT хорошо, спасибо за инфу, приму к сведенью, правда патчить либы и тд ещё не нужно было, так как такой задачи никогда не стояло, а твоим твикером пользовался для удаления метро приложений.
Вот мое дз public partial class Form1 : Form { int i = 0; public Form1() { InitializeComponent(); } private async void Button1_Click(object sender, EventArgs e) { i++; // Прибавляем к i 1 if (i == 2) { goto Sas; } //Условие если счетчик равен 2, то переход к исполнению кода из этикетки else { textBox1.Text = textBox1.Text.Replace("еще","ещё").Replace("Все равно", "Всё равно").Replace("все равно", "всё равно"); //Заменяем слова или буквы в словах в определенных случаях textBox1.Text = textBox1.Text.Replace(" что", ", что").Replace("пожалуйста", "пожалуйста, ").Replace(" а", ", а").Replace(",,", ","); // Расставляем запятые (рассмотрены не все случаи) textBox1.Text = textBox1.Text.Trim(); //Удаляем лишние пробелы между словами await Task.Delay(500); //Задержка на пол секунды button1.Text = "Исправлено"; await Task.Delay(500); //Задержка на пол секунды button1.Text = "Скопировать в буфер обмена"; } return; //Не выполнять код ниже Sas: //Этикетка Clipboard.SetDataObject(textBox1.Text); //Сохраняем в буфер button1.Text = "Скопировано"; textBox1.Text = ""; i = 0; //Обнуляем счетчик } } }
Привет 🖐 У Тебя return находится в button, хотя button относится к void. Если создать отдельный метод string, тогда можно возвращать (return) что-то в виде текста.
@@XpucT Хачатур, привет! Ты даже не можешь себе представить, сколько ты дал мотивации, просто ответив мне на комментарий. Решил сделать во чтобы то ни стало. Время 8 вечера, но я сделал. Да есть костыли (теперь я наверное точно знаю, что имеется ввиду когда это говорят), где-то уже подбором делал - но это работает. Доволен шо капец. Спасибо тебе, перехожу на следующее видео и плейлист по винде, там пока для меня все темно. Ну и мой код на проверку запятых)) string PleaseCheck(string str) { string strWithUpLetter; //массив букв искомого слова char[] searchWord = { 'п', 'о', 'ж', 'а', 'л', 'у', 'й', 'с', 'т', 'а' }; /*массив чисел, которые отображают индекс буквы "п" слова "пожалуйста", размер ставлю по размеру исходного массива, т.к. по условию задачи, больше точно не нужен.*/ int[] indexRightFirstLetter = new int[str.Length]; int firstLetter = 1; int countWordsPlease = 0; //Недопускаем индекс массива -1, если фраза начинается со слова пожалуйста strWithUpLetter = str.Substring(0, firstLetter).ToUpper() + str.Substring(firstLetter); //Проверяем наличие слова пожалуйста if(strWithUpLetter.Contains("пожалуйста")) { char[] arraySourceString = strWithUpLetter.ToCharArray(); for (int i = 0; i < arraySourceString.Length; i++) { for (int j = i; j < (searchWord.Length + i) &&j
Христ добавь пожалуйста в Windows 10 tweaker рекомендуемые настройки от тебя.Тоесть добавь функцию которая позволит настроить пк через Windows tweaker автомотически и правильньно без ошибок
Win 10 Tweaker имеет только те твики, которые применяю Я лично. В программе никогда не было и не будет ничего, чем не пользовался бы Я сам. Поэтому безопасно рекомендую каждый твик без исключения. Бывают такие VPN-клиенты, которым необходима служба DNS-клиент. Кто пользуется обновлением, кто-то не удаляет плиточные приложения. И поэтому есть выбор для каждого - делать что-то или нет. Я же делаю всё без исключения на любых компах. Всегда и всё безопасно, если при этом не твикать систему другими сомнительными программами. Даже страховочное соглашение гласит, что нужно делать всё на нормальной винде, а не на той, которую так урезали, что всё летит. Win 10 Tweaker работает исходя из всех адекватных сценариев состояния ПК. А вот, например, отсутствие cmd или PowerShell даже не учитывает, потому что неизвестно кем нужно быть, чтобы их вырезать. Надеюсь, понятно =)
Ну и по традиции, я не знаю с чего начать писать код.... ПЗДЦ. Я дико извиняюсь))) код читаю, понимаю, как начать писать то всё пиши пропало как говорится...
в первые вообще домашнее задание выполнял, никогда не мог! отвечаю ни разу не получалось. а тут вот родил уродца -)) немного поменял текст задания. чтоб не повторятся -) короче текст должен быть такой.- Дай мне пожалуйста еще вещей. (по принципу все, всё) и вот решение: async void button1_Click(object sender, EventArgs e) { textBox1.Text= textBox1.Text.Replace("еще", "ещё").Replace("вещёй", "вещeй").Replace("пожалуйста","пожалуйста,").Replace("пожалуйста,,", "пожалуйста,"); button1.Text = button1.Text.Replace("Исправить", "Исправлено"); await Task.Delay(1000); button1.Text = button1.Text.Replace("Исправлено", "Скопировать"); Clipboard.SetDataObject(textBox1.Text); }
По ДЗ: как сделать так, чтобы вместе с "скопировано в буфер", текст в "textbox1" выделился ну скажем синим цветом? Кто подскажет? void button1_Click(object sender, EventArgs e) { textBox1.Text = textBox1.Text.Replace("е", "ё").Replace("Еще", "Ещё"); Method("Иcправлено", 1000); if (textBox1.Text.Contains("пожалуйста")) { textBox1.Text = textBox1.Text.Replace("пожалуйста", ", пожалуйста,"); } Method("Скопировать в буфер обмена", 2000); Clipboard.SetDataObject(textBox1.Text); //
Д/З сделано - работа со строками не проходит даром 👌 (найденная мной бредовая «рыба» будет под этим комментарием 📄): using System; using System.IO; using System.Threading.Tasks; using System.Windows.Forms; namespace HomeWork { public partial class Form1 : Form { int click = 0; public Form1()[...]
Скажите пожалуйста, курс на социально-ориентированный национальный проект способствует повышению актуальности дальнейших направлений развития проекта? Задача организации, в особенности же консультация с профессионалами из IT способствует подготовке и реализации системы обучения кадров, соответствующей насущным потребностям! Соображения высшего порядка, а также дальнейшее развитие различных форм деятельности все равно зависит от ключевых компонентов планируемого обновления! С другой стороны сложившаяся структура организации влечет за собой еще и процесс внедрения, а также модернизации модели развития. Тем не менее постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание ключевых компонентов планируемого обновления. Значимость этих проблем должна быть очевидна большому кругу лиц однако реализация намеченного плана развития может серьезно повлиять на весомую часть направлений прогрессивного развития. Таким образом , новая модель организационной деятельности требует от нас системного анализа соответствующих условий активизации... 😏😅
ув.Хачатур привет у меня уже мозг закипает (по домашнему заданию :) ) вот моя первая часть кода: async void button1_Click(object sender, EventArgs e) { { textBox1.Text = Clipboard.GetText(); await Task.Delay(1000); textBox1.Text = textBox1.Text.Replace("еще", "ещё").ToUpper(); button1.Text = button1.Text.Replace("Исправить текст", "Исправлено"); } } void textBox1_Click_1(object sender, EventArgs e) { textBox1.Text = ""; } в этой первой части кода у меня меняет название кнопки и копирует из буфера текст и помещает его в textbox1. но вот вторую часть не могу сообразить, чтоб копировало этот же текст по второму нажатию (мозг закипает). думал может так: // if (textBox1.Text.Contains("ВСЁ")) // { // textBox1.Text = Clipboard.SetDataObject(); // await Task.Delay(1000); // button1.Text = button1.Text.Replace("Исправлено", "Скопировано в буфер"); // } // else; но тоже не работает. Чувствую буду долго кумекать)))) P.S. многие тут писали за тобой, типа из файла копировать и т.д. я же постарался и нашел вариант который работает из буфера сразу.
Могу похвалить за внимательность и попытку выполнить строго сказанное задание, однако, даю добро создать отдельную кнопку, ибо на самом деле в реале редко будет одна кнопка выполнять разные действия. Очень редко. Но, опять же, похвально, что решил бахнуть всё с одной кнопки. Так или иначе, чтобы переписать кнопку под новые сценарии (если прям запариться), то первое, что приходит в голову - проверять текст самой кнопки. То есть, если в кнопке на данный момент прописано _Исправить,_ то она выполнит именно исправление. Если _Скопировать,_ то, соответственно, копирует исправленный результат. Отталкивайся от этого 👍
@@XpucT спасибо, завтра буду кумекать. А с двумя кнопками я делал и у меня работало (вроде) , только я не стал писать сюда и спрашивать, хочу именно по твоим словам сделать, думаю много это времени займёт 😁😁но буду стараться. Иногда бывает так, что в голове ты понимаешь и вроде все логично, но как начинаешь писать код, то сразу начинается ж*па😢, но это не хватает опыта и программного мышления. Спасибо тебе.
@@XpucT Привет если делать задание с помощью двух кнопок, то я сделал так: using System; using System.Threading.Tasks; using System.Windows.Forms; namespace copygotova { public partial class Form1 : Form { public Form1() { InitializeComponent(); } async void button1_Click(object sender, EventArgs e) { string ispravleno = "Исправлено"; // string scopy = "Скопировать текст"; { button1.Text = ispravleno; // textBox1.Text = Clipboard.GetText(); textBox1.Text = textBox1.Text.Replace("еще", "ещё").ToUpper(); await Task.Delay(2000); } } void textBox1_Click(object sender, EventArgs e) { textBox1.Text = ""; textBox1.Text = Clipboard.GetText(); } void button2_Click_1(object sender, EventArgs e) { Clipboard.SetDataObject(textBox1.Text); } } } //может и плохой код))) но свою задачу выполняет пока не могу разобраться чтоб на одну кнопку назначить несколько событий, но понимаю (твою подсказку). т.е. нужно сделать если в button1.Text поменялось свойство Text , то нужно сделать второе действие например скопировать текст в буфер пример if (button1.Text=button1.Text"Исправлено") то скопируй текст Clipboard.SetDataObject(textBox1.Text); как то так)) но воплотить чтоб работало, нема опыта.
ув.Хачатур Привет кажется я добился первого правильного решения блока твоего вопроса)) вот мой код получился: using System; using System.Threading.Tasks; using System.Windows.Forms; namespace copygotova { public partial class Form1 : Form { public Form1() { InitializeComponent(); } async void button1_Click(object sender, EventArgs e) { textBox1.Text = Clipboard.GetText(); await Task.Delay(2000); textBox1.Text = textBox1.Text.Replace("еще", "ещё").ToUpper(); button1.Text = button1.Text.Replace("Исправить", "Исправлено"); if (button1.Text == "Скопировать текст") { Clipboard.SetDataObject(textBox1.Text); } await Task.Delay(2000); button1.Text = button1.Text.Replace("Исправлено", "Скопировать текст"); } void textBox1_Click(object sender, EventArgs e) { textBox1.Text = ""; } } } вот .exe программы, я закинул (https: // www. upload.ee/download/14832090/531e929498fb1c48882d/copygotova.exe) в ссылке сделал 3 пробела ((https: // www. ) их нужно убрать, чтоб ютуб пропустил P.S> переходим ко второй части со словом "Пожалуйста " textBox1.Text = textBox1.Text.Replace("Пожалуйста", "Пожалуйста,") ....... сейчас на metanite нашёл Compare (Сравнение строк), наверно с ним нужно работать....(https: // metanit.com/sharp/tutorial/7.2.php)
@@XpucT Привет сегодня добился результата по поводу слова пожалуйста с "," вот мой код: async void button1_Click(object sender, EventArgs e) { textBox1.Text= Clipboard.GetText(); textBox1.Text = textBox1.Text.Replace("все", "всё").Replace("еще", "ещё").Replace("пожалуйста,", "пожалуйста"); if (textBox1.Text.Contains("пожалуйста")) textBox1.Text = textBox1.Text.Replace("пожалуйста", "пожалуйста,"); } P>S. мне можно идти дальше, или на твой взгляд нужно еще изучать все до 21-го урока по новой? Пока трудно с логикой и с правильным ходом мысли(что за чем должно идти в коде). вот ссылка ( www .upload.ee/download/14837770/8202218498851c4b259c/Desktop.rar) по ссылке мой текст в текстовом файле, который я копирую в буфер и работаю с программой тоже по ссылке)
@@XpucT честно сказать, голова болела, пока эту последовательность уловишь, но не хотел двигаться дальше, чтоб не забивать голову. Спасибо, иду дальше.
Ассалому алайкум Хачатурака! За класные уроки огромный Рахмат!!! В качестве домашная задания написал программу каторий переводит Кирилский буквы на Латинский и обратно. Возник проблема с буквы "е"(кирилский) это букву надо читат как "э", местами "йе" для этого я написал это: ... else if(textBox1.Text.StartsWith("е")) textBox1.Text = textBox1.Text.Replace("е", "ye");// ("Узбекский кирил", "O`zbekcha lotin") else if (textBox1.Text.Contains("е")) textBox1.Text = textBox1.Text.Replace("е", "e"); ... тепер когда запускаю и набераю текст:"место елена" программа переводит "myesto yelena" пожалуйста, помогите как исправит. Знаю где ошибся но как решит незнаю.
Христ, я хочу сказать одно, спасибо тебе огромное! Благодарю тебя за то что ты тот кто смог меня научить всему этому, я пересматриваю эти ролик спустя год что бы не упустить тонкости, я наконец-то смог создавать программы которые имеют спрос среди моих пользователей, спасибо тебе!
Спасибо Тебе 🤝
Я очень рад, что Ты продвинулся дальше многих 👏
Будут ещё уроки. Довольно актуальные в эпоху сети ;)
ахахах, дал домашку, сам ее и сделал, классный подход к подаче материала👌
Ну ты, не смотря видос, повтори)
Если ты совсем новичок, то затупишь всё равно)
@@ГришаГрибов-я3д ну тут может и твоя правда, я не новичок, не могу объективно оценить
@@ГришаГрибов-я3д я в плюсах уже достаточно наработался со строками 😂
А тут домашка - запомни пару методов, используй
Дядя ты лучший! столько полезной инфы и так быстро и доходчиво!!!
Привет. С удовольствием слушаю, что ты вещаешь. Благодарен за знания которые передаешь!! Слушать легко, интересно и довольно неплохо воспринимается и усваивается информация, это радует. За дельные советы, нюансы и фишки очень благодарен! Здорово, что даешь практичные и легко применимые примеры. В общем, подход дельный, береги себя, верь в себя, и продолжай в том же духе. По LINQ урок мне тоже оч понравился. ✊👍🙏
Я ж и говорю, 60% времени вы тупите.
Ахахахахаахах. ТЫ НЕДООЦЕНИВАЕШЬ МОЮ МОЩЬ!!!!11111
Христ этот очень полезный и нужный урок, блин помню когда я все это делал руками. Спасибо большое за урок.
Наверное уже поздно но всё же.
Мужик спасибо большое, нам дали задания (учусь на программиста) с или очень тупым или вовсе без объяснения.
Посмотрел первые 5 мин ролика и уже сделал 80% задания. Просто огромное спасибо!!!
🤝
Спасибо большое написал программулину по выборке телефонных переговоров. Раньше тратил на эту лабуду полдня. Теперь все получается за доли секунд. Класс!
Горжусь 👍
привет Хачатур спасибо за урок!мне 14 лет но я работаю в юнити и в будущем настроем на гейм дев, нужен си шарп, твои уроки это просто пушка. сделал дз, криво, но все вычисляется нормально и работает тоже.В основном был настроен на то чтобы разобраться с Replace, поэтому не особо заморачивался насчет мелких ошибок и вычитаний.
bool fix = false;
async private void button1_Click(object sender, EventArgs e)
{
if(fix == false)
{
textBox2.Text = File.ReadAllText(file2);
await Task.Delay(3000);
Method();
await Task.Delay(1500);
button1.Text = "Исправлено";
await Task.Delay(500);
fix = true;
button1.Text = "Скопировать в буфер";
}
else
{
Clipboard.SetDataObject(textBox2.Text);
textBox2.Text = "Готово";
}
}
void Method()
{
string line = textBox2.Text;
line.Replace("еще", "ещё");
line.Replace(",,",",");
line.Replace("пожалуйста", "пожалуйста,");
line.Replace("я", "Я");
}
Привет 🖐 Похвально! 👏
@@XpucT а зачем здесь строка textBox2.Text = File.ReadAllText(file2); ?
@@SAYREXPlay чтобы занести в textBox2.Text всё то, что находится в файле file2.
Главное не забегать вперёд и идти строго последовательно.
@@XpucT ясненько. Я почему то подумал что нужно взять текст из буфера обмена
Помню год назад когда начинал пользоваться Zennoposter, методом тыка всё это изучал=) а тут дядя Хачатур показывает на примере.
Всё круто и полезно. Борода в стиле Quake тож понравилась :)
Ура, ещё один человек который знает про тильду.
Всегда писал букву ё и никогда не понимал, почему так сложно удержать её на телефоне или ткнуть на клавиатуре. Как будто буква е дофига времени экономит. Сказал бы Я что экономит время. Уж точно не буква е.
@@XpucT Так и не только в интернете подобная проблема, в той же школе было неудобно итать чужие записи, с буквами е, заместо ё
Домашнее задание:
Необходимо сделать программу, в которой должен быть TextBox и Button.
1. Пользователь должен вставить в поле любую статью или цитату из интернета.
2. Нажатие на кнопку исправит все слова еще на ещё, все равно на всё равно.
3. Нажатие на кнопку также должно расставить запятые по правилам русского языка.
4. Кнопка Исправить должна писать Исправлено после исправления.
5. Спустя пару секунд на кнопке должно быть написано Скопировать исправленный текст.
6. Текст, который исправлен в поле TextBox должен лететь в буфер обмена.
7. Кнопка пишет Скопировано в буфер обмена.
@@igorcoolman хотя пару правил сделать нужно, чтобы Я понял подход к вопросу.
@@igorcoolman Можно в коммент 👍
С двумя запятыми, красава, верный подход.
Касаемо слово "все" - не факт, что там всегда буква ё.
Поэтому предпочтителен перебор фраз "всё равно", "всё верно" и т.д.
С запятыми Игорь верно смекнул - нужно сначала заменить слово "пожалуйста" на "пожалуйста, ". Таким образом есть риск, что где-то появятся две запятые и он сразу же убирает их методом замены двух запятых на одну.
@@XpucT Решил
Посмотрел основу, все гуд, лайк, подписка))
В общем из пожеланий: пролистал плейлист, не нашел ничего про базы данных, а очень хотелось бы, дальше скажу почему.
Предыстория: собственно почему стал учить C#, в общем то с программированием знаком, 2 года работал в веб-студии. Сейчас работаю на крупном заводе, большой парк компьютерной техники и для того что бы сотрудники моего IT-отдела пошли и исправили у кого то какие то неполадки с техникой, пользователь должен написать заявку, подписать у своего руководителя, подписать моим руководителем, потом должен подписать я и отдать заявку своему сотруднику что бы он что то пошел и сделал, хотя там и работы то на 5 минут, в общем советская бюрократия.
К делу: хочу написать некое подобие электронного Документооборота. Программка, в ней заведены пользователи, у каждого есть права, допустим подача заявки, подписание документа, принятие в оборот и к примеру что бы пользователь по выполнению работ подтверждал выполнение. И что бы все это в базе хранилось и в любой момент, начальник мог посмотреть когда были заявки, сколько и как выполнялось. Для начала. В последствии перевести в программу все журналы работ, регистраций и прочей лабуды.
Так что если есть знания работы с БД, поделись, очень нужно, у меня в них большой пробел, а у тебя все отлично получается объяснять. Ну и распределение прав, как это вообще работает и как это реализовать.
А за курс огромное спасибо, Win 10 Tweaker пользуюсь, прога огонь, до просмотра курса не знал что ты ее написал. Продолжаю смотреть дольше. Спасибо все очень интересно.
С базой данных знаком и там как раз всё очень и очень просто.
Знаний php нужно вот прям минимум. Когда сделаю видео, Ты будешь в шоке и одновременно в восторге от того, как легко и быстро сделать базу данных, а точнее, как вообще с ней работать. То есть как подключаться, как вносить изменения, как читать, как делать так, чтобы другие не могли ничего менять, а только читать. Как сделать так, чтобы никто не мог достучаться просто так и прочее и прочее. В одном небольшом видео будет полнейший охват вопроса и думаю все будут очень рады и удивлены тому, насколько это всё просто =)
Это будет действительно очень простой урок. Даже mySql и php не нужно знать. Там нужен не просто минимум, а тупо шаблон, которым поделюсь. Но позже, сейчас очень занят и дела семейные не позволяют пока. Но курс продолжится с уклоном как раз на продвинутые вопросы и фичи. Я постепенно отмечаю для себя из комментов, какие темы приоритетнее. Но всё потом.
@@XpucT Все, ок жду с нетерпением, заранее спасибо)
Возможность присваивания строковой переменной несколько строк продиктована тем, что тип string в C# воспринимается как последовательность (массив) символов.
Ассалому алайкум Хачатурака! За класные уроки огромный Рахмат!!! В качестве домашная задания написал программу каторий переводит Кирилский буквы на Латинский и обратно. Возник проблема с буквы "е"(кирилский) это букву надо читат как "э", местами "йе" для этого я написал это:
... else if(textBox1.Text.StartsWith("е")) textBox1.Text = textBox1.Text.Replace("е", "ye");// ("Узбекский кирил", "O`zbekcha lotin") else if (textBox1.Text.Contains("е")) textBox1.Text = textBox1.Text.Replace("е", "e"); ... тепер когда запускаю и набераю текст:"место елена" программа переводит "myesto yelena" пожалуйста, помогите как исправит. Знаю где ошибся но как решит незнаю.
Вы все методы класса String покажите . Когда показываете метод - говорите из какого он класса , потом будет удобнее его найти в справочнике или самоучителе . А вообще классные уроки !
Придумал вот:
label1.Text = WriteLine();
В скобках нужно указать метод рандома из которого будет браться номер строки и указать путь к файлу в котором на каждой строке есть текст
То есть текст лейбла равен рандомной строке из файла
урааа, я думал конец,спасибо тебе за старание!!!!!!!!
19:21затем что именно возвращает и именно копию, то бишь на сому строку влияния не оказывает. Копирует строку, изменяет ее и возвращает обратно уже новую строку с новым адресом в памяти. laibel2.Text=label1.Text.ToLower() результат в лэйбле 1 строка остается без изменений в лэйбле 2 появляется новая строка идентичная строке в лэйбле 1 но все буквы в ней будут маленькими.
Вопрос по уроку. Как в массиве заменить все пустые строки(ячейки) когда в них вроде пусто а пробелов или нет или много в этом пустом. Как правильно записать код замены, по всему массиву где много строк, пустого на любое слово?
Придётся подождать до 20 урока.
Крайне не советую бежать с этим вопросом вперёд, не узнав кое-что ранее.
Очень важно первые 20 уроков посмотреть по порядку.
Уважаемый Хачатур! Не будет ли видео на тематику "О вкусах спорят"? Интересна именно ваша концепция. Просто бездна подводных потоков информации. Просто великолепно.
Что начать задвигать на эту тему, нужно, чтобы дошло до точки кипения.
Либо делать отдельный канал на тематику мира вообще.
@@XpucT Спасибо за ответ. Я реально учу по Вашим материалам студентов. Это замечательно. Это целая ноосфера. Спасибо Вам.
Спасибо тебе! Впервые я сделал код сам (ну почти (: )
Вот что получилось у меня:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i = 0;
async private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text.Replace("Еще", "Ещё");
textBox1.Text = textBox1.Text.Replace("Все", "Всё");
while (i != 2)
{
i++;
await Task.Delay(1000);
button1.Text = "Копировать";
}
Clipboard.SetDataObject(textBox1.Text);
}
}
тут условия не хватает, в задании говорилось после того как текст исправлен надпись на кнопке должна сменится на исправлено, а уж потом на Копировать.
2:31 Ох уж эта "C" или "с"... Тот самый случай, когда неосознанно повторяешь одну и ту же ошибку за маэстро 🙂 - спасибо русификации клавиатуры за это 😅
Привет! А можешь дать название книги или ссылку на урок, где объясняется вывод документа на принтер, ну типа как сделать накладную и вывести её на принтер. Спасибо!
Ведь теоретически может быть так, что во фразе ", пожалуйста," между первой запятой и буквой П может быть бесконечное количество пробелов, тогда вот такая замена не будет учитывать все случаи .Replace(" пожалуйста ", ", пожалуйста, ")
Trim()
@@XpucT Trim же только в начале и в конце удаляет пробелы, перед первой запятой удалит и после второй, а между первой запятой и буквой П так они и останутся
Не до конца понимаю просто как это сделать именно для всех случаев, а не только когда один пробел стоит всегда
@@1skyfallc Можно проверять на большую букву П.
Вариантов много и вот тут действительно нужно учитывать всё, и пробелы, про которые Ты написал и отступы.
Помогите пж🙏. Как поменять местами первое и второе слово в listBox?
Я не могла сделать
Спасибо за урок, после плюсов интересно и легко переходить на шарп, благодаря тебе. ДЗ:
async private void button1_Click(object sender, EventArgs e)
{
if (button1.Text != "Скопировать")
{
textBox1.Text=textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, ").Replace(" еще"," ещё");
button1.Text = "Исправлено";
await Task.Delay(2000);
button1.Text = "Скопировать";
}
else
Clipboard.SetDataObject(textBox1.Text);
}
🤟
Спасибо за видео! А как написать программу, которая меняет в строке заглавные буквы на строчные, а строчные на заглавные?
Продолжайте просмотр плейлиста =)
Все ответы уже есть.
А есть видосики про динамические листы, DataGridView и т.п. ?
Мне понравилась идея в комментариях запихать сюда ещё и прогресс бар. Попытался реализовать его в привязке к ходу выполняемых операций по исправлению, привязав к переменной, чтоб была возможность в дальнейшем, с появлением новых операций по проверке текста, изменять процент заполнения полоски. Понятно, что там на выполнение всего кода уходят доли секунды и заполнение прогресс бара будет не заметно, поэтому навтыкал делеев, по другому не придумал как сделать) Кстати, вот тоже интересно почему если задержка меньше 1 секунды, то анимация заполнения полосы не доходит до конца? Приходится ставить дополнительную задержку после цикла for, чтобы видно было полоску при 100%
Реализовал через свитч кейс, т.к., мне показалось, что в таком виде удобнее дополнять список новых правил проверки, плюс хорошо видно их количество для того чтобы присвоить значение переменной num.
async void Button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
int num = 12; //количество операций по исправлению
progressBar1.Visible = true;
for (int i =0; i
Немного модифицировал код, мне показалось, там слишком много повторяющихся элементов и сделал функцию возвращающую две текстовые переменные. Пришлось только погуглить как объявить такую, а дальше методом тыка разбирался как это со свитч кейсом заставить работать. Хотел запихнуть ретёрн сразу туда, но выдавало ошибку, пришлось вводить ещё дополнительную переменную. Наверняка очередной говнокод, но это такой кайф, когда оно начинает работать как ты хочешь))
async void Button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
int num = 12; //количество операций по исправлению
progressBar1.Visible = true;
for (int i = 0; i < num; i++)
{
textBox1.Text = textBox1.Text.Replace(Nabor(i).Item1, Nabor(i).Item2);
progressBar1.Value += 100 / num;
await Task.Delay(3000 / num);
}
progressBar1.Value = 100;
await Task.Delay(1000);
button1.Text = "Исправлено";
progressBar1.Visible = false;
progressBar1.Value = 0;
await Task.Delay(2000);
Clipboard.SetDataObject(textBox1.Text);
button1.Text = "Скопировано в буфер обмена";
}
else
{
button1.Text = "Введите текст";
await Task.Delay(2000);
button1.Text = "Проверить";
}
}
(string, string) Nabor(int num)
{
(string, string) a = ("", "");
switch (num)
{
case 0: a = ("Ерш", "Ёрш"); break;
case 1: a = ("ерш", "ёрш"); break;
case 2: a = ("Все же", "Всё же"); break;
case 3: a = ("все же", "всё же"); break;
case 4: a = ("Ежик", "Ёжик"); break;
case 5: a = ("ежик", "ёжик"); break;
case 6: a = ("нес", "нёс"); break;
case 7: a = ("Нес", "Нёс"); break;
case 8: a = ("Пожалуйста ", "Пожалуйста, "); break;
case 9: a = (" пожалуйста ", ", пожалуйста, "); break;
}
return a;
}
Cпасибо
06:00 При чтении из файла Лейбл выдает только ??????? в черных ромбиках, вместо русского шрифта.
Как это можно поправить?
PS
string line = File.ReadAllText(@"C:\Users\IDis\Desktop\1.txt");
label1.Text = line;
Не нужно пропускать видео. Про проблему с кодировкой уже было.
@@XpucT Пересмотрел все ролики которые я не видел.
Не увидел я упоминания о кодировке. Можете дать намек, в какой серии это было?
@@BobiBobObana помните файл, который открывал на рабочем столе? Внёс туда текст "Слово, просто слова".
Потом упрекнул как раз Microsoft.... потом исправил, сохранив Блокнот в Unicode...
Привет, Хачатур!
Мой недокод по ДЗ)
Не очень понял одно, если вместо "" написать null, как в первом варианте if'а, то месседж не выдаст ошибку, хотя по идее что "", что null это пустота, ничего. Или я что-то не понимаю?
public Form1()
{
InitializeComponent();
}
void Form1_Load(object sender, EventArgs e)
{
button1.Text = "Исправить";
label1.Text = "Введите текст который хотите исправить...";
}
async void button1_Click(object sender, EventArgs e)
{
if (button1.Text != "Скопировать")
{
if(textBox1.Text == "")
{
MessageBox.Show("Введите текст для исправления.", "Ошибка!", MessageBoxButtons.OK);
}
else
{
textBox1.Text = textBox1.Text.Replace("еще", "ещё").Replace("пожалуйста ", "пожалуйста, ").Replace("все", "всё");
await Task.Delay(1000);
button1.Text = "Скопировать";
}
}
else if (button1.Text != "Исправить")
{
Clipboard.SetText(textBox1.Text);
button1.Text = "Исправить";
label1.Text = "Скопировано!";
await Task.Delay(1000);
label1.Text = "Введите текст который хотите исправить...";
}
Привет 🖐
Не совсем. null - это действительно пусто.
"" - это когда значение есть, но оно пустое.
null - это когда значения нет.
Это станет понятнее на примерах в следующих видео с реестром, где пустой параметр и параметр с пустым значением - это разные вещи.
Отличная идея, можно сделать прогу которая будет почти все слова, содержащие "е" вместо "ё" заменять на правильное написание с "ё".
Есть одна веб страница со списком, якобы, всех русских слов, содержаших букву "ё"
Только я не умею в парсинг веба пока чт
При копировании файла
стекст документа в лейбле открываются ромбы с вопросами вместо букв В чем дело помоги кто нить ?
Все понял надо сохранить в блокноте UT8
Привет, XpucT, написал секундомер через stopwatch , и возник вопрос. В программе выполняется бесконечный цикл в Metod(), и хотелось бы чтобы при нажатии на Stop программа выходила из этого цикла, а как это сделать я что-то не могу понять
//Секундомер
Stopwatch Vremya = new Stopwatch();
async void Metod()
{
await Task.Run(() =>
{
for(; ;)
{
label1.Text = Vremya.Elapsed.ToString();
}
});
}
void Button1_Click(object sender, EventArgs e)
{
Vremya.Start();
Metod(); // как мне из него выйти повторным нажатием
Button btn = sender as Button;
btn.Text = "Stop";
btn.Click -= new EventHandler(Button1_Click);
btn.Click += new EventHandler(Button1_Click_1);
}
void Button1_Click_1(object sender, EventArgs e)
{
Vremya.Stop();
label1.Text = Vremya.Elapsed.ToString();
Button btn = sender as Button;
btn.Text = "Start";
btn.Click -= new EventHandler(Button1_Click_1);
btn.Click += new EventHandler(Button1_Click);
}
void Button2_Click(object sender, EventArgs e)
{
Vremya.Reset();
label1.Text = Vremya.Elapsed.ToString();
}
//
Привет 🖐
Прямая ссылка на Мой ответ (похожий вопрос):
ua-cam.com/video/1AiKew-XQsk/v-deo.html&lc=Ugz3tr7NCpDesntMog54AaABAg.995RJI_Vi0x995Sxj6fLOl
Открывай с компа ссылку, чтобы внизу развернулся Мой ответ 👍
@@XpucT Спасибо
Не знаю можно ли скидывать код, но очень хотелось бы чтобы вы сказали мне как сократить все проверки на то, где стоит слово. Допустим *наверное* стоит в конце с точкой или в середине. Очень растягивает код. Можно чтобы я скинул код и вы проверили домашнее задание и помогли?
Давайте проверю.
Залить можете на Google Диск, например.
@@XpucT У вас ссылки удаляются в комментариях? Я два раза отправил .
Тогда у нас на форуме:
win10tweaker.ru/forum/forum/%d1%81
@@XpucT Да. СПасибо. Я уже создал тему.
Добавляю тект ,но не открывает русс керилицу а англ керилицу принимает
Можете помочь ?
Спасибо
Приветствую всех,знаю что видео уже как год на канале,но может хоть кто и ответит)))Проблема в том, что когда читаю текст в файле как в видео,то вместо русских символов выходят знаки вопроса а с латиницей всё нормально,как быть?Я так понял проблема в какой-то кодировке,так вот как это настроить,видать надо в настройках программы полазить?Сам новичок я в winforms,обычно работаю с железом на C++,VisualStudio2019 у меня и решил подружить компьютер с микроконтроллером.
Нужно сохранять файл в кодировке Unicode, иначе действительно будет всё коряво со знаками вопроса.
Но если файл нельзя изменить, то можно изменить кодировку на лету. Пример:
File.ReadAllText(@"C:\Сергей Тиркин\Файл.txt", Encoding.GetEncoding(1251);
@@XpucT ,не фига се быстро ответили)))Хачатур, спасибо большое за уроки,очень помогают мне в изучении C#,продолжай в том же духе!Не планируешь ли сделать видео по работе с ком портом,хотя я вроде как разобрался,но интересно было бы узнать ваше мнение.Ещё раз благодарю!!!!
А как удалить все слова которые мы выбрали (например если их в тексте несколько одинаковых), у меня просто удаляет первое из этих слов. Например: "Сжатие", встречается несколько раз, но удаляется только первое на которое наткнулась программа. Спасибо
Если коротко, то например:
string path = @"C:\Пример\Файл.txt";
string line = File.ReadAllText(path);
line = line.Replace("Искомое слово", "");
File.WriteAllText(path, line);
Всем привет, подскажите как перевести в верхний регистр последнюю букву в каждом слове ?
Привет 🖐
По аналогии: www.cyberforum.ru/windows-forms/thread1482685.html
Привет, не знаешь как из Resources\blablabla.json перезаписать весь текст в 1500 строк в C:\blablabla.json? очень нужно
Вот подобие текста
{
"Debug": {
"toggled": true,
"key": -1,
"button": -1
},
"UserInterface": {
"toggled": true,
"key": 41,
"button": -1,
"Blur": {
"value": true,
"key": -1
},
Типа нужно создать установищик который будет файл .json устанавливать в указаную папку
Хотел сделать progressbar(continue), но когда ставлю Task.Deley меньше 1000 анимация не успевает идти одновременно с счетчиком(проверял через лейбл) по-этому, красоты поставил progressbar(marquee), вот сам код(надеюсь вы еще читаете коментарии )
using System;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace трень
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool done = false;
private async void button1_Click(object sender, EventArgs e)
{
string[] str = textBox1.Lines;
button1.BackColor = Color.Bisque;
if(textBox1.Text == "")
{
textBox1.Text = "введи текст";
await Task.Delay(3000);
textBox1.Text = "";
return;
}
if (done == false)
{
while (progressBar1.Value != 100)
{
progressBar1.Visible = true;
progressBar1.Value++;
await Task.Delay(10);
if (progressBar1.Value == 100)
{
Method();
progressBar1.Value = 0;
button1.Text = "Исправлено";
progressBar1.Visible = false;
await Task.Delay(3000);
button1.Text = "Cкопирован в буфер обмена";
Clipboard.SetDataObject(textBox1.Text);
await Task.Delay(2000);
button1.Text = "Нажми что бы очистить";
done = true;
return;
}
}
}
if(done == true)
{
await Task.Delay(1000);
textBox1.Text = "";
done = false;
return;
}
void Method()
{
foreach (string s in str)
{
textBox1.Text = textBox1.Text.Replace("все равно", "всё равно");
textBox1.Text = textBox1.Text.Replace("еще", "ещё");
textBox1.Text = textBox1.Text.Replace(",,", ",");
textBox1.Text = textBox1.Text.Replace("Пожалуйста ", "Пожалуйста, ");
textBox1.Text = textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, ");
textBox1.Text = textBox1.Text.Replace(" а ", ",а ");
}
}
}
}
}
Читаю =) Трень =)
всем привет. подскажите как именно перевести в верхний регистр не всё слово а к примеру первую букву в слове?
string slovo = "слово";
slovo = char.ToUpper(slovo[0]) + slovo.Substring(1);
XpucT а последнюю? И если строк много и в каждом слове разное количество букв?
@@РрОл-ш1п вероятно -1
Указал путь к файлу всё сделал, вроде, правильно, а консоль изменила буквы в предложении на вопросы, в чем причина не подскажите?
Код в студию. Проблема с кодировкой.
@@XpucT Код писал по видео, всё работает, но русские символы пишутся под знаком "?", а английские нормально показывает string line = File.ReadAllText(@"D:\Рабочий стол\Sasha\PROGIS\черновик.txt");
label1.Text = line;
@@cegofont4132 какая кодировка в txt?
Точно файл создавался в UTF-8 и при этом в Notepad++?
@@XpucT Понял свою ошибку, я в ANSI сохранял
На самом деле очень качественные уроки, но главное проблема в том, что не используешь консоль. Поверь, графическая оболочка не самый лучший вариант. У меня есть база знаний, из-за этого так говорю.
9 из 10 благодарны за то, что обучаю не просто языку, а применению. При чём не на сложном в понимании новичка MVVM или бестолковом Console, а на живом примере. Круглый год такие комменты и да, это Я предугадал сразу. Иначе человек с нулевым знанием не знает что к чему привязать. Нужны всегда живые примеры и ошибки. Без них урок не усваивается с первого раза.
Как называется прога, с помощью которой ты себя снимаешь?
ua-cam.com/video/e2CSSuW2Wac/v-deo.html
Здравствуй, Хачатур! Вот дз))
Сложнее всего было сделать так чтобы кнопка выполняла сразу несколько функций. В итоге придумал чтобы if сравнивал название кнопки, а потом выполнял действие.
И такой вопрос: есть ли нормальный способ чтобы кнопка разные функции выполняла?
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Поправлятор
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
async void Button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Скопировать")
{
Clipboard.SetDataObject(textBox1.Text);
button1.Text = "Скопировано в буфер обмена";
await Task.Delay(2000);
button1.Text = "Исправить новый текст?";
}
else if (button1.Text == "Исправить")
{
string[] lines = textBox1.Lines;
foreach (string word in lines)
{
textBox1.Text = textBox1.Text.Replace("еще", "ещё");
textBox1.Text = textBox1.Text.Replace("все равно", "всё равно");
textBox1.Text = textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, ");
textBox1.Text = textBox1.Text.Replace("Пожалуйста ", "Пожалуйста, ");
textBox1.Text = textBox1.Text.Replace("Здравствуйте ", "Здравствуйте, ");
textBox1.Text = textBox1.Text.Replace(" а", ", а");
textBox1.Text = textBox1.Text.Replace(" но", ", но");
textBox1.Text = textBox1.Text.Replace(",,", ",");
}
button1.Text = "Исправлено";
await Task.Delay(2000);
button1.Text = "Скопировать";
}
else
{
button1.Text = "Исправить";
textBox1.Text = "";
}
}
}
}
Можно сделать булевое значение, например:
bool working = false;
На лету его менять или проверять.
if (working)
работает
else
не работает
Не забываем на лету менять значение, когда это нужно 👍
Cпасибо, постараюсь разобраться
Спасибо за крутой урок!) Кстати я уже дня 3 борюсь с багом, может у вас будут идеи. Дело в том что я написал сервер, и чат на нем реализовал через json, и получается что когда один клиент отправляет второму сообщение, то он находит его текстовый файлик, и вписывает в него это сообщение, и если выйти с сервера нормально, т.е закрыть сокет и все такое, то нет проблем, ну а если просто закрыть клиент не по правилам, то при попытке прочитать это сообщение, сервер начинает глючить, второй клиент не может получить доступ к файлу. Можно ли как-то освободить файлик? Ну т.е закрывать процесс, что бы он не мешал, т.е записал и освободил. Я рылся в сети, пишут про потоки, то что можно через поток текст передать, и просто закрывать поток, но я что-то сомневаюсь что это поможет, а вы как думаете?
По Вашему вопросу обязательно к просмотру:
1. ua-cam.com/video/ltvFrWCqL6g/v-deo.html
2. ua-cam.com/video/vHqHrf914TA/v-deo.html
Почему история версий W10T не доступна на сайте ? Пришла обнова, а что поменялось неизвестно.
Отключите блокировщик рекламы. Её всё равно нет на сайте.
А блокировщик считает, что это реклама.
@@XpucT понял, спасибо !
@@XpucT т.к. написать в теме сейчас нельзя, напишу здесь. Есть предложение по твикеру - сделать подсветку Shift + ПКМ серым если он применен и белым если нет. В тех пунктах где он есть конечно.
@@8username8 подсветка меняется, но еле заметно. Сделан баланс между применённым и не применённым.
С лупой и пипеткой можно это увидеть и проверить.
@@XpucT присмотрелся, заметил, но все же хотелось бы более выраженную разницу.
можно создать 2-мерный массив и в первом массиве написать ошибки, а во втором написать правильные слова
потом циклом перебирать и изменять ошибки
А теперь вариант кода для тупых, как я.
Я сделал так: сперва составил текст, в котором будет проверяться нужный сценарий:
"Все все еще все равно не собрались. Пожалуйста собирайтесь.
Все все еще все равно не собрались пожалуйста собирайтесь.
Все все еще все равно не собрались. Собирайтесь пожалуйста."
Затем, не прибегая к шпаргалкам, написал самый простой код, там даже скобки вроде можно поставить, но я не стал. По-моему это получится у каждого:
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
async void Button1_Click(object sender, EventArgs e)
{
textBox1.Text = (textBox1.Text.Replace("все " + "равно", "всё " + "равно").Replace("все " + "еще", "всё " + "ещё").Replace("еще", "ещё").Replace("Пожалуйста", "Пожалуйста,").Replace("пожалуйста", ", пожалуйста,").Replace("пожалуйста.", ", пожалуйста.").Replace(".,", ".").Replace(" ,", ",").Replace(",.", "."));
button1.Text = ("Исправлено!");
await Task.Delay(1000);
button1.Text = "Скопировать в буфер";
Clipboard.Clear();
Clipboard.SetDataObject(textBox1.Text);
}
}
}
Работает, исправляет нужный текст, убирает лишние знаки, копирует в буфер.
З.Ы. как тут через массивы можно сделать не понял, ведь в примерах с массивами был выбор одного и того же в теле массива, но с разными версиями строк (и т.п.).
Интересно, я туповат, или не понял нюанса задания? То есть, если нужно исправить определенные слова, то обязательно писать тучу строк кода? Если к примеру после "пожалуйста" есть пробел, значит слово не последнее в предложении, и его можно исправлять. Просто меня немного напугали решения в комментариях, ибо у меня вышла простейшая ерунда, которая в принципе сработала на моём примере.
async void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Исправить")
{
string line = textBox1.Text;
textBox1.Text = line.Replace("пожалуйста ", "пожалуйста, ").Replace("еще", "ещё");
button1.Text = "Исправлено";
await Task.Delay(2000);
button1.Text = "Скопировать";
}
else if (button1.Text == "Скопировать")
{
Clipboard.SetDataObject(textBox1.Text);
}
}
Можно сравнить с теми, кто также выполнил задание тут в комментах ;)
Дружище, есть у тебя видосы про формы, написал авторизатор, он все норм заходит регается и сворачивается и сразу же запускается второе окно, в этом окне расположен основной функционал, когда жму на кнопку запустить ни чего не происходит, переношу этот же код в первую форму там все норм работает, пробовал уже все что мог найти в инете по C#, пишут что фокус надо переводить на вторую форму, но я начинающий, как неделю назад начал что то писать и много еще чего не понимаю,а то что пишут в инете не рассказывая что ставить куда ставить хз, я поставил ни чего не работает, думаю или я что то не делаю или это не работает))) короче удалил вторую форму сделал на одной, но сегодня понял что надо возвращать вторую форму.
Если формы не связаны, значит нужны либо делегаты контролам, либо открывать вторую форму и делать её дочерней.
На канале про это не было, но обязательно будет. А пока могу дать просто рекомендацию начать искать ответ на cyberforum.
Там есть тема типа «7 популярных вопросов, касающихся форм». И там много ответов на вопрос, как сделать что-то из второй формы.
@@XpucT Спасибо друг.
async private void button1_Click(object sender, EventArgs e)
{
string lines = textBox1.Text.Replace("Еще", "Ещё").Replace("еще", "ещё").Replace
("Пожалуйста ", "Пожалуйста, ").Replace(" пожалуйста.", ", пожалуйста.").Replace
(" пожалуйста ", ", пожалуйста, ");
button1.Text = "Исправляется";
await Task.Delay(1000);
button1.Text = "Исправлено";
textBox1.Text = lines;
MessageBox.Show("Скопировать в буфер", " Копирование", MessageBoxButtons.OK);
Clipboard.SetDataObject(textBox1.Text);
}
Снова привет, Хачатур. Не подскажешь в чём проблема? При чтении файла с русским текстом ловлю это prntscr.com/ohs00e, также почему то ничего не выводит данный код prntscr.com/ohs2gy (текст брал тот же, от Win10 Tweaker`a)
Не пропускай уроки и не опережай их ;)
Говорил, что текстовый файл должен быть в кодировке UTF-8.
Если используешь родной блокнот, а не Notepad++, то нужно обязательно _Сохранить как_
И там выбираешь Unicode или UTF-8.
@@XpucT Спасибо, да я вроде не пропускал)) Наверно прослушал как-то(
Круто
Я не могу перейти на сайт со шпаргалкой. У кого-то ещё такая проблема есть?
Всё прекрасно работает.
Шрифт очень мелкий на ваших роликах , код плохо виден . Это у меня или у вас такие настройки ?
Все обычно видят всё прекрасно.
Очень жаль , что нет разбора домашних заданий,пока моих мозгов хватило на это:
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = File.ReadAllText(@"C:\Users\VOVA\Desktop\111.txt");
textBox1.Text = textBox1.Text.Replace("еще", "ещё").Replace("Еще", "Ещё");
Method("Исправлено", 1000);
if(textBox1.Text.Contains("пожалуйста"))
{
textBox1.Text = textBox1.Text.Replace("пожалуйста", ", пожалуйста,");
}
Method("Скопировать в буфер обмена", 2000);
Clipboard.SetDataObject(textBox1.Text);
}
async void Method(string str, int num)
{
await Task.Delay(num);
button1.Text = str;
}
Привет . Ролик очень сильно помог - спасибо . Но у меня остался один вопрос : Как можно заменить в текствовом документе целую строку на свой аналог ?
Наглядно :
Files:
File.1 = C\text\Text1.txt
File.2 = C\text\Text2.txt
File.3 = C\text\Text3.txt
...
Нажимаем конпку
"
Files:
File.1 = C\text\Text1.txt
File.2 = C\text\Text2aaa.txt
File.3 = C\text\Text3.txt
...
Я сделал так , чтобы программа определяла по большей части текста строку , но далее я встрял . Я ещё мало знаю о С# , поэтому возможно я и не могу найти ответ на свой вопрос .
Привет 🖐
Немного резко пошёл вперёд, смотри далее.
В плейлисте уже есть урок по Регулярным выражениям. Не только для C#.
@@XpucT понял . Спасибо большое .
Домашнее задание:
string text = File.ReadAllText(@"C:\Users\ultra\Desktop\1.txt");
bool textFixed = false; //переменная для проверки изменён ли текст
public Form1()
{
InitializeComponent();
}
private void btnChange_Click(object sender, EventArgs e)
{
if (!textFixed) // если не изменён
{
text = Change(text); // изменяем
tbInput.Text = text; // перезаписываем
btnChange.Text = "Исправлено после исправления";
textFixed = true; //указываем,что текст изменён
Task t = new Task(RenameButton); //вызываем задержку предлагаем сохранить текст
t.Start();
}
else //если текст изменён,
{
WriteInMemory(); // записываем текст в память
btnChange.Text = "Текст скопирован в буфер";
}
}
void RenameButton() //метод задержки
{
Thread.Sleep(2000);
btnChange.Text = "Скопировать исправленный текст?";
}
string Change(string text) // метод изменения (подсмотрел его в коментах)
{
text = text.Replace("еще", "ещё");
text = text.Replace("все верно", "всё верно");
text = text.Replace("все равно", "всё равно");
text = text.Replace(" если", ", если");
text = text.Replace("пожалуйста", "пожалуйста,");
text = text.Replace(",,", ","); // в случае *пожалуйста, если вы ....* получается *пожалуйста,, если вы ...*
text = text.Replace(",,", ","); // это убирает баг описанный выше
return text;
}
void WriteInMemory() // метод записи в память
{
Clipboard.SetDataObject(text);
}
Очень хорошо 👍
@@XpucT спасибо
Я если будет 10 запятых после слова!! Так как???
Новец replace В программе И remove Очень сильно раздувает Проект, Так почему же их все равно используют?
Проект раздувается в размерах только из-за текста в основном.
А зачем виртуальная машина с дисяткой, под десяткой для написания кода на шарпе?
Затем, что покодишь столько сколько Я с виндой играюсь и поймёшь, что откаты нужны постоянно.
Рассказывалось об этом в Уроке 1.
Были также случае, где даже на стримах показывал, что будет если...
И всё, прощай Windows. А виртулку можно быстро откатить.
Понятно, что если играться с банальным калькулятором или делать игру - для этого виртуалка не нужна.
А вот серьёзные сетевые хаки, политики и прочее очень желательно не трогать в живой среде Windows.
Накроешь свою винду и даже не узнаешь порой. Те же патчи и прочее.
Нужно сразу привыкать серьёзные вещи делать только на виртуалке и только после тщательного тестирования переходить на живую среду.
При этом, как видно, в производительности ничего не теряешь на виртуалке и всё так работает сверх быстро, как мы видим на компе 5-ти летней давности.
@@XpucT Ну, хз, я уже давно ушел от основ, на видос наткнулся от скуки, вот стало интересно. Так как в первые такую практику вижу.
Обычно юзают, Песочницу или же Docker. Чтобы прям в VirtualBox писали код, вижу в первые.
Чисто из за безопасности системы, OK. Вопросы отпали.
@@onecelldm помимо безопасности, есть неотъемлемая практика - патчинг системных библиотек.
При том, что нужно помнить, что патч - это не замена одного файла на модифицированный, а сам процесс патчинга, dll к примеру.
Например, в Win 10 Tweaker реализован патчинг dll, отвечающий за отображение раздражающий плашки языка справа в Windows 10 (ua-cam.com/video/RXmQ9IuIGLc/v-deo.html) в реальном времени.
Я не заменяю файл, а делаю бэкап оригинальной библиотеки и патчу оригинал на лету, переписывая байт-последовательность.
Делать это на реальной винде чревато тем, что права системе уже не вернёшь. Да, есть sfc /scannow, есть восстановление прав из безопасного режима, но эти танцы с бубном отнимают очень много времени. А так, просто сделал снимок системы, протестировал твик, всё работает, протестировал на других виртуалках и версиях Windows, и, если всё работает, переходим в живую среду Windows. Таких примеров можно привести очень много.
Тем не менее, если у человека даже банальная задача создать плеер или текстовый редактор, были случаи, когда Live Share обновился на VS 2017 и накрывал при этом свой же функционал в VS 2019. Отката не задумано. Удаление не работает, потому что видишь ли он уже в процессе. Где-то что-то там записал и всё, тупик. Жди пока исправят баг. А зачем ждать, если есть виртуалка.
Песочницы удобны как раз в реальной винде, когда делаешь первый тест. Очень много раз спасал Shadow Defender (ua-cam.com/video/GiPgdYEVIo0/v-deo.html) и Sandboxie (ua-cam.com/video/ii_t-FuEeZs/v-deo.html).
@@XpucT хорошо, спасибо за инфу, приму к сведенью, правда патчить либы и тд ещё не нужно было, так как такой задачи никогда не стояло, а твоим твикером пользовался для удаления метро приложений.
Вот мое дз
public partial class Form1 : Form
{
int i = 0;
public Form1()
{
InitializeComponent();
}
private async void Button1_Click(object sender, EventArgs e)
{
i++; // Прибавляем к i 1
if (i == 2) { goto Sas; } //Условие если счетчик равен 2, то переход к исполнению кода из этикетки
else
{
textBox1.Text = textBox1.Text.Replace("еще","ещё").Replace("Все равно", "Всё равно").Replace("все равно", "всё равно"); //Заменяем слова или буквы в словах в определенных случаях
textBox1.Text = textBox1.Text.Replace(" что", ", что").Replace("пожалуйста", "пожалуйста, ").Replace(" а", ", а").Replace(",,", ","); // Расставляем запятые (рассмотрены не все случаи)
textBox1.Text = textBox1.Text.Trim(); //Удаляем лишние пробелы между словами
await Task.Delay(500); //Задержка на пол секунды
button1.Text = "Исправлено";
await Task.Delay(500); //Задержка на пол секунды
button1.Text = "Скопировать в буфер обмена";
}
return; //Не выполнять код ниже
Sas: //Этикетка
Clipboard.SetDataObject(textBox1.Text); //Сохраняем в буфер
button1.Text = "Скопировано";
textBox1.Text = "";
i = 0; //Обнуляем счетчик
}
}
}
Отлично 👍
@@XpucT Спасибо
У меня одного в textBox не работает .Trim() ?
По ходу дела да
Хз как получилось, старался сделать коротко и чтоб все работало.
using System.Deployment.Application;
using System;
using System.Windows.Forms;
using System.IO;
using System.Threading.Tasks;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
bool Textfixed = false;
public Form1()
{
InitializeComponent();
}
async void Button1_Click(object sender, EventArgs e)
{
if (Textfixed == false)
{
textBox1.Text = textBox1.Text.Trim().Replace("еще", "ещё").Replace("все равно", "всё равно").Replace("пожалуйста", "пожалуйста,").Replace(",,", ",");
await Task.Delay(10);
button1.Text = "Исправлено";
Textfixed = true;
await Task.Delay(1000);
button1.Text = "Скопировать в буфер";
}
else
{
Clipboard.SetDataObject(textBox1.Text);
}
}
}
}
Отлично, красава 👍
Моё дз:)
bool isTextAlreadyFixed = false;
async private void Button1_Click(object sender, EventArgs e)
{
if (!isTextAlreadyFixed)
{
isTextAlreadyFixed = true;
textBox1.Text = textBox1.Text.Replace("еще", "ещё").Replace("Еще", "Ещё").Replace("Все еще", "Всё ещё").Replace("все еще", "всё ещё").Replace("Все ещё", "Всё ещё").Replace("все ещё", "всё ещё")
.Replace("Всееще", "Всё ещё").Replace("Всёеще", "Всё ещё").Replace("Всеещё", "Всё ещё").Replace("Всёещё", "Всё ещё").Replace("всееще", "всё ещё").Replace("всёеще", "всё ещё").Replace("всеещё", "всё ещё").Replace("всёещё", "Всё ещё")
.Replace("Все равно", "Всё равно").Replace("все равно", "всё равно").Replace("пожалуйста ", "пожалуйста, ").Replace("Пожалуйста ", "Пожалуйста, ").Replace("Почему то", "Почему-то").Replace("почему то", "почему-то").Replace("Почемуто", "Почему-то").Replace("почемуто", "почему-то");
button1.Text = "Исправлено после исправления";
await Task.Delay(2000);
button1.Text = "Cкопировать исправленный текст";
}
else if (isTextAlreadyFixed)
{
Clipboard.SetDataObject((textBox1.Text).Trim());
await Task.Delay(2000);
button1.Text = "Скопировано в буфер обмена";
await Task.Delay(5000);
button1.Enabled = false;
textBox1.Font = new Font("Microsoft Sans Serif", 16);
button1.Text = ("Хачатур красавчик").ToUpper();
textBox1.Text = ("спасибо за видосы! :)").ToUpper();
}
}
Отлично 👏😇
Прога, которая цензурит маты:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RedactorForms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private async void button1_Click(object sender, EventArgs e)
{
progressBar1.Value = 0; // setting progressbar to 0
if (textBox1.Text.Trim() == "")
{
button1.Text = "Enter text";
await Task.Delay(1000);
button1.Text = "Edit";
}
if (button1.Text == "Edit")
{
if (textBox1.Text != "")
{
while (progressBar1.Value != 100) // increasing progressbar while it isn't equals to 100(maximum)
{
button1.Enabled = false; // locking button
progressBar1.Value++;
await Task.Delay(10);
}
if (progressBar1.Value == 100) // unlocking button if progressbar equals to 100(maximum)
{
button1.Enabled = true;
}
// editing text
textBox1.Text = textBox1.Text.Trim().Replace("fuck", "****").Replace("bitch", "*****").Replace("nigga", "*****").Replace("sex", "***");
await Task.Delay(10);
button1.Text = "Edited";
await Task.Delay(1000);
button1.Text = "Copy";
}
else // if text is empty
{
button1.Text = "Enter text";
await Task.Delay(1000);
button1.Text = "Edit";
}
}
// copying if button text is "Copy"
else if (button1.Text == "Copy")
{
Clipboard.SetDataObject(textBox1.Text); // copying
await Task.Delay(1000);
button1.Text = "Edit";
}
}
}
}
Хачатур, огромное спасибо за уроки!! В общем подумал, чтобы проверить на наличие запятых, нужно представить исходный текст как массив символов, но в итоге заглох, есть плавающие ошибки. Можешь подсказать, хотя бы в правильном ли направлении двигаюсь? Мой "код" ниже (там полный трэшак, но, как говорится, дорогу осилит идущий), работал со строкой "и мне ещё помогите, пожалуйста, разобраться, пожалуйста, помогите":
async private void button1_Click(object sender, EventArgs e)
{
if (copy == false)
{
textBox1.Text = PleaseCheck(textBox1.Text);
Check();
}
else
{
Copy();
await Task.Delay(1000);
button1.Text = "Исправить";
}
}
void Copy()
{
Clipboard.Clear();
Clipboard.SetText(textBox1.Text);
copy = false;
}
async void Check()
{
string arr = textBox1.Text;
textBox1.Text = arr.Replace("еще", "ещё");
//строка за строкой слова, которые хотим исправить textBox1.Text =
//arr.Replace("old","new");
button1.Text = "Исправлено";
await Task.Delay(1000);
button1.Text = "Скопировать";
copy = true;
}
string PleaseCheck(string str)
{
if (str.Contains("пожалуйста"))
{
char[] arr = str.ToCharArray();
int[] number = new int[arr.Length];
int index = 0;
int count = 0;
for (int i = 0; i < str.Length; i++)
{
if (str[i] == 'п' && str[i + 1] == 'о' && str[i + 2] == 'ж'
&& str[i + 3] == 'а' && str[i + 4] == 'л' && str[i + 5] == 'у'
&& str[i + 6] == 'й' && str[i + 7] == 'с' && str[i + 8] == 'т'
&& str[i + 9] == 'а' && str[i - 2] != ','
&& ((str[i + 10] != ',' || str[i + 10] != '.') && i + 10 < arr.Length))
{
count += 2;
number[index] = i - 1;
index++;
number[index] = i + 10;
index++;
}
else { };
}
arr = new char[arr.Length + count];
index = 0;
for (int i = 0; i < str.Length; i++)
{
if (i == number[index] && i < number.Length)
{
arr[i + index] = ',';
arr[i + 1 + index] = str[i];
index++;
}
else
{
if (i < str.Length)
arr[i + index] = str[i];
}
}
result = string.Join("", arr);
return result;
}
return textBox1.Text;
}
}
Привет 🖐
У Тебя return находится в button, хотя button относится к void.
Если создать отдельный метод string, тогда можно возвращать (return) что-то в виде текста.
@@XpucT Хачатур, привет! Ты даже не можешь себе представить, сколько ты дал мотивации, просто ответив мне на комментарий. Решил сделать во чтобы то ни стало. Время 8 вечера, но я сделал. Да есть костыли (теперь я наверное точно знаю, что имеется ввиду когда это говорят), где-то уже подбором делал - но это работает. Доволен шо капец. Спасибо тебе, перехожу на следующее видео и плейлист по винде, там пока для меня все темно. Ну и мой код на проверку запятых))
string PleaseCheck(string str)
{
string strWithUpLetter;
//массив букв искомого слова
char[] searchWord = { 'п', 'о', 'ж', 'а', 'л', 'у', 'й', 'с', 'т', 'а' };
/*массив чисел, которые отображают индекс буквы "п" слова "пожалуйста",
размер ставлю по размеру исходного массива, т.к. по условию задачи,
больше точно не нужен.*/
int[] indexRightFirstLetter = new int[str.Length];
int firstLetter = 1;
int countWordsPlease = 0;
//Недопускаем индекс массива -1, если фраза начинается со слова пожалуйста
strWithUpLetter = str.Substring(0, firstLetter).ToUpper() + str.Substring(firstLetter);
//Проверяем наличие слова пожалуйста
if(strWithUpLetter.Contains("пожалуйста"))
{
char[] arraySourceString = strWithUpLetter.ToCharArray();
for (int i = 0; i < arraySourceString.Length; i++)
{
for (int j = i; j < (searchWord.Length + i) &&j
@@victor-dh2et красавчик ☝
Спасибо за хороший урок
ДЗ:
drive.google.com/file/d/1Lbj5CqM3H4qeBBjRZ9w91a-K_VQqXSxL/view?usp=sharing
using System;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _22less
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool textChanget = true;
async void Button1_Click(object sender, EventArgs e)
{
if (textChanget == true)
{
textBox1.Text = textBox1.Text.Replace("Привет ", "Привет, ").
Replace("еще", "ещё").Replace("все равно", "всё равно").
Replace("все-равно", "всё равно").Replace("всеравно", "всё равно").
Replace("всёравно", "всё равно").Replace("ежик", "ёжик");
await Task.Delay(1000);
button1.Text = "Скопировать";
button1.BackColor = Color.LawnGreen;
textChanget = false;
}
else
Clipboard.SetDataObject(textBox1.Text);
}
private void TextBox1_TextChanged(object sender, EventArgs e)
{
textChanget = true;
button1.BackColor = Color.Gold;
button1.Text = "Исправить";
}
}
}
Это че мне все слова с буквой ё перечислить?
Странно, мой коммент с кодом почему-то ютуб стирает((
Ты его больше нигде не постил?
И ещё, если себе лайки ставишь, то тоже может удалять.
@@XpucT неа, не постил и лайки не ставил. Странно. Сейчас ещё раз попробую
@@XpucT вроде опубликовался. Спасибо)
Христ добавь пожалуйста в Windows 10 tweaker рекомендуемые настройки от тебя.Тоесть добавь функцию которая позволит настроить пк через Windows tweaker автомотически и правильньно без ошибок
Win 10 Tweaker имеет только те твики, которые применяю Я лично. В программе никогда не было и не будет ничего, чем не пользовался бы Я сам. Поэтому безопасно рекомендую каждый твик без исключения.
Бывают такие VPN-клиенты, которым необходима служба DNS-клиент. Кто пользуется обновлением, кто-то не удаляет плиточные приложения. И поэтому есть выбор для каждого - делать что-то или нет. Я же делаю всё без исключения на любых компах. Всегда и всё безопасно, если при этом не твикать систему другими сомнительными программами. Даже страховочное соглашение гласит, что нужно делать всё на нормальной винде, а не на той, которую так урезали, что всё летит. Win 10 Tweaker работает исходя из всех адекватных сценариев состояния ПК. А вот, например, отсутствие cmd или PowerShell даже не учитывает, потому что неизвестно кем нужно быть, чтобы их вырезать. Надеюсь, понятно =)
Тем временем C++: 🗿🗿
Нормально))
Там есть ctype, имба
Ну и по традиции, я не знаю с чего начать писать код.... ПЗДЦ. Я дико извиняюсь))) код читаю, понимаю, как начать писать то всё пиши пропало как говорится...
в первые вообще домашнее задание выполнял, никогда не мог! отвечаю ни разу не получалось. а тут вот родил уродца -)) немного поменял текст задания. чтоб не повторятся -) короче текст должен быть такой.- Дай мне пожалуйста еще вещей. (по принципу все, всё) и вот решение:
async void button1_Click(object sender, EventArgs e)
{
textBox1.Text= textBox1.Text.Replace("еще", "ещё").Replace("вещёй", "вещeй").Replace("пожалуйста","пожалуйста,").Replace("пожалуйста,,", "пожалуйста,");
button1.Text = button1.Text.Replace("Исправить", "Исправлено");
await Task.Delay(1000);
button1.Text = button1.Text.Replace("Исправлено", "Скопировать");
Clipboard.SetDataObject(textBox1.Text);
}
Тогда пусть люди пишут либо правильно сразу свои статьи, либо в программку-исправлялку
Ты можешь написать домашнее задание я не понял что надо сделать
Сейчас напишу и закреплю.
По ДЗ: как сделать так, чтобы вместе с "скопировано в буфер", текст в "textbox1" выделился ну скажем синим цветом? Кто подскажет?
void button1_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text.Replace("е", "ё").Replace("Еще", "Ещё");
Method("Иcправлено", 1000);
if (textBox1.Text.Contains("пожалуйста"))
{
textBox1.Text = textBox1.Text.Replace("пожалуйста", ", пожалуйста,");
}
Method("Скопировать в буфер обмена", 2000);
Clipboard.SetDataObject(textBox1.Text); //
Подожди с выделением.
В домашнем задании нужно было заменить е на ё там, где это нужно.
У Тебя заменяется абсолютно везде.
РьидОллТьэкст
Hi author and cool teacher! I recommend you training your listening English! Thanks, you for such an interesting lessons!
фоновый соундтрэк уж больно по душе Дорогой Хачатур...я бы скачал его гденибудь у Вас... слушал бы его и слушал во время своих шабашек..
Lost Son - Life
@@XpucT огромное спасибо
Д/З сделано - работа со строками не проходит даром 👌 (найденная мной бредовая «рыба» будет под этим комментарием 📄):
using System;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HomeWork
{
public partial class Form1 : Form
{
int click = 0;
public Form1()[...]
void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = File.ReadAllText(@"C:\Users\Admin\Desktop\fish.txt");
}
async void Button1_Click(object sender, EventArgs e)
{
click++;
switch (click)
{
case 1:
button1.BackColor = System.Drawing.Color.Khaki;
button1.Text = "Исправляется...";
await Task.Delay(500);
string line = textBox1.Text;
string[] mistakes =
{
"еще",
"все равно",
"влечет",
"серьезно",
"пожалуйста",
"тем не менее",
"таким образом",
"однако",
"Тем не менее",
",,",
", ,",
" ,"
};
string[] corrects =
{
"ещё",
"всё равно",
"влечёт",
"серьёзно",
", ",
","
};
for (int i = 0; i < 12; i++)
{
textBox1.Text = line.Contains(mistakes[i]) ? line.Replace(mistakes[0], corrects[0]).
Replace(mistakes[1], corrects[1]).
Replace(mistakes[2], corrects[2]).
Replace(mistakes[3], corrects[3]).
Replace(mistakes[4], corrects[4] + mistakes[4] + corrects[5]).
Replace(mistakes[5], corrects[4] + mistakes[5] + corrects[5]).
Replace(mistakes[6], corrects[4] + mistakes[6] + corrects[5]).
Replace(mistakes[7], corrects[4] + mistakes[7] + corrects[5]).
Replace(mistakes[8], mistakes[8] + corrects[5]).
Replace(mistakes[9], corrects[5]).
Replace(mistakes[10], corrects[5]).
Replace(mistakes[11], corrects[5]) : textBox1.Text;
}
await Task.Delay(1000);
button1.Text = "Скопировать исправленный текст"; break;
case 2:
button1.BackColor = System.Drawing.Color.Snow;
Clipboard.SetDataObject(textBox1.Text);
button1.Text = "Скопировано в буфер обмена!"; break;
}
}
}
}
Скажите пожалуйста, курс на социально-ориентированный национальный проект способствует повышению актуальности дальнейших направлений развития проекта? Задача организации, в особенности же консультация с профессионалами из IT способствует подготовке и реализации системы обучения кадров, соответствующей насущным потребностям!
Соображения высшего порядка, а также дальнейшее развитие различных форм деятельности все равно зависит от ключевых компонентов планируемого обновления!
С другой стороны сложившаяся структура организации влечет за собой еще и процесс внедрения, а также модернизации модели развития.
Тем не менее постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание ключевых компонентов планируемого обновления. Значимость этих проблем должна быть очевидна большому кругу лиц однако реализация намеченного плана развития может серьезно повлиять на весомую часть направлений прогрессивного развития. Таким образом , новая модель организационной деятельности требует от нас системного анализа соответствующих условий активизации... 😏😅
ув.Хачатур привет
у меня уже мозг закипает (по домашнему заданию :) )
вот моя первая часть кода:
async void button1_Click(object sender, EventArgs e)
{
{
textBox1.Text = Clipboard.GetText();
await Task.Delay(1000);
textBox1.Text = textBox1.Text.Replace("еще", "ещё").ToUpper();
button1.Text = button1.Text.Replace("Исправить текст", "Исправлено");
}
}
void textBox1_Click_1(object sender, EventArgs e)
{
textBox1.Text = "";
}
в этой первой части кода у меня меняет название кнопки и копирует из буфера текст и помещает его в textbox1.
но вот вторую часть не могу сообразить, чтоб копировало этот же текст по второму нажатию (мозг закипает).
думал может так:
// if (textBox1.Text.Contains("ВСЁ"))
// {
// textBox1.Text = Clipboard.SetDataObject();
// await Task.Delay(1000);
// button1.Text = button1.Text.Replace("Исправлено", "Скопировано в буфер");
// }
// else;
но тоже не работает.
Чувствую буду долго кумекать))))
P.S. многие тут писали за тобой, типа из файла копировать и т.д.
я же постарался и нашел вариант который работает из буфера сразу.
Могу похвалить за внимательность и попытку выполнить строго сказанное задание, однако, даю добро создать отдельную кнопку, ибо на самом деле в реале редко будет одна кнопка выполнять разные действия. Очень редко. Но, опять же, похвально, что решил бахнуть всё с одной кнопки.
Так или иначе, чтобы переписать кнопку под новые сценарии (если прям запариться), то первое, что приходит в голову - проверять текст самой кнопки. То есть, если в кнопке на данный момент прописано _Исправить,_ то она выполнит именно исправление. Если _Скопировать,_ то, соответственно, копирует исправленный результат.
Отталкивайся от этого 👍
@@XpucT спасибо, завтра буду кумекать.
А с двумя кнопками я делал и у меня работало (вроде) , только я не стал писать сюда и спрашивать, хочу именно по твоим словам сделать, думаю много это времени займёт 😁😁но буду стараться.
Иногда бывает так, что в голове ты понимаешь и вроде все логично, но как начинаешь писать код, то сразу начинается ж*па😢, но это не хватает опыта и программного мышления.
Спасибо тебе.
@@XpucT Привет
если делать задание с помощью двух кнопок, то я сделал так:
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace copygotova
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
async void button1_Click(object sender, EventArgs e)
{
string ispravleno = "Исправлено";
// string scopy = "Скопировать текст";
{
button1.Text = ispravleno;
// textBox1.Text = Clipboard.GetText();
textBox1.Text = textBox1.Text.Replace("еще", "ещё").ToUpper();
await Task.Delay(2000);
}
}
void textBox1_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox1.Text = Clipboard.GetText();
}
void button2_Click_1(object sender, EventArgs e)
{
Clipboard.SetDataObject(textBox1.Text);
}
}
}
//может и плохой код))) но свою задачу выполняет
пока не могу разобраться чтоб на одну кнопку назначить несколько событий, но понимаю (твою подсказку).
т.е. нужно сделать если в button1.Text поменялось свойство Text , то нужно сделать второе действие например скопировать текст в буфер
пример
if (button1.Text=button1.Text"Исправлено")
то скопируй текст Clipboard.SetDataObject(textBox1.Text);
как то так)) но воплотить чтоб работало, нема опыта.
async private void button1_Click(object sender, EventArgs e)
{
Proverka();
async void Proverka()
{
if (button1.Text != "Исправлено" && button1.Text != "Скопировать в буфер обмена")
{
string line = textBox1.Text.Replace("еще", "ещё").Replace("Еще", "Ещё").Replace("все еще", "всё ещё").Replace("Все еще", "Всё ещё")
.Replace("например ", "например, ").Replace("Например ", "Например, ").Replace("кроме того ", "кроме того, ")
.Replace("Кроме того ", "Кроме того, ").Replace("возможно ", "возможно, ").Replace("Возможно ", "Возможно, ");
textBox1.Text = line;
button1.Text = "Исправлено";
}
else
{
await Task.Delay(2000);
button1.Text = "Скопировать в буфер обмена";
return;
}
}
if (button1.Text == "Скопировать в буфер обмена")
{
Clipboard.SetDataObject(textBox1.Text);
await Task.Delay(2000);
button1.Text = "Готово";
await Task.Delay(1000);
Close();
}
else
{
}
}
ув.Хачатур Привет
кажется я добился первого правильного решения блока твоего вопроса))
вот мой код получился:
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace copygotova
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
async void button1_Click(object sender, EventArgs e)
{
textBox1.Text = Clipboard.GetText();
await Task.Delay(2000);
textBox1.Text = textBox1.Text.Replace("еще", "ещё").ToUpper();
button1.Text = button1.Text.Replace("Исправить", "Исправлено");
if (button1.Text == "Скопировать текст")
{
Clipboard.SetDataObject(textBox1.Text);
}
await Task.Delay(2000);
button1.Text = button1.Text.Replace("Исправлено", "Скопировать текст");
}
void textBox1_Click(object sender, EventArgs e)
{
textBox1.Text = "";
}
}
}
вот .exe программы, я закинул (https: // www. upload.ee/download/14832090/531e929498fb1c48882d/copygotova.exe)
в ссылке сделал 3 пробела ((https: // www. ) их нужно убрать, чтоб ютуб пропустил
P.S> переходим ко второй части со словом "Пожалуйста "
textBox1.Text = textBox1.Text.Replace("Пожалуйста", "Пожалуйста,") .......
сейчас на metanite нашёл Compare (Сравнение строк), наверно с ним нужно работать....(https: // metanit.com/sharp/tutorial/7.2.php)
Вот это 👏👏👏
@@XpucT Привет
сегодня добился результата по поводу слова пожалуйста с ","
вот мой код:
async void button1_Click(object sender, EventArgs e)
{
textBox1.Text= Clipboard.GetText();
textBox1.Text = textBox1.Text.Replace("все", "всё").Replace("еще", "ещё").Replace("пожалуйста,", "пожалуйста");
if (textBox1.Text.Contains("пожалуйста"))
textBox1.Text = textBox1.Text.Replace("пожалуйста", "пожалуйста,");
}
P>S.
мне можно идти дальше, или на твой взгляд нужно еще изучать все до 21-го урока по новой?
Пока трудно с логикой и с правильным ходом мысли(что за чем должно идти в коде).
вот ссылка ( www .upload.ee/download/14837770/8202218498851c4b259c/Desktop.rar)
по ссылке мой текст в текстовом файле, который я копирую в буфер и работаю с программой тоже по ссылке)
@@user-wu-tang определённо можно двигаться дальше 👍
@@XpucT честно сказать, голова болела, пока эту последовательность уловишь, но не хотел двигаться дальше, чтоб не забивать голову.
Спасибо, иду дальше.
Привет. Вот что получилось
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
bool исправлено = false;
public Form1()
{
InitializeComponent();
}
async void Button1_Click(object sender, EventArgs e)
{
if (!исправлено)
{
textBox1.Text = textBox1.Text.Replace("еще", "ещё").Replace("все равно", "всё равно").Replace("пожалуйста ", "пожалуйста, ");
await Task.Delay(1200);
исправлено = true;
button1.Text = "Скопировать";
textBox1.Enabled = false;
}
else
{
Clipboard.SetDataObject(textBox1.Text);
button1.Text = "Скопировано";
button1.Enabled = false;
}
}
}
}
async void button1_Click(object sender, EventArgs e)
{ textBox1.Text = textBox1.Text.Replace("еще",
"ещё").Replace("Еще", "Ещё").Replace("все равно",
"всё равно").Replace(" пожалуйста", ", пожалуйста,").Replace(",, пожалуйста,,", ", пожалуйста,");
if (textBox1.Text.Contains(textBox1.Text))
{
button1.Text = "Исправлено";
await Task.Delay(1000);
button1.Text = "Скопировать в буфер обмена";
}
Clipboard.SetDataObject(textBox1.Text);
}
Вот, исправляет текст из текстБокса
bool fix = false;
async void Button1_Click(object sender, EventArgs e)
{
if (fix == false && textBox1.Text != "") {
Method();
button1.Text = "Исправлено";
await Task.Delay(1000);
button1.Text = "Копировать";
fix = true;
} else {
if (textBox1.Text != "" && button1.Text == "Копировать") {
Clipboard.SetText(textBox1.Text);
button1.Text = "Скопировано!";
await Task.Delay(1000);
button1.Text = "Копировать";
} else {
MessageBox.Show("Поле пустое");
button1.Text = "Исправить";
}
}
void Method()
{
textBox1.Text = textBox1.Text.Replace("еще", "ещё");
textBox1.Text = textBox1.Text.Replace("все-равно", "всё-равно");
textBox1.Text = textBox1.Text.Replace("ежик", "ёжик");
}
}
как-то так
async private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Исправить")
{
string[] notCorrected = { "все равно", "все еще", "все же", "все таки", "это все", "еще", "пожалуйста ", ", пожалуйста ", " пожалуйста ", " пожалуйста,", ",," },
corrected = { "всё равно", "всё ещё", "всё же", "всё таки", "это всё", "ещё", "пожалуйста, ", ", пожалуйста, ", ", пожалуйста, ", ", пожалуйста,", "," };
for (int i = 0; i < notCorrected.Length; i++)
{
textBox1.Text = textBox1.Text.Contains(notCorrected[i]) ? textBox1.Text.Replace(notCorrected[i], corrected[i]) : textBox1.Text;
}
button1.Text = "Исправлено";
await Task.Delay(2000);
button1.Text = "Скопировать исправленный текст";
}
Clipboard.SetDataObject(textBox1.Text);
}
Ассалому алайкум Хачатурака! За класные уроки огромный Рахмат!!! В качестве домашная задания написал программу каторий переводит Кирилский буквы на Латинский и обратно. Возник проблема с буквы "е"(кирилский) это букву надо читат как "э", местами "йе" для этого я написал это:
... else if(textBox1.Text.StartsWith("е")) textBox1.Text = textBox1.Text.Replace("е", "ye");// ("Узбекский кирил", "O`zbekcha lotin") else if (textBox1.Text.Contains("е")) textBox1.Text = textBox1.Text.Replace("е", "e"); ... тепер когда запускаю и набераю текст:"место елена" программа переводит "myesto yelena" пожалуйста, помогите как исправит. Знаю где ошибся но как решит незнаю.