Делаем парсер HTML на C#

  Рет қаралды 161,221

ExtremeCode

ExtremeCode

Күн бұрын

Пікірлер: 184
@TakuatChanel
@TakuatChanel 5 жыл бұрын
Спасибо, хоть ролик и идет 20 минут, но я потратил на его просмотр около 4 дней вникая в интерфейсы, обобщения и прочее, узнал много полезного вообщем)
@victorpolyakov3031
@victorpolyakov3031 3 жыл бұрын
Черт, я чувствую себя умным! Я понимаю, что тут происходит! Продолжай выпускать такие простые ролики))
@trueyolu1906
@trueyolu1906 7 жыл бұрын
Большое тебе спасибо за видео. Это моё первое видео, которое я смотрю на твоём канале, и оно очень сильно меня радует. Обязательно подписываюсь! :)
@kenguru1941
@kenguru1941 7 жыл бұрын
Может раньше и работало, но сейчас в классе HtmlLoader нужно в строке url = $"{settings.BaseUrl}/{settings.Prefix}/"; убрать один слеш между скобок. Вот так - url = $"{settings.BaseUrl}{settings.Prefix}/"; Иначе будет парсить на одной странице.
@xeleos
@xeleos 4 жыл бұрын
У HtmlParser уже нет такого метода ParseAsync, теперь он называется ParseDocumentAsync
@andrewhkh23
@andrewhkh23 4 жыл бұрын
Благодарю дружище помог)
@nellaiiiii
@nellaiiiii Жыл бұрын
HttpParser не находит, не знаешь в чем проблема?
@oleksandrshmalko626
@oleksandrshmalko626 5 жыл бұрын
Дядечка айПро , респект тебе от английского комьюнити и уважение от пацанов , помог
@sierraww2
@sierraww2 7 жыл бұрын
Чувак ты самый лучший!!!! Удачи тебе во всем!
@intsyn
@intsyn 6 жыл бұрын
То чувство когда начинаешь понимать что такое интерфейсы, как их реализовывают ...
@ВикторКурышев-ч3р
@ВикторКурышев-ч3р 7 жыл бұрын
Парни, респект. Отличный видос. С удовольствием повторил, многому научился.
@nikbrons
@nikbrons 8 жыл бұрын
Было бы шикарно увидеть этот парсер, но в обертке MVC/MVP или MVVM)
@Independent19c
@Independent19c 7 жыл бұрын
вау,вот это оперативно только бахнул вопрос. на трансляции про парсер и вуаля) класс спасибо!Лайк жирнющий!
@Algok17
@Algok17 5 жыл бұрын
Крутяк! Давно хотел научиться парсить сайты и тут на этот урок наткнулся. Всё понятно объясняешь, красиво кодишь и шутеички в меру. Снимаю шляпу, качаю проект.
@Algok17
@Algok17 5 жыл бұрын
Сразу не запустилось. Нужно обновить AngleSharp и перед отправкой запроса в строке var response = await client.GetAsync(currentUrl); выполнить ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
@Algok17
@Algok17 4 жыл бұрын
В идеале бы @ExtremeCode мой пулл реквест принял - там всё готово уже.
@vladisslavss
@vladisslavss 3 жыл бұрын
Ты просто лучший!) После тяжелого рабочего дня твои видосики словно бальзам!)
@mikedastro2930
@mikedastro2930 5 жыл бұрын
что то пошло не так в Parser Worker в вызове метода //// короче var htmlparser = new HtmlParser(); var doc = await htmlparser.ParseDocumentAsync(нет ParseAsync() (( чем его заменить ))(source.ToString(),System.Threading.CancellationToken.None); var result =Parser.Parse(doc);
@Андрей-я7н6к
@Андрей-я7н6к 5 жыл бұрын
помог. очень помог. не знаю, почему другие с такой же проблемой не столкнулись
@sp1ne2104
@sp1ne2104 5 жыл бұрын
так пакеты обновляются постоянно, методы изменяются, тут либо использовать старую версию как у автора или читать документацию
@КириллЕвстратов-е2л
@КириллЕвстратов-е2л 5 жыл бұрын
у меня при создании экземпляра HtmlParser падает, пишет: "Additional information: Не удалось загрузить файл или сборку "System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" либо одну из их зависимостей. Не удается найти указанный файл." Хотя я воспользовался подсказкой и все красные подчеркивания убрались. Нагуглил что то про добавление в конфиг этого: но не помогло, ошибок нет, но падает
@gevamain1751
@gevamain1751 5 жыл бұрын
И вот уже почти 2020 год, а второй части так и нет(( за слова не отвечаешь ска!!!(тип агро)
@AzizjanAyupov_leo
@AzizjanAyupov_leo 4 жыл бұрын
А он разве говорил за вторую часть?
@ВладиславЗамікула
@ВладиславЗамікула 4 жыл бұрын
@@AzizjanAyupov_leo говорил 23:41
@AzizjanAyupov_leo
@AzizjanAyupov_leo 4 жыл бұрын
@@ВладиславЗамікула и правда!
@gilman2056
@gilman2056 8 жыл бұрын
Вот никуя не понятно, но один х интересно смотреть
@apdgslfhsodbna
@apdgslfhsodbna 6 жыл бұрын
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
@t3m8ch
@t3m8ch 5 жыл бұрын
А я понял только после самостоятельного прочтения на GitHub)
@johnwalker1232
@johnwalker1232 7 жыл бұрын
Спасибо за видео, давно его ждал. Отличный канал!
@koshatec
@koshatec 5 жыл бұрын
Фу фу фу за WF. Кодинг с юмором мне заходит. Лайк, подписка
@dimakom2726
@dimakom2726 6 жыл бұрын
Мудрено, но понятно) Лукас!
@santiago1488
@santiago1488 6 жыл бұрын
братик, спасиб от души душевно в душу +лайк +подписка
@milovidov42
@milovidov42 6 жыл бұрын
До конца еще не досмотрел но вот комментарии автора просто чумовые! )
@johanesskrauseriii3798
@johanesskrauseriii3798 7 жыл бұрын
Ну вот опять. Видео 24 минуты идёт, а делаешь всё 2-3 часа, ибо надо загуглить все непонятные моменты.
@andreybondarev1956
@andreybondarev1956 5 жыл бұрын
ска, а их много ;)
@geek__3743
@geek__3743 8 жыл бұрын
Привет! Помнишь давным давно, вы писали парсер proxy?(Кто помнит и видел ставьте лайк ;)) Так вот, не мог бы ты запилить видосик про proxy checker. Выручи плиз)). P.S. Я думаю в тему "C# - Туториалы" норм будет!
@bad_jaguar
@bad_jaguar 6 жыл бұрын
Geek_ _ присоединяюсь
@apdgslfhsodbna
@apdgslfhsodbna 6 жыл бұрын
Geek_ _ , ай ай ай ))))
@serios7149
@serios7149 7 жыл бұрын
Ждем вторую часть)
@Abo56Volo
@Abo56Volo 7 жыл бұрын
а я использую Selenium для этих целях. Парсить через CSS либо XPath. Удобно, когда надо парсить защищенного текста.
@anonimanonim1428
@anonimanonim1428 5 жыл бұрын
Ну ви іздіваєтися, превратили один маленький клас, в цілий проект!
@collesssqwer1673
@collesssqwer1673 5 жыл бұрын
я конечно не эксперт да и видео уже попахивает "актуальной" информацией но на моменте 6:34 разве не лучше ли было использовать Select, (и выбрать нужное свойство вместо того чтобы всё в лист через цикл записывать), а потом сразу же вызвать метод ToArray(), или это такой High Level стёб который слишком крут для меня ?
@stanislavhrytsyshyn1732
@stanislavhrytsyshyn1732 7 жыл бұрын
Спасибо, хорошая работа парень!
@БанкирТв-к2л
@БанкирТв-к2л 4 жыл бұрын
Молодец, шо тут сказать, юмор прикольный)
@snakelivegames821
@snakelivegames821 6 жыл бұрын
Как же ты классно это записал, лайк тебе за креативность и полезность информации. Спасибо
@AlexM-gn7bp
@AlexM-gn7bp 8 жыл бұрын
А вообще спасибо за видео, хороший пример наглядного использования интерефейсов да еще и обобщенных
@АлександрЯркин-й9я
@АлександрЯркин-й9я 5 жыл бұрын
Пиздатый код. Пиздатое ооп. Пиздатый парсер
@artursveshnikov7668
@artursveshnikov7668 4 жыл бұрын
Сделал на .net core 3.1 буква в букву, всё отлично работает.
@AlexM-gn7bp
@AlexM-gn7bp 8 жыл бұрын
вопрос почему вы используете в классе ParserWorker в приватном методе Worker() - async void а не async Task? это же не метод обработчик события
@ExtremeCode
@ExtremeCode 8 жыл бұрын
Привет, тут все просто, грубо говоря, если необходимо дожидаться выполнения асинхронного метода через await, то делаем его тип Task, если не нужно - то не делаем, в нашем контексте этот метод просто работает в фоне, и информирует о завершении с помощью события, так что тип Task тут не используется
@AlexM-gn7bp
@AlexM-gn7bp 8 жыл бұрын
а экспеншны(теоретические если такоевые будут) куда будут вылетать?
@vladyslavromanov7039
@vladyslavromanov7039 7 жыл бұрын
Можно делать Task и не дожидаться его. Очень много тем есть на этот счет, мол почему лучше юзать Task, а не void (когда это возможно)
@SuleimanVatrushkin
@SuleimanVatrushkin 5 жыл бұрын
Нихуя не понял, но очень интересно!
@maxbrain9205
@maxbrain9205 6 жыл бұрын
В конце, когда делаешь форму, невозможно что-то успеть разглядеть, если не жать постоянно паузу и не отматывать назад много раз. Так ведь придется еще раз смотреть этот отрывок после создания формы, чтобы послушать твою речь. Найс...
@Ramzes646
@Ramzes646 8 жыл бұрын
iPro, большое спасибо. Продолжай!
@linker-arm
@linker-arm 2 жыл бұрын
Спосибо тебе, дядюшка IPro
@Simon-tk8im
@Simon-tk8im 7 жыл бұрын
Все очень круто, а кто-нибудь парсер погоды делал из этого?
@artemadeev7444
@artemadeev7444 4 жыл бұрын
удалось сделать ? у меня одна страница на yandex.ru/pogoda/novosibirsk/details?via=mf#2 соответственно мне не нужен переход страниц и я застрял блин.
@fullboarduck5491
@fullboarduck5491 4 жыл бұрын
Кажется я не туда полез, мне сюда ещё рано(
@yaroslavkolyada6914
@yaroslavkolyada6914 Жыл бұрын
async void это не преступление? для abort не логичнее ли использовать CancelationToken?
@Alpaha92
@Alpaha92 7 жыл бұрын
Отличный видос) Жаль, что парсер не подойдёт для тех, кто узнаёт о количестве страниц из пагинации, к примеру :)
@MegaSping
@MegaSping 8 жыл бұрын
спасибо, как раз что нужно для моего говно-парсера с моими копирайтами задумка та же, но придется еще научить открывать его страницы и жмакать на кнопки внутри них
@alisher.sabirov
@alisher.sabirov 6 жыл бұрын
Сделай видео где можно было парсить более сложные вещи бро! Спасибо
@НиколайВьюгин-ъ5ш
@НиколайВьюгин-ъ5ш 2 жыл бұрын
Повторил за автором, 5 лет дали о себе знать, 20 ошибок....
@iseengreenenjoyer
@iseengreenenjoyer 3 жыл бұрын
>Делаем парсер >HTMLDocument Неплохо
@avalonex2971
@avalonex2971 Жыл бұрын
удивительно как человек предсказал это событие: 4:10
@norker43
@norker43 6 жыл бұрын
Хотел на основе этого кода забацать парсер lostfilm, который просто выводит названия из списка сериалов в listbox, но столкнулся с проблемой. Из-за того, что контент на странице генерируется динамически парсятся только первые 10 строк. Вот ролик о том как это делать, мне бы очень пригодился
@sp1ne2104
@sp1ne2104 5 жыл бұрын
посмотри тут: stackoverflow.com/questions/24130650/scraping-data-dynamically-generated-by-javascript-in-html-document-using-c-sharp или попробуй Selenium. Посмотри ещё CefSharp
@gloomkol
@gloomkol 8 жыл бұрын
ыПро, спасибо за C#! Мистя, а к тебе все еще остается один вопрос: Где C# ???
@РоманКанарейкин
@РоманКанарейкин 5 жыл бұрын
Как сделать чтобы отлавливал теги которые находятся в теге ? Он тупо не видит все что внутри этого тега , хотя то, что внутри так же подходит под параметры. Вот пример: Моя строка в классе "HabraParser" : var items = document.QuerySelectorAll("span").Where(x => x.ClassName != null && x.ClassName.Contains("q")); А вот кусок HTML кода, в котором есть строка, которая подходит под параметры выборки: .... Оглушает цель на 5 сек.. Действует только на замороженных противников. .... Но парсер не индексирует то, что находится в теге (в остальном все работает). Как заставить его индексировать внутри ? Не хочется брать целиком весь и регулярными выражениями выбирать все это.
@stepanzvarich6699
@stepanzvarich6699 7 жыл бұрын
Спасибо) Очень помог)
@andriimilkevych1844
@andriimilkevych1844 3 жыл бұрын
Ау, где вторая часть? Со сложными примерами??? Уже 4 года прошло!!
@TheShadow0197
@TheShadow0197 7 жыл бұрын
Спасибо! Использую в своем проекте =)
@TOPCHANNELSTOP
@TOPCHANNELSTOP 3 жыл бұрын
Тэк будет вторая часть?))
@eynsherkiel4913
@eynsherkiel4913 5 жыл бұрын
Не надо делать интерфейсы на всё подряд. Зачем они настройкам? Вы не собираетесь их мокать, вам не нужно их переопределять. А уж тем более нельзя чтобы настройки как то по разному генерили поля. То есть настройки это обычный картеж данных передаваемых в процедуру / класс и тд. Они должны быть константы в сути своей.
@magpiehq8973
@magpiehq8973 2 жыл бұрын
Ну я захочу переопределить, помокать и даже по разному генерить поля. Идёт расчёт на то, что тот, кто просмотрел видос, сможет допилить ручонками требуемый функционал.
@Coool
@Coool 8 жыл бұрын
Все клево но не очень жизнено. Если будет 500 с хером страниц - затрахаешься парсить. А многопоток без допиливания не завезти
@ExtremeCode
@ExtremeCode 8 жыл бұрын
Да не так уж и сложно, цикл Worker'а переделать на while, счетчик вынести в поле и синхронизовать увеличение lock'ом, в методе Start запускать нужное количество раз при помощи Task.Run, только в UI надо тоже при помощи инвоков синхронизовать вывод элементов
@ПавелТ-л7ь
@ПавелТ-л7ь 7 жыл бұрын
В реальных проектах на больших объёмах SAX parser выигрывает
@bad_jaguar
@bad_jaguar 6 жыл бұрын
Всё аккуенно понятно. Завтра попробую пильнуть. С формами ещё не работал правда, но разобраться можно
@alexandrsharp920
@alexandrsharp920 4 жыл бұрын
Какой клиент лучше юзать для парсинга ? http или webclient ?
@Мастер-б6х
@Мастер-б6х 7 жыл бұрын
Не работает проект скаченный. Просит еще какие то пакеты. AngleSharp установлен Не подскажите? Visual studio 17
@александрровенский-з1э
@александрровенский-з1э 7 жыл бұрын
там маленькая опечатка, в одном из namespace написано Parser.Cor
@RosemiNext
@RosemiNext 4 жыл бұрын
Понимаю, что видос старинный, но! Парсер должен быть универсальным. Пользователь должен только ввести адресс страницы, а затем уже вибирать, что с этой страницы ему надо просто просмотреть , какую-то ссылку скопировать, что -то скачать, преобразовать страницу или запустить свой скрипт на ней. Парсер также должен быть удобен в плане работы с диском ПК. И боже упаси использовать Form... слишком старая технология. Хотя-бы WPF.
@milovidov42
@milovidov42 6 жыл бұрын
Досмотрел до конца все супер спасибо пиши есче!
@MrSinn3r
@MrSinn3r 8 жыл бұрын
А у вас *ус отклеился* абстракции потекли
@yazimmaable
@yazimmaable 6 жыл бұрын
на 22 строке переменная типа string. присваиваете null.Разве по умолчанию она уже не равна null?
@КириллЕвстратов-е2л
@КириллЕвстратов-е2л 5 жыл бұрын
по умолчанию она = "" - (string.empty)
@testantestovich1698
@testantestovich1698 6 жыл бұрын
Спасибо за видео! Есть вопрос, если мне нужно вытянуть УРЛы изображений со всего, не с одной страницы а со всего сайта, это возможно? Можете помочь? УРЛ изображения находится здесь:
@anonimanonim1428
@anonimanonim1428 5 жыл бұрын
div[class='img'] на тобі селектор
@RubySirius
@RubySirius 8 жыл бұрын
Слушай, мне нужно сделать которая будет сравнивать файл на сайте с файлом на компе, т.е. проверять обновление файла. если он обновился, то заменить старую версию. может подскажешь чего или видос запилишь?
@geek__3743
@geek__3743 8 жыл бұрын
string str1="any text"; string str2="any text"; bool equal=(str1==str2);//True bool equal1 = str1.Equals(str2);//True str2="another text"; equal=(str1==str2);//False equal1 = str1.Equals(str2);//False по идеи у класса String есть перегрузка оператора ==, которая неявно выполняет метод Equals, но я могу ошибаться
@Alex-w1v7k
@Alex-w1v7k 7 жыл бұрын
Ммм...а зачем в HarbraParser.Parse надо было добавлять это все в лист да еще и циклом?
@АлександрИви
@АлександрИви 7 жыл бұрын
Поделитесь пожалуйста Где можно почитать описание библиотеки "AngleSharp" для парсера и в видео вы говорили что есть где то код на исходник но я его не нашел . С уважением IVI.
@leonid_konoplin
@leonid_konoplin 5 жыл бұрын
братуля, где вторая часть?
@slivich
@slivich 6 жыл бұрын
А можете рассказать как из всей это информации вывести только нужное тебе в другое окно (по ключевым словам)
@valtaiga
@valtaiga 7 жыл бұрын
Спасибо, как ни странно, я большинство понял и вообще заебись представляешь пособие (интересно). А если серьезно, то через WebSockets как-то проще это делать, не очень понимаю зачем велосипед изобретать)
@vadimzhuravskyi7222
@vadimzhuravskyi7222 2 жыл бұрын
учус щас с++ и с# мне интересно если данные с сайта можно получить только с авторизацией как програмно сделать это? или нужен АПИ? мб есть у кого информация
@AzizjanAyupov_leo
@AzizjanAyupov_leo 4 жыл бұрын
Классный туториал) Но зачем, а главное нахуя создавать property IsActive если всё равно его не используешь?))
@ВНаушниках-о7н
@ВНаушниках-о7н 5 жыл бұрын
не получается гугл парсить QuerySelectorAll без результатов. такое чуство что натыкаюсь на капчу и не видно никаких классов помогите
@_petux7355
@_petux7355 3 жыл бұрын
Я нихуя не понял, но ты сделал мне проектную за 2е суток до сдачи
@followtheculture8817
@followtheculture8817 6 жыл бұрын
Как научить парсер переходить по ссылкам и парсить данные дальше ?
@BoxaShu
@BoxaShu 8 жыл бұрын
давай продолжение.
@НиколайФролов-м3м
@НиколайФролов-м3м 7 жыл бұрын
Давай вторую часть! =)
@GrafMKristo
@GrafMKristo 7 жыл бұрын
OnSomething?.Invoke(this); Я не знаю, что это за нотация! Справочники по событиям молчат. Ткните пожалуйста!
@ExtremeCode
@ExtremeCode 7 жыл бұрын
Это короткий аналог вот такой конструкции if(OnSomething != null) { OnSomething(this); } P.S. Это делегат, а не событие. У делегатов есть метод Invoke, который по сути аналогичным образом вызывает метод по ссылке, оператор ? проверяет равен ли делегат OnSomething null'у, если там есть что либо, то вызывается метод Invoke со следующими аргументами
@GrafMKristo
@GrafMKristo 7 жыл бұрын
Большое спасибо, дядя iPro!
@Excalib
@Excalib 7 жыл бұрын
Мне кажется он имел ввиду именование "OnSomething"
@almazmusic
@almazmusic 4 жыл бұрын
Образцовый туториал по кодингу
@РинатРаот
@РинатРаот 8 жыл бұрын
Блин,круто))
@andrewbonchuk450
@andrewbonchuk450 7 жыл бұрын
День добрый! Проблема с VS 17, нет консольного менеджера пакетов. Что за беда?
@andrewbonchuk450
@andrewbonchuk450 7 жыл бұрын
И в вид >> другие окна>> нет Package Manager Console. Гугл молчит.
@IndGam
@IndGam 7 жыл бұрын
устанавливай NuGet
@yuriilitvin3306
@yuriilitvin3306 5 жыл бұрын
Давай 2-ю часть!!!!!
@ДмитрийН-л9ф
@ДмитрийН-л9ф 7 жыл бұрын
4:09 чудная кнопка! а что если она не появилась?
@AzizjanAyupov_leo
@AzizjanAyupov_leo 4 жыл бұрын
Ctrl + .
@maksymo9917
@maksymo9917 7 жыл бұрын
когда вторая часть ?)
@andrmiw9
@andrmiw9 6 жыл бұрын
а что делать, если не нужен вообще префикс, например для вк? Я попробовал его убрать, не помогло(
@kem0n
@kem0n 6 жыл бұрын
Скачал и запустил проект, выкидывает HttpRequestException....
@kamushekdev
@kamushekdev 7 жыл бұрын
А почему бы не использовать токен отмены вместо булевой переменной? :D
@ExtremeCode
@ExtremeCode 7 жыл бұрын
Я програмест, я так вижу
@CrafterMinecrafter
@CrafterMinecrafter 5 жыл бұрын
11:10 ОН ГЕНИЙ!!!
@K14M
@K14M 2 жыл бұрын
Что делать если даже не устанавливается? Install-Package AngleSharp Install-Package : Совпадения для указанных условий поиска и имени пакета "AngleSharp" не найдены. Чтобы просмотреть все доступные зарегистрированные источники пакетов, исполь зуйте командлет Get-PackageSource. строка:1 знак:1 + Install-Package AngleSharp + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Exception + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage
@forcewillbewithyoualways3116
@forcewillbewithyoualways3116 7 жыл бұрын
Спасибо!
@nikitanikitenko5338
@nikitanikitenko5338 7 жыл бұрын
Просто лучший!
@yah9011
@yah9011 4 жыл бұрын
Мудак он.
@sdfsdfgs
@sdfsdfgs 8 жыл бұрын
А чё видео по удаляли?(была же годнота)
@НиколайНиколаев-ю6п
@НиколайНиколаев-ю6п 8 жыл бұрын
решили, что не соответствует новому формату. Если соскучился по старым видосам, можешь найти их в нашей группе в вк.
@neuro_kurwa
@neuro_kurwa 2 жыл бұрын
@xbmusics
@xbmusics 3 жыл бұрын
Проблема с выведение данных в ListBox... У кого существуют из мимо проходящих такая проблема?
@cyrilk4338
@cyrilk4338 6 жыл бұрын
Спасибо !!!
@blt_r
@blt_r 3 жыл бұрын
А на кой хер эта дичь с LINQ нужна? Смысл QuerySelectorAll в том, что он работает как querySelectorAll из js, то есть можно передать туда любой css селектор. QuerySelectorAll("a.post__title_link") вернёт тебе все елементы "a" с классом "post__title_link"
@SerGasparyan
@SerGasparyan 6 жыл бұрын
Ахах сука два часа смотрел все повторял писал то да се и на паузы ставил а он в конце плять - ну кодец то я оставлю )))) Ну спасибо плять)
@nixhalla3uk27
@nixhalla3uk27 6 жыл бұрын
Ну если ты как даун, просто всё переписываешь и не учишься, то зачем вообще смотреть было ?
@Drapiks
@Drapiks 8 жыл бұрын
лайк неглядя
@adhamkhaytbaev16
@adhamkhaytbaev16 3 жыл бұрын
а как ты файл создал??
@GGamess
@GGamess 2 жыл бұрын
в ruby это несколько строчек.
Большие проблемы наследования в ООП
10:51
Почему Катар богатый? #shorts
0:45
Послезавтра
Рет қаралды 2 МЛН
She wanted to set me up #shorts by Tsuriki Show
0:56
Tsuriki Show
Рет қаралды 8 МЛН
7 months of game development progress | Devlog
7:58
Challacade
Рет қаралды 8 М.
Пишем парсер на JavaScript | QA
20:34
Campfire School | Ivan Petrychenko
Рет қаралды 69 М.
Делегаты и события на практике
9:20
ExtremeCode
Рет қаралды 154 М.
Фичи и производительность C#  11 .net 7 vs C# 10 .net 6
29:02
Архитектор ПО. Александр Желнин
Рет қаралды 12 М.
Вся суть ассемблера за одно видео
8:51
Избавляемся от If и Switch в коде на C#! КАК !?
14:38
Роман Сакутин
Рет қаралды 98 М.
Http Get And Post In C#
19:37
Nick Proud
Рет қаралды 101 М.