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

Поделиться
HTML-код
  • Опубликовано: 15 апр 2019
  • Донаты и на кофе ➜ t.me/win10tweaker/171
    Эксклюзив для спонсоров ➜ / xpuct
    Если недоступна спонсорка ➜ vk.cc/ctNjM7
    Основной канал:
    / jailbreakvideo
    #File #FileStream #StreamWriter #СиSharp #СиШарп
  • НаукаНаука

Комментарии • 252

  • @Slonick
    @Slonick 5 лет назад +73

    using для потоков сокращает код в разы. Он при компиляции генерирует try-finaly блок и закрывает потоки в finaly, то есть даже при ошибке поток будет закрыт. А каждый раз руками писать try finaly это уже долго и много.

    • @farhadgojazade9918
      @farhadgojazade9918 3 месяца назад

      Почти. Using может быть использован только с экземплярами классов, которые имплементированы от интерфейса IDisposable.
      в итоге он делает следующее:
      try{
      Stream stream = ...
      // наш код
      }
      finally{
      stream.Dispose(); //Потому что у каждого объекта с этим интерфейсом есть такой метод
      }
      Это всего лишь синтаксический сахар, но мы не можем его использовать, если нам нужно ловить ошибки которые могут всплыть. тогда уже нам придется использовать try catch finally

  • @user-yq7vb6hn2g
    @user-yq7vb6hn2g День назад +1

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

  • @zeazurus4001
    @zeazurus4001 4 года назад +137

    Хауди и Дударь нервно курят в сторонке со своими "ЯП за час". Разница в длительности небольшая, а разница в полезности потраченного времени колоссальная. Спасибо за видео.

    • @witemax
      @witemax 4 года назад +8

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

  • @Andrii_Brychka
    @Andrii_Brychka Месяц назад +2

    Просто лучшие объяснения. Всё понятно и интересно, а главное - нет воды.

  • @cricon_bot
    @cricon_bot 2 года назад +8

    "Тык тык тык - тра-ля-ля, опа-опа - красота" - я как начинающий именно в такой подаче всё понимаю)) Это что я искал (Без сорказма). Спасибо XpucT!

  • @Mar_doK
    @Mar_doK 3 года назад +8

    Спасибо, всё очень понятно, всегда не нравилось работать с файлами из-за большого количества строк, но после это урока вся неприязнь улетучилось. Очень познавательно.

  • @juniorkot8714
    @juniorkot8714 4 года назад +14

    using... видел в других проектах но не понимал до конца сути... наконец дошло (по крайне мере в общем)... спасибо добрый человек... :)

  • @user-rh6hq8eh5u
    @user-rh6hq8eh5u 3 года назад +3

    Пересматриваю твои видео по несколько раз. Спасибо за труды.

  • @KingDog25
    @KingDog25 2 года назад +3

    Все над чем я так долго думал, смешивая потоки и I/0.File оказалось в одном видео, спасибо!

  • @lednev5426
    @lednev5426 Год назад +1

    Спасибо, очень доступно и понятно. Самое лучшее, что подчеркнул из этого видео для себя, это то что нужно проявлять любопытство, проверять различные команды на себе и самое главное не пытаться сделать правильно, а упасть на ошибку и разбираться, понять почему упали и ТД.
    Ещё раз спасибо

  • @try_parse99
    @try_parse99 2 года назад +8

    Наверное самые полезные видео уроки на ютубе, спасибо огромное!)

  • @SAYREXPlay
    @SAYREXPlay 2 года назад +6

    Классно конечно. Вот только ещё бы как-то запомнить всё это)) Эх, что ж я лет десять назад не начал изучать))
    Спасибо за урок, Хачатур!

  • @user-lz4mh1nj4m
    @user-lz4mh1nj4m 4 года назад +2

    Очень доступное объяснение, однозначно круто

  • @RusGameDraft
    @RusGameDraft 2 года назад +14

    Чтобы видеть какие перегрузки есть можно ставить не запятую, а нажимать Ctrl + Shift + Space

  • @deadpo0l4ik85
    @deadpo0l4ik85 4 года назад +3

    привет Христ!просмотрел 20 уроков и больше понял простым языком чем от курса по С# который преподавал фул стек.очень доступно и понятно обьясняеш!так держать ты круче всех на ютубе!

    • @XpucT
      @XpucT  4 года назад

      Спасибо 🤝

  • @DjackVorobeyUA
    @DjackVorobeyUA Год назад +1

    Лучшие гайды, продолжай снимать!!! Очень круто, спасибо!

  • @user-qj4vy7ut3s
    @user-qj4vy7ut3s 3 года назад +2

    я слушал с удовольствием) Спасибо

  • @godsprogrammer9826
    @godsprogrammer9826 4 года назад +1

    Просто космос!!! Нереально круто!

  • @user-le1xf8ul9y
    @user-le1xf8ul9y 3 года назад +2

    Классно! Ты большой молодец)

  • @fee4kabloom940
    @fee4kabloom940 4 года назад +1

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

  • @13PRoman
    @13PRoman 4 года назад +1

    Спасибо огромное за понятное объяснение !!

  • @user-yg8vg5li3x
    @user-yg8vg5li3x 2 года назад +5

    Лучший ютубер по программированию, всегда на все свои вопросы нахожу ответы именно в ваших видео !!!

  • @klmv--a--r--t--
    @klmv--a--r--t-- 3 года назад +1

    Спасибо! Очень понятно объяснили.

  • @SatanaD-ug4xo
    @SatanaD-ug4xo 2 месяца назад +1

    Мужик, ты реально лучший

  • @user-tn6xg2oe6u
    @user-tn6xg2oe6u 4 года назад +19

    WebClient wc = new WebClient;
    WebClient туалет = new WebClient

  • @kinaidoa4384
    @kinaidoa4384 2 года назад +2

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

  • @user-zf7le3yd3d
    @user-zf7le3yd3d 4 года назад +2

    Пока мало чего понял,но очень интересно. Однозначно - Сокол!!!

  • @user-ob8il9cv6x
    @user-ob8il9cv6x Год назад

    Я вспотел, но это реально КРУТО!!! Спасибо за такие видосы!

  • @AxiOmAxBETEP
    @AxiOmAxBETEP 3 года назад +1

    Спасибо за все огромное!

  • @andreyb7844
    @andreyb7844 7 месяцев назад +1

    Спасибо! Очень здорово.

  • @ivannarykin
    @ivannarykin 2 года назад +1

    Большое спасибо за видео!

  • @neuroArgento
    @neuroArgento 4 года назад +9

    Если говорить об экземпляре класса, то можно провести простую аналогию, что класс - это чертёж, а экземпляр класса - это предмет, построенный по этому чертежу (как например, чертёж самолёта и построенный по этому чертежу самолёт). На чертеже (классе) летать нельзя, это по сути просто бумажка, инструкция, по которой можно что-то создать, у неё только одна функция. А экземпляр класса, то бишь предмет, построенный либо собранный по этому чертежу, уже можно использовать как угодно, ведь это теперь не бумажка, а полноценный, собранный с нуля объект, на котором можно летать/ездить/спать и т.д.

  • @billlanc9461
    @billlanc9461 2 года назад +1

    Подача просто топ!

  • @TOTGAD
    @TOTGAD 4 года назад +5

    Главное: Кукушкой понимать)))) 100%

  • @user-fe1et9ze2b
    @user-fe1et9ze2b 3 года назад +1

    БОМБА!!!! СПАСИБО.

  • @SCEEF
    @SCEEF 4 года назад +3

    [ПОИСК ЛЮБОГО ТЕКСТА И ВЫДЕЛЕНИЕ ЕГО В 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# с целью создавать игры, пишите, помогу чем смогу (Сам нуб, но что-то могу)

  • @user-dv5ue1om3m
    @user-dv5ue1om3m 2 года назад

    Крутой урок!

  • @acer6788
    @acer6788 Год назад +1

    насчет 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();
    }

  • @mrsoomo
    @mrsoomo Год назад +2

    Спасибо сейчас учусь мой первый язык твои гайды сильно помогают

  • @karma5933
    @karma5933 Год назад +1

    Лайк, подписка, крутой мужик

  • @Eltar007
    @Eltar007 5 лет назад +3

    Спасибо! Очень подробно раскрыли задачу записи файла. Пишу на 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 4 года назад

      @@XpucT Ссылочку сбросите? А то очень уж много видео у вас )

    • @XpucT
      @XpucT  4 года назад

      @@Eltar007 ruclips.net/video/4YsAfD9zqxw/видео.html
      Я же рекомендую идти последовательно.

  • @samyel7550
    @samyel7550 2 года назад +1

    Спасибо)

  • @wany2052
    @wany2052 3 года назад +3

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

  • @user-so1bu9cw5g
    @user-so1bu9cw5g 3 года назад +1

    Спасибо большое

  • @user-vg6gu8hc6w
    @user-vg6gu8hc6w 2 года назад +4

    Хачатур ты уникальный человек! спасибо!!! из таких как ты оч хорошие преподавателе получаются !
    Хачатур разивши вопрос, как сделать свою запись в картинок в dll файл ?
    Судя по всему половина ответа дана на этом видео, осталось еще чутка додумать )))
    Только думалка не думает ))

    • @XpucT
      @XpucT  2 года назад +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

  • @karma5933
    @karma5933 Год назад +5

    Круто было бы увидеть видео, в котором показывается работа с технологией filestream sql и использование ее в с# с помощью opensqlfilestream , потому как в интернете очень мало информации про это а видеоматериал вообще отсутствует

  • @gorgulianaohote
    @gorgulianaohote 3 года назад +1

    Спасибо, просто спасибо...

  • @oliviacolins6856
    @oliviacolins6856 4 года назад

    Отличное видео!
    А как можно проделать так же с массивами байтов?
    вместо
    File.WriteAllBytes("speech.ogg", new byte[100]);
    в StreamWriter нет WriteAllBytes

  • @PianoElipse
    @PianoElipse 3 года назад +5

    А можно теперь видео о бинарных файлах и о том как с ними работать?

  • @0rdinat378
    @0rdinat378 4 года назад +14

    СПАСИБО, ТЫ СПАС МОЙ КУРСАЧ!

    • @user-th7et3fr5u
      @user-th7et3fr5u 4 года назад +3

      мне б такой курсач с такой темой :D

  • @nevo5712
    @nevo5712 3 года назад +1

    Понимаю, что немного не по теме, но мне очень нужен совет.
    У меня задание - сделать десктопный файлообменник. Т.е. сделать форму в VS и привязать ее к уже готовому сайту-файлообменника (например, filecloud,me). Основная проблема в том, что я не знаю как именно форму привязать к сайту, что-бы можно было выбрать файл на компьютере с приложения и закинуть его на сайт, а после - вернуть ссылку, которую сайт сгенерирует.

  • @firstlast493
    @firstlast493 4 года назад +4

    То как же найти заданный текст в текстбоксе и выделить его?

  • @azitwo4268
    @azitwo4268 4 года назад +1

    Привет, шикарные уроки, ты единственный кого я смотрел можешь на доступном языке объяснить)
    Можешь пожалуйста, если время будет, объяснить как с Word работать через C#, а то нигде нет этого(

    • @XpucT
      @XpucT  4 года назад +3

      Привет 🖐
      Смотря что с ним требуется. Но если задач связанных с Word много, то проще скачать готовую библиотеку и обращаться к ней.
      Это называется API. Кто-то пилит свою dll и придумывает к ней методы, такие же, как делаем мы.
      Ты в _Обозревателе решений_ нажимаешь правой кнопкой мыши на _Ссылки_ и добавляешь эту самую dll.
      После чего в Твоём проекте становятся доступными все методы из этой библиотеки.
      Начинать нужно с Google и вводить там: _Word API C#_

    • @azitwo4268
      @azitwo4268 4 года назад +1

      @@XpucT Спасибо)

  • @garretgrom5823
    @garretgrom5823 4 года назад +21

    для выравнивание кода комбинация: cntr+K+D

  • @andrewtetekin6393
    @andrewtetekin6393 2 года назад +1

    привет, расскажешь про credential и подключение? как будет время, если сможешь)

  • @user-ht6dt3ww6u
    @user-ht6dt3ww6u 4 года назад

    А какие еще обучающие каналы по С# можно посмотреть после того как закончу смотреть ХрисТ'а такого же качества

  • @lelelelevv
    @lelelelevv 2 года назад +1

    2:11 да кот вообще не против

  • @Anton-Os
    @Anton-Os 4 года назад +1

    Хачатур, полезнейшее видео! Задался вопросом, а как правильно взаимодействовать между двумя и более формами, проверить из другой формы существует ли первая: если существует то например закрыть её, если нет то создать, а не плодить множество форм по клику. )) Как из второй формы правильно закрыть первую. Спасибо!

    • @XpucT
      @XpucT  4 года назад +3

      Вот на эту тему обязательно будут отдельные уроки. Как контролировать обе формы и чтобы одна и другая не была ущемлена. Как получить лучше всего доступ к контролу формы из класса и прочее. Но дайте сначала с делами разобраться. Потом вернусь к урокам 👍

  • @nonsencephilosophy
    @nonsencephilosophy 21 день назад

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

  • @andron_kozmos
    @andron_kozmos 6 месяцев назад

    Хачатур, добрый день! Как можно чистить папку Temp(и не только) по назначенному времени, либо при вкл. /выкл. компа? В этой папке скапливается всякое барахло, которое занимает много места.

  • @user-wu-tang
    @user-wu-tang Год назад +1

    Привет ув. Хачатур
    на 24.14 сек ты говоришь оооо кошмар, вот и у меня такой же кошмар, когда я начинаю читать этот перевод(этот кошмар, чтоб отпугнуть всех учеников- это 100% ). Это ужасный перевод, но видь ты сам говоришь надо читать)) этот кошмар.))

  • @TheCrossfor
    @TheCrossfor 5 лет назад +3

    Давно пора познакомить людей с файлдиалогом, чтобы не хардкодить путь)

    • @XpucT
      @XpucT  5 лет назад

      Доберёмся =))

  • @monsterstrike3236
    @monsterstrike3236 Год назад

    А есть ли возможность сделать так чтобы допустим есть папка с определенным кол-во текстовых документов и также с помощью FileStream они открывались в текстбоксе рандомитично? )

  • @mishalavik4595
    @mishalavik4595 4 года назад +1

    @XpucT, когда новые видео будут?

  • @user-di5kb8lm9l
    @user-di5kb8lm9l 2 года назад +1

    Норм, норм 🤔
    Необычно. Прям ...

    • @user-di5kb8lm9l
      @user-di5kb8lm9l 2 года назад

      Ну честно говоря не норм а прям хорошо. 👍
      Потому что я залип и все посмотрел. Даже про текстбокс ☺

  • @smart_electrics_il
    @smart_electrics_il Год назад +1

    Добрый вечер.
    Подписался на ваш канал, понравились видео)
    Есть вопрос, можете посоветовать, куда смотреть?
    есть задача выводить информацию построчно из словаря (который содержит в качестве значений -класс), я начал использовать listView, всё бы ничего, но при частом добавлении информации (примерно с периодом 50мс) начинает мерцать, хотелось бы как то это решить....

    • @XpucT
      @XpucT  Год назад

      Добрый 🖐
      Включите двойную буферизацию на самой форме 👍
      Свойство DoubleBuffered = true.

    • @smart_electrics_il
      @smart_electrics_il Год назад

      @@XpucT Такое пробовал, не помогает...
      Мерцание именно в самом окне listView..

  • @d1kiyWoLF
    @d1kiyWoLF 2 года назад +1

    Мы нашли его! Он использует белую тему!!1!

    • @XpucT
      @XpucT  2 года назад

      Уже нет =))
      Написал свою авторскую тему полностью.

  • @Velvi42
    @Velvi42 4 года назад +2

    Подобие блокнота, который работает с одним файлом
    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);
    }
    }

  • @spritoff
    @spritoff 4 года назад

    а в массив запихать стрим, это только чз byte[ ] ? В смысле текст.
    UPD - Пересмотрел видео "работа со строками". Сделал то что хотел)) Спасибо.

  • @kashiroko6632
    @kashiroko6632 4 года назад +1

    а будут уроки связанные с интернетом? Мне вот мысля пришла, что можно было бы узнать кол-во подписчиков на ютубе, или подписаться на канал, или еще что-то

    • @XpucT
      @XpucT  4 года назад

      Кое-то что есть в планах ;)

  • @Slonick
    @Slonick 5 лет назад +4

    Можно и через File дописать, в итоге создается тот же StreamWriter
    using (var file = File.AppendText(path))
    {
    file.WriteLine("Абра-кадабра");
    }

  • @tokaev6467
    @tokaev6467 5 лет назад +1

    Здравствуй, возник вопрос. Ты всегда в видео рекомендовал сборки виндовс от xalex, я зашел на их сайт а там сборка с 2017 года последняя. Ты ее рекомендуешь или ты уже поменял свое решение?

    • @XpucT
      @XpucT  5 лет назад +1

      Привет 🖐
      Ответы на все вопросы:
      jailbreakvideo.ru/windows-10-aio

  • @user-wf9zy6zq7f
    @user-wf9zy6zq7f 4 года назад +7

    Вместо использования ctrl c и ctrl v, для нормализации табов можно использовать ctrl + k d

    • @XpucT
      @XpucT  4 года назад +3

      Не знал. Шикардос 👍

    • @user-wf9zy6zq7f
      @user-wf9zy6zq7f 4 года назад +2

      👍)

    • @MibusVideo
      @MibusVideo 2 года назад

      @@XpucT, а мне пишет, что "Сочетание клавиш (Ctrl+K, D) не является командой" или я что-то не так делаю?

    • @XpucT
      @XpucT  2 года назад

      @@MibusVideo после нажатия Ctrl + K посмотри, что пишется внизу.

    • @MibusVideo
      @MibusVideo 2 года назад

      @@XpucT "Была нажата клавиша Ctrl + K. Ожидается нажатие второй клавиши сочетания... " После этого жму d и выдаёт ту ошибку.

  • @alexeypermitin6804
    @alexeypermitin6804 Год назад

    Хачатур добрый день. Подскажите что посмотреть у Вас? Мне необходимо проанализировать большой текстовый файл (1 Мб размер) но с расширением не txt (допустим bin) и где-то из середины взять данные засунуть их в массив и еще раз проанализировать. Т.е. каким то процессом файл создается заранее в определенном месте. Я должен создать форму в ней открыть каталог выбрать файл и остальное делает программа. Ну допустим она открывает вторую форму и говорит GOOD если данные меня устроят (ну это образно). Я не умею работать с файлами и тем более их анализировать.

    • @XpucT
      @XpucT  Год назад

      Добрый 🖐
      Вот как раз это видео должно навести на чтение файла, как потока.

  • @user-hw9up7oz5v
    @user-hw9up7oz5v 2 года назад +1

    Очень понятно объясняешь друг ,спасибо огромное! У меня в институте так преподы не объясняли пык мык и все.
    Вопрос: обучаете ли вы за деньги C#? Если да, то свяжитесь со мной пожалуйста!
    Мне нужен такой преподаватель!

    • @XpucT
      @XpucT  2 года назад +1

      За деньги не преподаю, по двум причинам:
      1. Мало у кого хватит денег оплатить Моё время.
      2. Уроки даны в полной мере и комментарии абсолютно под каждым Я мониторю всегда и всегда рад помочь бесплатно любому новчику, когда тот сталкивается с трудностями. Если вопрос очень сложный, то мы обсуждаем его на форуме коллективным разумом, бесплатно.
      win10tweaker.ru/forum/forum/%d1%81/

    • @XpucT
      @XpucT  2 года назад

      Написал Вам на почту.

  • @GoldbergCC
    @GoldbergCC 4 года назад +1

    Т.е. со всеми потоками можно так сокращать? Например при работе с ДБ через MySQLDataReader/Writer, можно так же через using бахнуть?

    • @XpucT
      @XpucT  4 года назад +1

      Не можно, а нужно 👍

  • @user-cf9gw5gu4z
    @user-cf9gw5gu4z 4 года назад +1

    Как включить всплывающие подсказки в visual studio на русском?

  • @orliag218
    @orliag218 2 года назад +1

    Сам новичок, такой вопрос, в видео сказано что File лучше не использовать, а использовать только поток. Тогда как с потоком организовать удаление файла по адресу? Кроме как через File не нашел нашел как.

    • @XpucT
      @XpucT  2 года назад

      Удалять именно File.Delete()
      Тут уже ничего придумывать не нужно.

  • @kenji994
    @kenji994 4 месяца назад

    Как он в начале добавлял файл в папку , если нету доступа к рабочему столу ?

  • @smart_electrics_il
    @smart_electrics_il Год назад +1

    Добрый день.
    А ув ас случайно не планируется видео по Таймерам и освобождению ресурсов ?

    • @XpucT
      @XpucT  Год назад

      Зачем, если C# сам этим занимается?

    • @smart_electrics_il
      @smart_electrics_il Год назад

      @@XpucT Исходя из того с чем я столкнулся, как то не очень он этим занимается))
      Ну, или я конечно что то не так делаю...

  • @unde3863
    @unde3863 5 лет назад +2

    Привет,Было очень интересно, но у меня вопрос : Как мне сделать папку пользователя Администратор на Английском? Некоторые программы или игры, не понимают кириллицу)
    Спасибо! очень подробные доходчивые, которые я видел уроки по C#

    • @XpucT
      @XpucT  5 лет назад

      Переименовать папку пользователя или просто получить её имя?
      До переменных сред мы пока не добрались, но обязательно об этом расскажу.

  • @user-yj6jz4rs1p
    @user-yj6jz4rs1p 5 лет назад

    Прииивеет, слушай, решил написать программку в которой будет несколько форм, как раз в этом уроке ты показал, как их создать и открывать, но у меня вопрос
    Можно ли как-нибудь скрыть начальную форму, чтобы ее не было видно
    Думал, через опасити сделать, но снизу останется иконка приложения
    Есть решение или ее никак не скрыть?
    А так же, когда я пытаюсь работать с формами в другой форме, то он выдает кучу ошибок, это из-за того, что используется экземпляр?

    • @XpucT
      @XpucT  5 лет назад

      Привет 🖐
      Ссылка на коммент и ответ:
      ruclips.net/video/P-l7FTSTI7w/видео.html&lc=UgwQKaSBYHdKI_pkDu94AaABAg

  • @syndicate3208
    @syndicate3208 4 года назад +1

    А можно ли разделять на подстроки текст в потоке? У меня выдает ошибку не удается преобразовать string в string[]

    • @XpucT
      @XpucT  4 года назад

      Ресурсозатратно. Лучше потом разбить.
      string[] массивСтрок = строка.Split(new char[] { '
      ', '
      ' }, StringSplitOptions.RemoveEmptyEntries);

  • @user-dr8fn9xk1e
    @user-dr8fn9xk1e 2 года назад +1

    Видео вышло давно, но может кто объяснит, почему у меня нет описания методов? В видео например есть полное описание на русском что делает File.Copy, а у меня только то, как можно этот метод написать с разными перегрузка ми, а вот объясниния нет... (

    • @XpucT
      @XpucT  2 года назад

      Непонятно, что конкретно Вам непонятно.
      Про методы отдельный урок: ruclips.net/p/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb

  • @enjoymusicbymaks
    @enjoymusicbymaks 2 года назад +2

    2:18 Але оп 😁

  • @alexanderwagner8199
    @alexanderwagner8199 5 лет назад

    Большое спасибо за урок. Остался вопрос: создаем файл, допустим с именем text1, как сделать таким образом, чтобы, если такой файл уже существует, то создавался новый с именем text2 и так далее? Типа того, как мы создаем папки на рабочем столе, то есть создается папка "новая папка", потом "новая папка (1)" и так далее.

    • @XpucT
      @XpucT  5 лет назад +1

      На коленке написал. Если посидеть ещё, то можно, наверно, сократить.
      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 спасибо!

  • @kollector.online9580
    @kollector.online9580 3 года назад +2

    У меня сейчас задача написать програмку, и вопрос скорее в том, правильным ли путем я иду, т.к. я не программист, а электронщик.
    В общем пробую написать что то вроде универсальной программы, с помощью которой взаимодействовать с разными электронными устройствами (своей сборки).
    Но чтобы программу не забивать мусором (т.к. у клиента будет одно или два устройства, а программу планируется сделать как минимум для нескольких десятков устройств).
    В общем было принято решение - подгружать новые формы и нужный код с помощью отдельных модулей.
    Выглядит это так:
    открывается первым окошко, в котором есть поля и кнопки для добавления нового модуля и удаления ненужных (просто копируется файл в папку программы и также удаляется из нее). Загруженные файлы отображаются построчно в list box, выбираем нужный и нажимаем кнопку "Применить конфигурацию".
    Открывается уже основное окно программы, которое получает ссылку требуемого на данный момент модуля и подгружает его.
    Соответственно открывается нужная форма, и программа.
    Правильно ли я выбрал вариант с динамически подгружаемыми DLL? Будет ли возможность подгружать нужный файл DLL и передавать программе через него например форму?
    Также в первом окне при выборе модуля в listbox надо чтобы из самого файла DLL подгружалось описание модуля и версия. Тут же отображалась например в Label.

    • @XpucT
      @XpucT  3 года назад

      Интересный подход =)
      Сказать правильно это или нет - нельзя, главное, чтобы это работало и Вас устраивало 👍

    • @kollector.online9580
      @kollector.online9580 3 года назад +2

      @@XpucT с DLL пока проблемка.
      За эти дни придумал как реализовать загрузку конфигураций и удаление, и соответственно отображение (но пока без использования в программе, просто как файл). Хотя конечно для программиста эти задачи показались бы примитивными, но я в первый раз делаю.
      Но вот с DLL пытаюсь с примеров собрать хоть что то, но пока результат не выходит. Например чтобы при выделении в listbox нужного модуля (т.е. DLL из папки), чтобы из выбранного DLL тут же в программу подгружалось описание модуля и версия. И отображалось например в метке label.
      Т.е. вопрос еще не решен с созданием самого DLL и с динамическим подключением.
      А что касается ваших уроков, хорошо сделаны, доходчиво.
      Но на данный момент развивается направление управление электронными модулями через приложения с компьютера или телефона.
      Поэтому думаю, если появились бы видео создания приложений для управления с компьютера разными микроконтроллерами, то зрителей бы прибавилось.
      Интересно больше взаимодействие языков C# и C.
      И отправка и прием не пары параметров, а например параметров 20-30 при этом разных, т.е. 1 или 0. И также обмен какой то текстовой информацией.

  • @asixgame7810
    @asixgame7810 4 года назад +1

    Вот решил после этого урока сделать программку которая будет записывать имена в файл и смотреть чтоб похожих не было
    using System;
    using System.Drawing;
    using System.IO;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    namespace WindowsFormsApp3
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    async void button1_Click(object sender, EventArgs e)
    {
    string path = @"C:\Users\Asix\Desktop\Name.txt";
    if (!File.Exists(path)) // если нет файла создаём
    {
    File.Create(path).Close();
    }
    string name = File.ReadAllText(path); //Читаем файл
    if (path.Contains(textBox1.Text) && textBox1.Text != "") //Ну и проверяем
    {
    textBox1.Text = "Такое имя уже есть!";
    }
    else if(textBox1.Text == "" || textBox1.Text.Contains("Имя должно быть не меньше 2 и не больше 7 букв"))
    {
    textBox1.Text = "";
    }
    else if (textBox1.Text.Contains("Такое имя уже есть!") || textBox1.Text.Contains("Введите имя"))
    {
    textBox1.Text = "";
    }
    else
    {
    if(textBox1.Text.Length < 2 || textBox1.Text.Length > 7) //ещё проверка
    {
    textBox1.Text = "Имя должно быть не меньше 2 и не больше 7 букв";
    }
    else
    {
    using (StreamWriter stream = new StreamWriter(path, true))
    {
    stream.WriteLine($"Name: {textBox1.Text}");
    button1.Text = "Имя Сохраняется";
    await Task.Delay(1500);
    MessageBox.Show("Имя Сохранено", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
    button1.Text = "Сохранить имя";
    textBox1.Text = "Введите имя";
    textBox1.ForeColor = Color.FromArgb(100, 100, 100);
    }
    }
    }
    }
    private void textBox1_Click(object sender, EventArgs e)
    {
    textBox1.Text = "";
    textBox1.ForeColor = Color.Black;
    }
    }
    }
    ps. возможно можно и короче но я пока хз нужно думать, написал по быстрому то что пришло в голову

  • @AritolTheGameChanel
    @AritolTheGameChanel 5 лет назад

    Покажешь как зделать поиск файла из папки по названию?

  • @mrChecker1337
    @mrChecker1337 2 года назад

    Как считать файл и занести оттуда определенный текст в TextBox ?

    • @XpucT
      @XpucT  2 года назад

      Как насчёт пройтись по всем урокам, чтобы не спрашивать про азы?
      ruclips.net/p/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb

  • @kashiroko6632
    @kashiroko6632 4 года назад +2

    9:06 я выпал
    upd: так вот, что делает =new. Cтавлю третий лайк

    • @kashiroko6632
      @kashiroko6632 4 года назад +1

      а я могу из основной формы открыть экземпляр этой же формы?

    • @XpucT
      @XpucT  4 года назад +2

      Да =)

  • @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  Год назад +1

      Привет 🖐
      Нужно делать проверку на наличие экземпляра.
      В одном из будущих видео на канале есть про это.

    • @RosGamePlay
      @RosGamePlay Год назад +2

      @@XpucT Благодарю!

  • @user-wd4vz8qw2n
    @user-wd4vz8qw2n 3 года назад

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

    • @XpucT
      @XpucT  3 года назад

      IntelliSense / IntelliCode.
      Ставится с новым .NET Framework SDK.

  • @ganic30abcganic
    @ganic30abcganic Год назад

    У вас есть урок как из комбобокс с формы1 записывать текст в новый класс?

    • @XpucT
      @XpucT  Год назад

      Это всё равно, что отдельный урок по клику PictureBox сделать MessageBox

  • @user-ui4bn7fg5j
    @user-ui4bn7fg5j 3 года назад

    А как таким образом сохранять листы, которые хранят какой-то пользовательский класс, и как потом эти данные правильно считать?

    • @XpucT
      @XpucT  3 года назад

      Продолжайте просмотр. Далее будет ответ.

  • @TearuSad
    @TearuSad 2 года назад

    Может кто-нибудь объяснить что значит доп перегрузки и почему они не везде указываются ?

  • @user-tx6go9el3v
    @user-tx6go9el3v 4 года назад +1

    Может я что-то упустил. Пытаюсь записать файл по пути,
    выбранному пользователем. В пути есть русские символы. Соответственно файл не
    сохраняется. Если заменить на латинские все работает. Есть ли выход? Заранее
    спасибо в любом случае.

    • @XpucT
      @XpucT  4 года назад

      Кавычки и пробелы учитываете?
      Код, пожалуйста.

    • @user-tx6go9el3v
      @user-tx6go9el3v 4 года назад +1

      Спасибо за потенциальную подсказку. Причина проста. При
      формировании названия файла из fb2 появлялся символ конца строки. Визуально его
      не видно. Я скопировал формируемый путь, вставил в Word и отобразил нечитаемые
      символы. Там его и обнаружил. Спасибо за помощь и отличные уроки.

  • @chatdrom5643
    @chatdrom5643 5 лет назад +4

    Раскажи как сделать круглую Button в Windows Forms

    • @XpucT
      @XpucT  5 лет назад +2

      И до этого доберёмся.

    • @Alf_Shamuei
      @Alf_Shamuei 5 лет назад

      Самый тру способ это через регион.

  • @kodersurocecode267
    @kodersurocecode267 5 лет назад +1

    Ты сказал что создание экземпляра формы это копия тогда как же всё-таки передавать реальные данные между формами?

    • @XpucT
      @XpucT  5 лет назад +1

      А вот это в следующих видео.

  • @user-fc3gh1rb7w
    @user-fc3gh1rb7w 4 года назад

    Караул. Решил реализовать запись в файл в асинхронном стиле. Т.е. есть асинхронный метод, который открывает файл, и что-то в него записывает. Используя async await не получается организовать блокировку разделяемого ресурса (т.е. файла) таким образом, чтобы все запущенный потоки ожидали пока ресурс освободится, а не генерировали исключение. Как замкнуть файл на Monitor?

    • @XpucT
      @XpucT  4 года назад

      ruclips.net/video/oGxZuq2Ye2Q/видео.html&lc=Ugw4HPl7QSCci9BPUS94AaABAg.95BjL4j2zl495CyiQ0OkxL

    • @user-fc3gh1rb7w
      @user-fc3gh1rb7w 4 года назад

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

    • @user-fc3gh1rb7w
      @user-fc3gh1rb7w 4 года назад

      @@XpucT Async await запускают метод асинхронно, но сами по себе не блокируют разделяемые ресурсы. Например, если кнопка, по нажатию которой что-то записывается в файл в асинхронном режиме, при этой вторичный поток засыпает на пару секунд, имитируя запись (пусть файл очень большой). Если в момент выполнения этого потока я повторно нажму кнопку, вылезет исключение - ресурс занят другим потоком. А нужно, чтобы он дождался, пока ресурс освободится.

    • @XpucT
      @XpucT  4 года назад

      @@user-fc3gh1rb7w Первое, что в голову приходит - if или ещё лучше while. Нужно играться с ними.