Уроки C# - File, FileStream, StreamWriter - работа с файлами, копирование, перемещение, запись - C#

  Рет қаралды 124,499

XpucT

XpucT

Күн бұрын

Пікірлер: 252
@Slonick
@Slonick 5 жыл бұрын
using для потоков сокращает код в разы. Он при компиляции генерирует try-finaly блок и закрывает потоки в finaly, то есть даже при ошибке поток будет закрыт. А каждый раз руками писать try finaly это уже долго и много.
@farhadgojazade9918
@farhadgojazade9918 9 ай бұрын
Почти. Using может быть использован только с экземплярами классов, которые имплементированы от интерфейса IDisposable. в итоге он делает следующее: try{ Stream stream = ... // наш код } finally{ stream.Dispose(); //Потому что у каждого объекта с этим интерфейсом есть такой метод } Это всего лишь синтаксический сахар, но мы не можем его использовать, если нам нужно ловить ошибки которые могут всплыть. тогда уже нам придется использовать try catch finally
@rem-k2o
@rem-k2o 6 ай бұрын
господи, вы святой, просто нет больше таких людей, которые рассматривают тему и отдают время маленьким нюансам, которые никто до вас не затрагивал
@zeazurus4001
@zeazurus4001 5 жыл бұрын
Хауди и Дударь нервно курят в сторонке со своими "ЯП за час". Разница в длительности небольшая, а разница в полезности потраченного времени колоссальная. Спасибо за видео.
@witemax
@witemax 4 жыл бұрын
ты перечислил развлекательные каналы) а тут именно обучающий))) Например репаками от XpucT я пользуюсь, так что тоже всецело доверяю его уровню)))
@cricon_bot
@cricon_bot 2 жыл бұрын
"Тык тык тык - тра-ля-ля, опа-опа - красота" - я как начинающий именно в такой подаче всё понимаю)) Это что я искал (Без сорказма). Спасибо XpucT!
@XpucT
@XpucT 2 жыл бұрын
@Andrii_Brychka
@Andrii_Brychka 8 ай бұрын
Просто лучшие объяснения. Всё понятно и интересно, а главное - нет воды.
@juniorkot8714
@juniorkot8714 5 жыл бұрын
using... видел в других проектах но не понимал до конца сути... наконец дошло (по крайне мере в общем)... спасибо добрый человек... :)
@eriator3359
@eriator3359 5 ай бұрын
00:00 Работа с файлами 01:55 Удаление файлов 03:56 Копирование файлов 06:49 Создание файлов 08:46 Закрытие файлов 11:34 Создание экземпляра формы 16:25 Использование файла стрим 19:21 Создание и запись в файл 23:15 Работа с потоками 26:04 Использование стрима и файла 29:00 Использование веб-клиента 31:52 Использование юзинга 34:57 Использование стрима и пэта 39:08 Работа с файлами 41:31 Поиск и выделение текста
@Mar_doK
@Mar_doK 3 жыл бұрын
Спасибо, всё очень понятно, всегда не нравилось работать с файлами из-за большого количества строк, но после это урока вся неприязнь улетучилось. Очень познавательно.
@lednev5426
@lednev5426 Жыл бұрын
Спасибо, очень доступно и понятно. Самое лучшее, что подчеркнул из этого видео для себя, это то что нужно проявлять любопытство, проверять различные команды на себе и самое главное не пытаться сделать правильно, а упасть на ошибку и разбираться, понять почему упали и ТД. Ещё раз спасибо
@try_parse99
@try_parse99 2 жыл бұрын
Наверное самые полезные видео уроки на ютубе, спасибо огромное!)
@XpucT
@XpucT 2 жыл бұрын
@KingDog25
@KingDog25 2 жыл бұрын
Все над чем я так долго думал, смешивая потоки и I/0.File оказалось в одном видео, спасибо!
@deadpo0l4ik85
@deadpo0l4ik85 5 жыл бұрын
привет Христ!просмотрел 20 уроков и больше понял простым языком чем от курса по С# который преподавал фул стек.очень доступно и понятно обьясняеш!так держать ты круче всех на ютубе!
@XpucT
@XpucT 5 жыл бұрын
Спасибо 🤝
@КонстантинФабрисенко-ч7ы
@КонстантинФабрисенко-ч7ы 3 жыл бұрын
Пересматриваю твои видео по несколько раз. Спасибо за труды.
@РичардШевчук
@РичардШевчук 3 жыл бұрын
Лучший ютубер по программированию, всегда на все свои вопросы нахожу ответы именно в ваших видео !!!
@XpucT
@XpucT 3 жыл бұрын
@RusGameDraft
@RusGameDraft 3 жыл бұрын
Чтобы видеть какие перегрузки есть можно ставить не запятую, а нажимать Ctrl + Shift + Space
@SAYREXPlay
@SAYREXPlay 2 жыл бұрын
Классно конечно. Вот только ещё бы как-то запомнить всё это)) Эх, что ж я лет десять назад не начал изучать)) Спасибо за урок, Хачатур!
@DjackVorobeyUA
@DjackVorobeyUA 2 жыл бұрын
Лучшие гайды, продолжай снимать!!! Очень круто, спасибо!
@lelelelevv
@lelelelevv 3 жыл бұрын
2:11 да кот вообще не против
@ВладимирВладимирович-ю6х
@ВладимирВладимирович-ю6х 4 жыл бұрын
Пока мало чего понял,но очень интересно. Однозначно - Сокол!!!
@Eltar007
@Eltar007 5 жыл бұрын
Спасибо! Очень подробно раскрыли задачу записи файла. Пишу на C# в Zennoposter, для удобства сделал себе методы: public static void WriteL (string path,string str) { using (FileStream file = new FileStream(path,FileMode.Append)) { using (StreamWriter stream = new StreamWriter(file)) { stream.WriteLine(str); stream.Close(); } file.Close(); } } public static void WriteL2 (string path,string str) { using (StreamWriter stream = new StreamWriter(path,true)) { stream.WriteLine(str); } }
@XpucT
@XpucT 5 жыл бұрын
Ещё лучше сделать это расширением 👍 Про это также есть видео на канале ;)
@Eltar007
@Eltar007 5 жыл бұрын
@@XpucT Ссылочку сбросите? А то очень уж много видео у вас )
@XpucT
@XpucT 5 жыл бұрын
@@Eltar007 kzbin.info/www/bejne/aorWcpl6bt-krtk Я же рекомендую идти последовательно.
@SatanaD-ug4xo
@SatanaD-ug4xo 9 ай бұрын
Мужик, ты реально лучший
@АндрейТишкин-щ9щ
@АндрейТишкин-щ9щ 2 жыл бұрын
Я вспотел, но это реально КРУТО!!! Спасибо за такие видосы!
@wany2052
@wany2052 4 жыл бұрын
Хорошо что всё объясняешь простым языком, а то многие объясняют заумными терминами и мой котелок вообще не варит, благодарю)
@ДарьяДоренская-к6р
@ДарьяДоренская-к6р 5 жыл бұрын
Очень доступное объяснение, однозначно круто
@kinaidoa4384
@kinaidoa4384 2 жыл бұрын
Подписка. Очень крутые, полезные, а главное понятные уроки. Спасибо за труд и потраченное время!
@ИгнатАникович
@ИгнатАникович 4 жыл бұрын
я слушал с удовольствием) Спасибо
@SCEEF
@SCEEF 5 жыл бұрын
[ПОИСК ЛЮБОГО ТЕКСТА И ВЫДЕЛЕНИЕ ЕГО В TEXTBOX + ПОДДЕРЖКА НЕСКОЛЬКИХ ВАРИАНТОВ] Я решил проблему парня, он просил тебя показать как выделить конкретное "слово". Вот моя программа, которая выделяет текст, которые мы укажите, при том, если результат не один, позволяет перешагивать по ним, так же указывая сколько результатов найдено. (есть textbox1 - там текст в котором ИЩЕМ, так же textbox2 - текст который ищем, label1 - счетчик - сколько результатов найдено, ну и кнопка, для поиска и перелистывания по найденным вариантам ) List count; string text; string text0; public Form1() { InitializeComponent(); count = new List(); } void Button1_Click(object sender, EventArgs e) { text = textBox2.Text; text0 = textBox1.Text; if (textBox2.Text != "" && textBox1.Text.Contains(text)) { if (count.Count == 0) Find(); else Next(); } } void Find() { for (int i = 0; text0.Contains(text); i++) { string txt = text0; txt = txt.Remove(txt.IndexOf(text)); if (count.Count == 0) { count.Add(txt.Length); } else { count.Add(txt.Length + count[i - 1]+1); } text0 = text0.Substring(text0.IndexOf(text) + 1); } label1.Text = count.Count.ToString(); Next(); } void Next() { textBox1.Focus(); textBox1.Select(count[0], text.Length); count.RemoveAt(0); } void TextBox2_TextChanged(object sender, EventArgs e) { count.Clear(); } Скрин программы: sun9-50.userapi.com/c856120/v856120430/d318f/w92kFtDPRR0.jpg Мой вк: vk.com/sceef - учу c# с целью создавать игры, пишите, помогу чем смогу (Сам нуб, но что-то могу)
@ИванСеменов-ч2ц
@ИванСеменов-ч2ц 4 жыл бұрын
Классно! Ты большой молодец)
@TOTGAD
@TOTGAD 4 жыл бұрын
Главное: Кукушкой понимать)))) 100%
@mrsoomo
@mrsoomo 2 жыл бұрын
Спасибо сейчас учусь мой первый язык твои гайды сильно помогают
@XpucT
@XpucT 2 жыл бұрын
@acer6788
@acer6788 Жыл бұрын
насчет selected text, можно сделать так, чтобы выделенный текст в текстбоксе удалялся (в данном примере с 0 по 5 символ) async void Button1_Click(object sender, EventArgs e) { textBox1.Focus(); textBox1.SelectionStart = 0; textBox1.SelectionLength = 5; textBox1.SelectedText = ""; await Task.Delay(2000); textBox1.DeselectAll(); }
@godsprogrammer9826
@godsprogrammer9826 4 жыл бұрын
Просто космос!!! Нереально круто!
@billlanc9461
@billlanc9461 3 жыл бұрын
Подача просто топ!
@klmv--a--r--t--
@klmv--a--r--t-- 3 жыл бұрын
Спасибо! Очень понятно объяснили.
@ПомойкаЛафлейра
@ПомойкаЛафлейра 5 жыл бұрын
WebClient wc = new WebClient; WebClient туалет = new WebClient
@ivannarykin
@ivannarykin 3 жыл бұрын
Большое спасибо за видео!
@АлексДжаванов
@АлексДжаванов 2 жыл бұрын
Хачатур ты уникальный человек! спасибо!!! из таких как ты оч хорошие преподавателе получаются ! Хачатур разивши вопрос, как сделать свою запись в картинок в dll файл ? Судя по всему половина ответа дана на этом видео, осталось еще чутка додумать ))) Только думалка не думает ))
@XpucT
@XpucT 2 жыл бұрын
Привет 🖐 Нагуглилось за 1 секунду =) social.msdn.microsoft.com/Forums/en-US/9497953c-4352-4ba7-9323-c19b423cb1fe/how-to-store-png-files-as-resources-in-a-class-library-and-access-them-as-bitmapimages?forum=wpf
@fee4kabloom940
@fee4kabloom940 5 жыл бұрын
Спасибо, хорошо ты мне помог. Лайк, удачи тебе в продвижения канала.
@xBETEP
@xBETEP 4 жыл бұрын
Спасибо за все огромное!
@13PRoman
@13PRoman 5 жыл бұрын
Спасибо огромное за понятное объяснение !!
@karma5933
@karma5933 2 жыл бұрын
Лайк, подписка, крутой мужик
@neuroArgento
@neuroArgento 4 жыл бұрын
Если говорить об экземпляре класса, то можно провести простую аналогию, что класс - это чертёж, а экземпляр класса - это предмет, построенный по этому чертежу (как например, чертёж самолёта и построенный по этому чертежу самолёт). На чертеже (классе) летать нельзя, это по сути просто бумажка, инструкция, по которой можно что-то создать, у неё только одна функция. А экземпляр класса, то бишь предмет, построенный либо собранный по этому чертежу, уже можно использовать как угодно, ведь это теперь не бумажка, а полноценный, собранный с нуля объект, на котором можно летать/ездить/спать и т.д.
@karma5933
@karma5933 2 жыл бұрын
Круто было бы увидеть видео, в котором показывается работа с технологией filestream sql и использование ее в с# с помощью opensqlfilestream , потому как в интернете очень мало информации про это а видеоматериал вообще отсутствует
@PianoElipse
@PianoElipse 4 жыл бұрын
А можно теперь видео о бинарных файлах и о том как с ними работать?
@enjoymusicbymaks
@enjoymusicbymaks 2 жыл бұрын
2:18 Але оп 😁
@XpucT
@XpucT 2 жыл бұрын
@andron_kozmos
@andron_kozmos Жыл бұрын
Хачатур, добрый день! Как можно чистить папку Temp(и не только) по назначенному времени, либо при вкл. /выкл. компа? В этой папке скапливается всякое барахло, которое занимает много места.
@CheatSamyel
@CheatSamyel 3 жыл бұрын
Спасибо)
@0rdinat378
@0rdinat378 5 жыл бұрын
СПАСИБО, ТЫ СПАС МОЙ КУРСАЧ!
@ЮлияРион
@ЮлияРион 4 жыл бұрын
мне б такой курсач с такой темой :D
@ФаридЮсубов-с8ф
@ФаридЮсубов-с8ф 2 жыл бұрын
Крутой урок!
@firstlast493
@firstlast493 5 жыл бұрын
То как же найти заданный текст в текстбоксе и выделить его?
@TheCrossfor
@TheCrossfor 5 жыл бұрын
Давно пора познакомить людей с файлдиалогом, чтобы не хардкодить путь)
@XpucT
@XpucT 5 жыл бұрын
Доберёмся =))
@Velvi42
@Velvi42 5 жыл бұрын
Подобие блокнота, который работает с одним файлом private void Form1_Load(object sender, EventArgs e) { //Берем текст из файла и вставляем в текст бокс для дальнейшей работы с текстом using (StreamReader sr = new StreamReader(path)) { textBox1.Text = sr.ReadToEnd(); } } private void Button1_Click(object sender, EventArgs e) { //объявляем строку с текстом, в которую будет записано все содержимое текст бокса string text = textBox1.Text; //производим непосредственно запись текста из текст бокса в файл //OpenOrCreate, а не Append сделан из-за того, что в текст боксе уже есть весь текст из файла using (FileStream file = new FileStream(path, FileMode.OpenOrCreate)) { using (StreamWriter sw = new StreamWriter(file)) sw.Write(text); } }
@nevo5712
@nevo5712 3 жыл бұрын
Понимаю, что немного не по теме, но мне очень нужен совет. У меня задание - сделать десктопный файлообменник. Т.е. сделать форму в VS и привязать ее к уже готовому сайту-файлообменника (например, filecloud,me). Основная проблема в том, что я не знаю как именно форму привязать к сайту, что-бы можно было выбрать файл на компьютере с приложения и закинуть его на сайт, а после - вернуть ссылку, которую сайт сгенерирует.
@ТотЕщёГастелло
@ТотЕщёГастелло 4 жыл бұрын
БОМБА!!!! СПАСИБО.
@RosGamePlay
@RosGamePlay 2 жыл бұрын
Привет, Учитель!) Столкнулся с проблемой: при создании кнопки закрыть Экземпляр, она срабатывает только 1 раз, а последующие разы - выдаёт ошибку: "Доступ к ликвидированному объекту невозможен". По коду, всё сделал как в твоём уроке. Но, увы!!... private void button12_Click(object sender, EventArgs e) { cool1.Show(); } Practic2 cool1 = new Practic2(); private void button11_Click(object sender, EventArgs e) { cool1.Close(); } Подскажи, в чём может быть причина?! Заранее благодарю!
@XpucT
@XpucT 2 жыл бұрын
Привет 🖐 Нужно делать проверку на наличие экземпляра. В одном из будущих видео на канале есть про это.
@RosGamePlay
@RosGamePlay 2 жыл бұрын
@@XpucT Благодарю!
@azitwo4268
@azitwo4268 5 жыл бұрын
Привет, шикарные уроки, ты единственный кого я смотрел можешь на доступном языке объяснить) Можешь пожалуйста, если время будет, объяснить как с Word работать через C#, а то нигде нет этого(
@XpucT
@XpucT 5 жыл бұрын
Привет 🖐 Смотря что с ним требуется. Но если задач связанных с Word много, то проще скачать готовую библиотеку и обращаться к ней. Это называется API. Кто-то пилит свою dll и придумывает к ней методы, такие же, как делаем мы. Ты в _Обозревателе решений_ нажимаешь правой кнопкой мыши на _Ссылки_ и добавляешь эту самую dll. После чего в Твоём проекте становятся доступными все методы из этой библиотеки. Начинать нужно с Google и вводить там: _Word API C#_
@azitwo4268
@azitwo4268 5 жыл бұрын
@@XpucT Спасибо)
@gorgulianaohote
@gorgulianaohote 3 жыл бұрын
Спасибо, просто спасибо...
@andrewtetekin6393
@andrewtetekin6393 3 жыл бұрын
привет, расскажешь про credential и подключение? как будет время, если сможешь)
@Anton-Os
@Anton-Os 5 жыл бұрын
Хачатур, полезнейшее видео! Задался вопросом, а как правильно взаимодействовать между двумя и более формами, проверить из другой формы существует ли первая: если существует то например закрыть её, если нет то создать, а не плодить множество форм по клику. )) Как из второй формы правильно закрыть первую. Спасибо!
@XpucT
@XpucT 5 жыл бұрын
Вот на эту тему обязательно будут отдельные уроки. Как контролировать обе формы и чтобы одна и другая не была ущемлена. Как получить лучше всего доступ к контролу формы из класса и прочее. Но дайте сначала с делами разобраться. Потом вернусь к урокам 👍
@smart_electronics_il
@smart_electronics_il 2 жыл бұрын
Добрый вечер. Подписался на ваш канал, понравились видео) Есть вопрос, можете посоветовать, куда смотреть? есть задача выводить информацию построчно из словаря (который содержит в качестве значений -класс), я начал использовать listView, всё бы ничего, но при частом добавлении информации (примерно с периодом 50мс) начинает мерцать, хотелось бы как то это решить....
@XpucT
@XpucT 2 жыл бұрын
Добрый 🖐 Включите двойную буферизацию на самой форме 👍 Свойство DoubleBuffered = true.
@smart_electronics_il
@smart_electronics_il 2 жыл бұрын
@@XpucT Такое пробовал, не помогает... Мерцание именно в самом окне listView..
@КусочекСыра-т9х
@КусочекСыра-т9х 2 жыл бұрын
Видео вышло давно, но может кто объяснит, почему у меня нет описания методов? В видео например есть полное описание на русском что делает File.Copy, а у меня только то, как можно этот метод написать с разными перегрузка ми, а вот объясниния нет... (
@XpucT
@XpucT 2 жыл бұрын
Непонятно, что конкретно Вам непонятно. Про методы отдельный урок: kzbin.info/aero/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb
@sDerrnit18
@sDerrnit18 5 жыл бұрын
Вместо использования ctrl c и ctrl v, для нормализации табов можно использовать ctrl + k d
@XpucT
@XpucT 5 жыл бұрын
Не знал. Шикардос 👍
@sDerrnit18
@sDerrnit18 5 жыл бұрын
👍)
@Мибус
@Мибус 3 жыл бұрын
@@XpucT, а мне пишет, что "Сочетание клавиш (Ctrl+K, D) не является командой" или я что-то не так делаю?
@XpucT
@XpucT 3 жыл бұрын
@@Мибус после нажатия Ctrl + K посмотри, что пишется внизу.
@Мибус
@Мибус 3 жыл бұрын
@@XpucT "Была нажата клавиша Ctrl + K. Ожидается нажатие второй клавиши сочетания... " После этого жму d и выдаёт ту ошибку.
@garretgrom5823
@garretgrom5823 4 жыл бұрын
для выравнивание кода комбинация: cntr+K+D
@mrsad6611
@mrsad6611 4 жыл бұрын
спс))
@kenji994
@kenji994 11 ай бұрын
Как он в начале добавлял файл в папку , если нету доступа к рабочему столу ?
@СергейКузнецов-э4я2я
@СергейКузнецов-э4я2я 3 жыл бұрын
Спасибо большое
@mishalavik4595
@mishalavik4595 4 жыл бұрын
@XpucT, когда новые видео будут?
@user-wu-tang
@user-wu-tang Жыл бұрын
Привет ув. Хачатур на 24.14 сек ты говоришь оооо кошмар, вот и у меня такой же кошмар, когда я начинаю читать этот перевод(этот кошмар, чтоб отпугнуть всех учеников- это 100% ). Это ужасный перевод, но видь ты сам говоришь надо читать)) этот кошмар.))
@orliag218
@orliag218 3 жыл бұрын
Сам новичок, такой вопрос, в видео сказано что File лучше не использовать, а использовать только поток. Тогда как с потоком организовать удаление файла по адресу? Кроме как через File не нашел нашел как.
@XpucT
@XpucT 3 жыл бұрын
Удалять именно File.Delete() Тут уже ничего придумывать не нужно.
@alexeypermitin6804
@alexeypermitin6804 2 жыл бұрын
Хачатур добрый день. Подскажите что посмотреть у Вас? Мне необходимо проанализировать большой текстовый файл (1 Мб размер) но с расширением не txt (допустим bin) и где-то из середины взять данные засунуть их в массив и еще раз проанализировать. Т.е. каким то процессом файл создается заранее в определенном месте. Я должен создать форму в ней открыть каталог выбрать файл и остальное делает программа. Ну допустим она открывает вторую форму и говорит GOOD если данные меня устроят (ну это образно). Я не умею работать с файлами и тем более их анализировать.
@XpucT
@XpucT 2 жыл бұрын
Добрый 🖐 Вот как раз это видео должно навести на чтение файла, как потока.
@ИннокентийСмоктуновский-у8д
@ИннокентийСмоктуновский-у8д 3 жыл бұрын
Норм, норм 🤔 Необычно. Прям ...
@ИннокентийСмоктуновский-у8д
@ИннокентийСмоктуновский-у8д 3 жыл бұрын
Ну честно говоря не норм а прям хорошо. 👍 Потому что я залип и все посмотрел. Даже про текстбокс ☺
@GoldbergCC
@GoldbergCC 4 жыл бұрын
Т.е. со всеми потоками можно так сокращать? Например при работе с ДБ через MySQLDataReader/Writer, можно так же через using бахнуть?
@XpucT
@XpucT 4 жыл бұрын
Не можно, а нужно 👍
@ivi6004
@ivi6004 2 жыл бұрын
Доброго утра, Хачатур. Хотел повторить Ваш пример из урока «File, FileStream, StreamWriter - работа с файлами …», для начала самый простой приведённый на 10-11 минуте. В результате на строке «File.Create(path).Close()» происходит остановка и выскакивает сообщение System.IO.DirectoryNotFoundException: "Не удалось найти часть пути "D:\C_DATA ame1.txt"." Подскажите пожалуйста, что я делаю не так? Работаю в Microsoft Visual Studio Community 2019, среда: NET Framework 4.8, using System.IO - присутствует. В интернете ничего вразумительно не нашел. Одна надежда на Вас и извините за беспокойство.
@XpucT
@XpucT 2 жыл бұрын
Доброе утро ☀ На самом деле из ошибки в этом случае всё нужно понимать буквально. Такого пути не существует D:\C_DATA ame1.txt Либо файл, либо папка имеют где-то кириллицу, либо опечатка, либо просто нет такого файла. Но самый точный ответ будет звучать так: Такого пути: D:\C_DATA ame1.txt Не существует.
@ivi6004
@ivi6004 2 жыл бұрын
@@XpucT Большое спасибо за оперативный ответ. Видимо, где-то был мой косяк. Создал новую директорию, тупо заново набрал этот кусочек в программе и свершилось чудо. Вы настоящий гуру. Результаты прекрасно сохраняются из textBox-а, можно ли также сохранить данные из ListBox-а? У меня простая замена textBox на listBox дала пустой файл. Еще раз спасибо за Вашу просветительскую работу. В инете много, типа знатоков, но Ваши лекции - блестящи как по глубине, так и по доходчивости.
@ivi6004
@ivi6004 2 жыл бұрын
Спасибо, вопрос сохранения данных из ListBox-а на HDD я решил сам. Спасибо за помощь.
@АндрейБ-щ2б
@АндрейБ-щ2б 5 жыл бұрын
Как включить всплывающие подсказки в visual studio на русском?
@kashiroko6632
@kashiroko6632 4 жыл бұрын
9:06 я выпал upd: так вот, что делает =new. Cтавлю третий лайк
@kashiroko6632
@kashiroko6632 4 жыл бұрын
а я могу из основной формы открыть экземпляр этой же формы?
@XpucT
@XpucT 4 жыл бұрын
Да =)
@vadymkon
@vadymkon Жыл бұрын
Привет! Спасибо за урок! Расскажи пожалуйста, есть вот у меня такая картина: ... private void button2_Click(object sender, EventArgs e) { Selected(button2.Text); } private void button3_Click(object sender, EventArgs e) { Selected(button3.Text); } private void button4_Click(object sender, EventArgs e) { Selected(button4.Text); } ... И таких методов у меня около 15, может можно их как-то сократить?
@XpucT
@XpucT Жыл бұрын
Привет 🖐 Да, с помощью LINQ. На канале есть видео.
@vadymkon
@vadymkon Жыл бұрын
@@XpucT спасибо, ещё не дошел до него
@vadymkon
@vadymkon Жыл бұрын
А не, дошел, уже ведь разбирали foreach в комбинации с checkbox. Ещё раз спасибо за контент
@XpucT
@XpucT Жыл бұрын
@@vadymkon не рекомендую прыгать по видео. Важно закончить уроки последовательно.
@vadymkon
@vadymkon Жыл бұрын
@@XpucT а я смотрю последовательно (по плейлисту). Просто где-то ты упоминал уже такой прикол вроде(в уроке вроде, где ещё показал как постепенно появляющийся текст делать), я благодаря нему сделал прикольную анимацию на чекбоксах
@mrChecker1337
@mrChecker1337 2 жыл бұрын
Как считать файл и занести оттуда определенный текст в TextBox ?
@XpucT
@XpucT 2 жыл бұрын
Как насчёт пройтись по всем урокам, чтобы не спрашивать про азы? kzbin.info/aero/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb
@ЮрийКачановский-ю3ю
@ЮрийКачановский-ю3ю 4 жыл бұрын
Может я что-то упустил. Пытаюсь записать файл по пути, выбранному пользователем. В пути есть русские символы. Соответственно файл не сохраняется. Если заменить на латинские все работает. Есть ли выход? Заранее спасибо в любом случае.
@XpucT
@XpucT 4 жыл бұрын
Кавычки и пробелы учитываете? Код, пожалуйста.
@ЮрийКачановский-ю3ю
@ЮрийКачановский-ю3ю 4 жыл бұрын
Спасибо за потенциальную подсказку. Причина проста. При формировании названия файла из fb2 появлялся символ конца строки. Визуально его не видно. Я скопировал формируемый путь, вставил в Word и отобразил нечитаемые символы. Там его и обнаружил. Спасибо за помощь и отличные уроки.
@d1kiywolf
@d1kiywolf 3 жыл бұрын
Мы нашли его! Он использует белую тему!!1!
@XpucT
@XpucT 3 жыл бұрын
Уже нет =)) Написал свою авторскую тему полностью.
@АндрейГоляновский-х4й
@АндрейГоляновский-х4й 4 жыл бұрын
Караул. Решил реализовать запись в файл в асинхронном стиле. Т.е. есть асинхронный метод, который открывает файл, и что-то в него записывает. Используя async await не получается организовать блокировку разделяемого ресурса (т.е. файла) таким образом, чтобы все запущенный потоки ожидали пока ресурс освободится, а не генерировали исключение. Как замкнуть файл на Monitor?
@XpucT
@XpucT 4 жыл бұрын
kzbin.info/www/bejne/pXjbi6inZ76YaLM&lc=Ugw4HPl7QSCci9BPUS94AaABAg.95BjL4j2zl495CyiQ0OkxL
@АндрейГоляновский-х4й
@АндрейГоляновский-х4й 4 жыл бұрын
нашел! используя инструкцию lock можно блокировать часть кода, который использует разделяемые ресурсы. Вот только одна беда - её нельзя использовать в лямбда, нужно создавать отдельный метод и передавать его через делегат.
@АндрейГоляновский-х4й
@АндрейГоляновский-х4й 4 жыл бұрын
@@XpucT Async await запускают метод асинхронно, но сами по себе не блокируют разделяемые ресурсы. Например, если кнопка, по нажатию которой что-то записывается в файл в асинхронном режиме, при этой вторичный поток засыпает на пару секунд, имитируя запись (пусть файл очень большой). Если в момент выполнения этого потока я повторно нажму кнопку, вылезет исключение - ресурс занят другим потоком. А нужно, чтобы он дождался, пока ресурс освободится.
@XpucT
@XpucT 4 жыл бұрын
@@АндрейГоляновский-х4й Первое, что в голову приходит - if или ещё лучше while. Нужно играться с ними.
@Вика-ъ7й6я
@Вика-ъ7й6я 3 жыл бұрын
А как таким образом сохранять листы, которые хранят какой-то пользовательский класс, и как потом эти данные правильно считать?
@XpucT
@XpucT 3 жыл бұрын
Продолжайте просмотр. Далее будет ответ.
@syndicate3208
@syndicate3208 5 жыл бұрын
А можно ли разделять на подстроки текст в потоке? У меня выдает ошибку не удается преобразовать string в string[]
@XpucT
@XpucT 5 жыл бұрын
Ресурсозатратно. Лучше потом разбить. string[] массивСтрок = строка.Split(new char[] { ' ', ' ' }, StringSplitOptions.RemoveEmptyEntries);
@nonsencephilosophy
@nonsencephilosophy 7 ай бұрын
спасибо за видео, а почему ты кодишь на виртуалке?
@smart_electronics_il
@smart_electronics_il 2 жыл бұрын
Добрый день. А ув ас случайно не планируется видео по Таймерам и освобождению ресурсов ?
@XpucT
@XpucT 2 жыл бұрын
Зачем, если C# сам этим занимается?
@smart_electronics_il
@smart_electronics_il 2 жыл бұрын
@@XpucT Исходя из того с чем я столкнулся, как то не очень он этим занимается)) Ну, или я конечно что то не так делаю...
@kollector.online9580
@kollector.online9580 4 жыл бұрын
У меня сейчас задача написать програмку, и вопрос скорее в том, правильным ли путем я иду, т.к. я не программист, а электронщик. В общем пробую написать что то вроде универсальной программы, с помощью которой взаимодействовать с разными электронными устройствами (своей сборки). Но чтобы программу не забивать мусором (т.к. у клиента будет одно или два устройства, а программу планируется сделать как минимум для нескольких десятков устройств). В общем было принято решение - подгружать новые формы и нужный код с помощью отдельных модулей. Выглядит это так: открывается первым окошко, в котором есть поля и кнопки для добавления нового модуля и удаления ненужных (просто копируется файл в папку программы и также удаляется из нее). Загруженные файлы отображаются построчно в list box, выбираем нужный и нажимаем кнопку "Применить конфигурацию". Открывается уже основное окно программы, которое получает ссылку требуемого на данный момент модуля и подгружает его. Соответственно открывается нужная форма, и программа. Правильно ли я выбрал вариант с динамически подгружаемыми DLL? Будет ли возможность подгружать нужный файл DLL и передавать программе через него например форму? Также в первом окне при выборе модуля в listbox надо чтобы из самого файла DLL подгружалось описание модуля и версия. Тут же отображалась например в Label.
@XpucT
@XpucT 4 жыл бұрын
Интересный подход =) Сказать правильно это или нет - нельзя, главное, чтобы это работало и Вас устраивало 👍
@kollector.online9580
@kollector.online9580 4 жыл бұрын
@@XpucT с DLL пока проблемка. За эти дни придумал как реализовать загрузку конфигураций и удаление, и соответственно отображение (но пока без использования в программе, просто как файл). Хотя конечно для программиста эти задачи показались бы примитивными, но я в первый раз делаю. Но вот с DLL пытаюсь с примеров собрать хоть что то, но пока результат не выходит. Например чтобы при выделении в listbox нужного модуля (т.е. DLL из папки), чтобы из выбранного DLL тут же в программу подгружалось описание модуля и версия. И отображалось например в метке label. Т.е. вопрос еще не решен с созданием самого DLL и с динамическим подключением. А что касается ваших уроков, хорошо сделаны, доходчиво. Но на данный момент развивается направление управление электронными модулями через приложения с компьютера или телефона. Поэтому думаю, если появились бы видео создания приложений для управления с компьютера разными микроконтроллерами, то зрителей бы прибавилось. Интересно больше взаимодействие языков C# и C. И отправка и прием не пары параметров, а например параметров 20-30 при этом разных, т.е. 1 или 0. И также обмен какой то текстовой информацией.
@artick5456
@artick5456 5 жыл бұрын
а где можно посмотреть , поиск файла по расширению ? типа C:\*.jpg подскажите пожалуйста!!
@XpucT
@XpucT 5 жыл бұрын
Directory.GetFiles(путь, *.jpg);
@artick5456
@artick5456 5 жыл бұрын
@@XpucT спасибо большое, а какое возвратное значение ? я так понимаю string путь.
@XpucT
@XpucT 5 жыл бұрын
@@artick5456 нет, это массив файлов. И его нужно уже сверять. Если нужно - убрать из списка файлы, которые !EndsWith(".jpg");
@artick5456
@artick5456 5 жыл бұрын
@@XpucT а где можно больше узнать об этом ?? просто слишком много вопросов , и не хочу вас больше отвлекать . Спасибо )
@XpucT
@XpucT 5 жыл бұрын
@@artick5456 Для этого есть видео, под которым Вы задаёте вопрос. Вам нужно всего лишь посмотреть 20 основных уроков. И желательно 20 следующих.
@МертваяТишина-х4в
@МертваяТишина-х4в 3 жыл бұрын
Очень понятно объясняешь друг ,спасибо огромное! У меня в институте так преподы не объясняли пык мык и все. Вопрос: обучаете ли вы за деньги C#? Если да, то свяжитесь со мной пожалуйста! Мне нужен такой преподаватель!
@XpucT
@XpucT 3 жыл бұрын
За деньги не преподаю, по двум причинам: 1. Мало у кого хватит денег оплатить Моё время. 2. Уроки даны в полной мере и комментарии абсолютно под каждым Я мониторю всегда и всегда рад помочь бесплатно любому новчику, когда тот сталкивается с трудностями. Если вопрос очень сложный, то мы обсуждаем его на форуме коллективным разумом, бесплатно. win10tweaker.ru/forum/forum/%d1%81/
@XpucT
@XpucT 3 жыл бұрын
Написал Вам на почту.
@oliviacolins6856
@oliviacolins6856 4 жыл бұрын
Отличное видео! А как можно проделать так же с массивами байтов? вместо File.WriteAllBytes("speech.ogg", new byte[100]); в StreamWriter нет WriteAllBytes
@Викторли-ф5в
@Викторли-ф5в 3 жыл бұрын
как сделать чтобы у меня так же сплывали подсказки что означает тот или иной конструктор , у меня не выводится объяснение?
@XpucT
@XpucT 3 жыл бұрын
IntelliSense / IntelliCode. Ставится с новым .NET Framework SDK.
@TearuSad
@TearuSad 3 жыл бұрын
Может кто-нибудь объяснить что значит доп перегрузки и почему они не везде указываются ?
@ganic30abcganic
@ganic30abcganic Жыл бұрын
У вас есть урок как из комбобокс с формы1 записывать текст в новый класс?
@XpucT
@XpucT Жыл бұрын
Это всё равно, что отдельный урок по клику PictureBox сделать MessageBox
@kashiroko6632
@kashiroko6632 4 жыл бұрын
а будут уроки связанные с интернетом? Мне вот мысля пришла, что можно было бы узнать кол-во подписчиков на ютубе, или подписаться на канал, или еще что-то
@XpucT
@XpucT 4 жыл бұрын
Кое-то что есть в планах ;)
@ДмитрийЗахаров-я2ю
@ДмитрийЗахаров-я2ю 4 жыл бұрын
А какие еще обучающие каналы по С# можно посмотреть после того как закончу смотреть ХрисТ'а такого же качества
@FloatingGames
@FloatingGames Жыл бұрын
друзья, а как скопировать файл в буфер обмена, очень нужно для 2 проектов
@tokaev6467
@tokaev6467 5 жыл бұрын
Здравствуй, возник вопрос. Ты всегда в видео рекомендовал сборки виндовс от xalex, я зашел на их сайт а там сборка с 2017 года последняя. Ты ее рекомендуешь или ты уже поменял свое решение?
@XpucT
@XpucT 5 жыл бұрын
Привет 🖐 Ответы на все вопросы: jailbreakvideo.ru/windows-10-aio
@aquarium89
@aquarium89 5 жыл бұрын
Может быть кто-то увидит мой комментарий и сможет подсказать что-то дельное... Я уже третий день бьюсь над вопросом, как подключить в систему сетевой диск (например V: -> \ es\share\folder) , чтобы не таскать с собой лишние библиотеки, но при этом, чтобы код отрабатывал не только на 10-ке, но и на других версиях ОС и 4.x Перерыл уже наверное все форумы какие только можно, перепробовал штук 5 если не больше разных вариантов в разном исполнении, Уже даже пересобрал все на 4.5. Нашел даже тот, который умеет работать с lable сетевых дисков. Но все это на отрез отказывается работать например на той же 7-ке (даже самые банальные варианты с cmd)... Я в расстройстве :( я слишком туп :( Или писать код надо из под той системы в которой хочешь чтобы потом все работало?? :(
@НикитаСиницын-щ6э
@НикитаСиницын-щ6э 5 жыл бұрын
Прииивеет, слушай, решил написать программку в которой будет несколько форм, как раз в этом уроке ты показал, как их создать и открывать, но у меня вопрос Можно ли как-нибудь скрыть начальную форму, чтобы ее не было видно Думал, через опасити сделать, но снизу останется иконка приложения Есть решение или ее никак не скрыть? А так же, когда я пытаюсь работать с формами в другой форме, то он выдает кучу ошибок, это из-за того, что используется экземпляр?
@XpucT
@XpucT 5 жыл бұрын
Привет 🖐 Ссылка на коммент и ответ: kzbin.info/www/bejne/hl7PaHmKiLl8bdk&lc=UgwQKaSBYHdKI_pkDu94AaABAg
@Tsokol_Fex
@Tsokol_Fex 2 жыл бұрын
как сменить язык у подсказок в визуалке? также как у вас на видео, когда пишете "(,)" у вас появляются подсказки на русском, у меня на англ, как это исправить?
@XpucT
@XpucT 2 жыл бұрын
Поставить Visual Studio на русском языке на русской Windows.
@НикитаМоржевский
@НикитаМоржевский 2 жыл бұрын
@@XpucT Не помогает, русский и так стоит, а подсказки английские
@КириллКоролёв-р4ж
@КириллКоролёв-р4ж Жыл бұрын
@@НикитаМоржевский если разобрался, подскажи мне пожалуйста)
@КириллКоролёв-р4ж
@КириллКоролёв-р4ж Жыл бұрын
Ан нет, больше не нужно. С потом, кровью и заменой файлов разобрался. Во-первых, автор юзает Visual Studio Code (там подсказки автоматически переведены но автор об этом умолчал\не знал). Во-вторых, если вдруг кому все же это нужно, перевести в обычной студии можно с помощью статьи "Установка локализованных файлов IntelliSense для .NET". Да, страшная замена данных, но для новичка оно того стоит. Не запутайтесь)
@sports4919
@sports4919 5 жыл бұрын
А если я не знаю путь к файлу , а может его вообще нет , а если есть то где он лежит ? Как мне в этом случае поступать? как мне его найти?
@XpucT
@XpucT 5 жыл бұрын
А если и комп не включить, то совсем сложно будет. Поэтому, давайте по порядку. if (файла нет) значит нужно что-то сделать if (файла нет даже там) значит нужно что-то сделать Искать можно файлы конкретные или вообще наличие файлов где-то. Всё зависит от того, что Вы хотите. Вы же просто написали абстрактно. Поэтому дайте задачу, которую Вы не поняли или не поняли как задать условие. Я напишу ответ кодом. Конкретнее просто пишите.
@sports4919
@sports4919 5 жыл бұрын
@@XpucT Спасибо за быстрый ответ у меня такой вопрос возник после просмотра видео. Я хочу найти программно файл который который у меня на компе . программа должна найти его . На видео мы указываем полный путь к файлу а если этот путь не известен . что мне указать программе чтоб она его поискала на диске C во всех папках,если нет этого файла перейти на диск D и там посмотреть, и так далее ..... Если есть показать мне путь по которому он лежит.
@XpucT
@XpucT 5 жыл бұрын
@@sports4919 Набросал для диска С Думаю, подставить другие диски сможешь =) void Button1_Click(object sender, EventArgs e) { string log = $@"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\FullList.txt"; string path = @"C:\"; var files = new List(); AddFiles(path, files); File.WriteAllLines(log, files); List list = File.ReadAllLines(log).ToList(); list.ForEach(x => { if (x.EndsWith("Например.jpg")) MessageBox.Show(x); }); } private static void AddFiles(string path, IList files) { try { Directory.GetFiles(path).ToList().ForEach(s => files.Add(s)); Directory.GetDirectories(path).ToList().ForEach(s => AddFiles(s, files)); } catch { } }
@XpucT
@XpucT 5 жыл бұрын
Сделал Тебе проект Finder www.upload.ee/files/10768552/Finder.rar.html Но он учитывает знания всего того, что дано в этом Курсе C#
@sports4919
@sports4919 5 жыл бұрын
@@XpucT Очень большое спасибо Вам.
@alexanderwagner8199
@alexanderwagner8199 5 жыл бұрын
Большое спасибо за урок. Остался вопрос: создаем файл, допустим с именем text1, как сделать таким образом, чтобы, если такой файл уже существует, то создавался новый с именем text2 и так далее? Типа того, как мы создаем папки на рабочем столе, то есть создается папка "новая папка", потом "новая папка (1)" и так далее.
@XpucT
@XpucT 5 жыл бұрын
На коленке написал. Если посидеть ещё, то можно, наверно, сократить. for (int i = 1; i < int.MaxValue; i++) { if (!File.Exists($"text {i}.txt")) { File.Create($"text {i}.txt"); return; } else { if (!File.Exists($"text {i + 1}.txt")) { File.Create($"text {i + 1}.txt"); return; } else continue; } }
@alexanderwagner8199
@alexanderwagner8199 5 жыл бұрын
@@XpucT спасибо!
@spritoff
@spritoff 4 жыл бұрын
а в массив запихать стрим, это только чз byte[ ] ? В смысле текст. UPD - Пересмотрел видео "работа со строками". Сделал то что хотел)) Спасибо.
C# Delegates Делегаты
18:14
codaza
Рет қаралды 92 М.
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
Изучение C# в одном видео уроке за час!
1:06:08
Гоша Дударь
Рет қаралды 872 М.