• Какое возможное количество комбинаций из 12 слов?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Комбинаторика. 12!
    Подучи русский язык и научись правильно применять тся/ться
    Ответ написан
    3 комментария
  • Как сделать повтор запроса webrequest при ошибке (C#)?

    @hello_my_name_is_dany
    Backend Developer (Node.js, PHP, C#)
    Через рекурсию, как вариант

    async Task<string> SendRequestUntilSuccess(string url)
    {
        try	
        {
            HttpResponseMessage response = await client.GetAsync(url);
            response.EnsureSuccessStatusCode();
            return response.Content.ReadAsStringAsync();
        }
        catch(HttpRequestException e)
        {
            return SendRequestUntilSuccess(url);
        }
    }
    Ответ написан
    Комментировать
  • Как сделать повтор запроса webrequest при ошибке (C#)?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    while(True){
        try{
          здесь твои запросы
        }
        catch{
           ...
        }
    }
    Ответ написан
    2 комментария
  • Как сделать повтор запроса webrequest при ошибке (C#)?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    1. Просто в цикле повторяешь запросы с некоторой периодичностью
    2. Вместо WebRequest лучше использовать HttpClient
    3. Чтобы не пилить велосипеды - используйте Polly
    Ответ написан
    Комментировать
  • Как сделать цикл на основе ответа на Web запрос в C#?

    habcerga1
    @habcerga1
    class WebWorker
        {
            public async Task<string> GetWhileNotOk(string request_uri)
            {
                var get_url = request_uri;
                HttpWebResponse resp = new HttpWebResponse();
                var req           = (HttpWebRequest) WebRequest.Create(get_url);
                resp = (HttpWebResponse) await req.GetResponseAsync();
                if (resp.StatusCode != HttpStatusCode.OK)
                {
                    this.GetWhileNotOk(request_uri);
                }
                var sr            = new StreamReader(resp.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                var content       = sr.ReadToEndAsync();
                sr.Close();
                return content.Result;
            }
        }


    А вот так вам не подойдет?
    Ответ написан
    Комментировать
  • Как сделать цикл на основе ответа на Web запрос в C#?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Данный пример хорош тем, что ты можешь очень быстро создать ещё хоть 10 разных методов для обращения к API сервера. Часть кода была взята со справки майкрософта, частично модифицирована (где XML комментарии на английском).

    HttpClientExample.csproj
    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
      </ItemGroup>
    
    </Project>


    Точка входа в приложение и основной алгоритм по получению данных в цикле.
    Program.cs
    using System;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace HttpClientExample
    {
        class Program
        {
            // В качестве исключения я расположил в самом верху класса метод Main, 
            // обычно здесь должны быть поля класса, а все методы ниже.
            #region Entry point
    
            static async Task Main(string[] args)
            {
                var program = new Program();
                await program.Run(args);
            }
    
            #endregion
    
            private readonly SomeClient _client;
    
            public Program()
            {
                _client = new SomeClient("http://localhost:5000");
            }
    
            private async Task Run(string[] args)
            {
                bool success = false;
                do
                {
                    try
                    {
                        // CancellationToken пригодится в приложениях с UI, где нужно, например, 
                        // закрыть окно или уйти со страницы не дожидаясь, пока запрос отработает. 
                        // Здесь заранее это заложено, можно и не использовать, если приложение консольное.
                        string data = await _client.GetData(CancellationToken.None);
                        success = true;
    
                        Console.WriteLine(data);
                    }
                    catch (ApiException ex)
                    {
                        // Одна реакция
                        Console.WriteLine(ex);
                        Console.WriteLine();
                    }
                    catch (Exception ex)
                    {
                        // Другая реакция
                        Console.WriteLine(ex);
                        Console.WriteLine();
                    }
    
                    await Task.Delay(150);
                } while (!success);
    
                _client.Dispose();
            }
        }
    }


    SomeClient.cs
    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Net.Http;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using Newtonsoft.Json;
    
    namespace HttpClientExample
    {
        public class SomeClient : IDisposable
        {
            private const string GET_TEXT_PART = "/api/system/get-text";
            private const string GET_USER_PART = "/api/system/get-user";
    
            private HttpClient _httpClient;
    
            public Dictionary<string, string> DefaultHeaders { get; }
    
            public SomeClient(string baseAddress)
            {
                var httpHandler = new HttpClientHandler
                {
                    AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
                };
    
                _httpClient = new HttpClient(httpHandler)
                {
                    BaseAddress = new Uri(baseAddress)
                };
    
                DefaultHeaders = new Dictionary<string, string>
                {
                    ["Accept"] = "*/*",
                    ["Accept-Encoding"] = "gzip, deflate",
                    ["Cache-Control"] = "no-cache",
                    ["Connection"] = "keep-alive",
                };
            }
    
            public void Dispose()
            {
                if (_httpClient != null)
                {
                    _httpClient.Dispose();
                    _httpClient = null;
                    GC.SuppressFinalize(this);
                }
            }
    
            public async Task<string> GetData(CancellationToken cancellationToken)
            {
                string text = await InvokeText(HttpMethod.Get, GET_TEXT_PART, cancellationToken);
                // Возможно, что-то залогировал.
                return text;
            }
    
            public async Task<User> GetUser(CancellationToken cancellationToken)
            {
                var user = await InvokeJson<User>(HttpMethod.Get, GET_USER_PART, cancellationToken);
                // Возможно, что-то залогировал.
                return user;
            }
    
            /// <summary>
            /// Sets the request.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <param name="requestContent">Content of the request.</param>
            private void SetRequest(HttpRequestMessage request, object requestContent)
            {
                foreach (var header in DefaultHeaders)
                {
                    request.Headers.Add(header.Key, header.Value);
                }
    
                if (requestContent != null)
                {
                    request.Content = new StringContent(JsonConvert.SerializeObject(requestContent),
                        Encoding.UTF8,
                        Constants.HttpMimeTypes.JsonContentType);
                }
            }
    
            /// <summary>
            /// Invokes the specified HTTP method.
            /// </summary>
            /// <param name="httpMethod">The HTTP method.</param>
            /// <param name="relativeUrl">The relative URL.</param>
            /// <param name="cancellationToken">Cancellation token.</param>
            /// <param name="requestContent">Content of the request.</param>
            /// <returns>instance of the type T</returns>
            /// <exception cref="ApiException"></exception>
            private async Task<string> InvokeText(HttpMethod httpMethod, string relativeUrl, CancellationToken cancellationToken, object requestContent = null)
            {
                using (var request = new HttpRequestMessage(httpMethod, relativeUrl))
                {
                    SetRequest(request, requestContent);
    
                    using (HttpResponseMessage response = await _httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead, cancellationToken))
                    {
                        string responseText = await response.Content.ReadAsStringAsync();
                        if (response.IsSuccessStatusCode)
                        {
                            return responseText;
                        }
    
                        throw new ApiException(response.StatusCode, responseText);
                    }
                }
            }
    
            /// <summary>
            /// Invokes the specified HTTP method.
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="httpMethod">The HTTP method.</param>
            /// <param name="relativeUrl">The relative URL.</param>
            /// <param name="cancellationToken">Cancellation token.</param>
            /// <param name="requestContent">Content of the request.</param>
            /// <returns>instance of the type T</returns>
            /// <exception cref="ApiException"></exception>
            private async Task<T> InvokeJson<T>(HttpMethod httpMethod, string relativeUrl, CancellationToken cancellationToken, object requestContent = null)
            {
                using (var request = new HttpRequestMessage(httpMethod, relativeUrl))
                {
                    SetRequest(request, requestContent);
    
                    using (HttpResponseMessage response = await _httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead, cancellationToken))
                    {
                        string responseText = await response.Content.ReadAsStringAsync();
                        if (response.IsSuccessStatusCode)
                        {
                            var resource = JsonConvert.DeserializeObject<T>(responseText);
                            return resource;
                        }
    
                        throw new ApiException(response.StatusCode, responseText);
                    }
                }
            }
    
            private static class Constants
            {
                public static class HttpMimeTypes
                {
                    /// <summary>
                    /// The json content type
                    /// </summary>
                    public const string JsonContentType = "application/json";
                }
            }
        }
    }


    Этот класс используется просто для примера, как преобразовать JSON, полученный от сервера в экземпляр класса
    User.cs
    using Newtonsoft.Json;
    
    namespace HttpClientExample
    {
        public class User
        {
            [JsonProperty("id", Required = Required.Always)]
            public long Id { get; set; }
    
            [JsonProperty("name", Required = Required.Always)]
            public string Name { get; set; }
        }
    }


    async await, чтобы было примепрное понимание, что происходит.
    Скриншот сделан с видео: https://youtu.be/lh8cT6qI-nA?t=1123
    5fb13cbe569ab013358287.jpeg
    Ответ написан
    Комментировать
  • Как записать новое значение из цикла (Python)?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    LebedevStr,
    на тот случай если вместо "5" пользователь напишет "пять".
    оно для этого и сделано, проверять в строке содержится число либо нет.

    Используйте обработчики шагов
    https://github.com/eternnoir/pyTelegramBotAPI/blob...

    step_msg = bot.send_message(message.from_user.id, 'Не конвертнули. Попробуй еще раз')
    bot.register_next_step_handler(step_msg, get_age)


    while isinstance(age, str):
    Непонятно, зачем while и зачем проверка, является ли строкой данная переменная. Если вы берете значение из .text, оно в принципе не может быть ничем другим, кроме как строкой.

    От глобальной переменной я бы тоже избавился, но не знаю, может вам нужна.

    И ; - для чего и зачем?

    Ну и в итоге выглядело бы так
    def get_age(message):
        global age
        age = message.text
        if age.isdigit():
            bot.send_message(message.from_user.id, 'Конверт в цифру произошел')
        else:
            step_msg = bot.send_message(message.from_user.id, 'Не конвертнули. Попробуй еще раз')
            bot.register_next_step_handler(step_msg, get_age)
    Ответ написан
    2 комментария
  • Передаю не правильный заголовок в POST запрос (C#)?

    @none7
    Не можете форматировать json руками, используйте классы
    JsonSerializer.Serialize(new { input = "We make the world a better place" , lang = "ja"})
    Ответ написан
    7 комментариев
  • Как Как округлить целое число в большую сторону?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    До десяток
    =ОКРУГЛВВЕРХ(A1/10;0)*10
    До чётного
    =ОКРУГЛВВЕРХ(A1/2;0)*2
    До пятерок
    =ОКРУГЛВВЕРХ(A1/5;0)*5
    и т.п.
    Ответ написан
    1 комментарий
  • Как сделать сортировка колонок по значениям (Excel)?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    1) Записать всё в 2 столбца
    2) Выбрать уникальные значения по первому столбцу
    3) Выбрать данные из 1) по значениям из 2)

    В Google Sheets я бы использовал FILTER() и UNIQUE(), а в Excel - скриптом на VBA быстрее получится
    Ответ написан
    5 комментариев
  • Как посчитать кол-во вхождение в string (C#)?

    twobomb
    @twobomb
    string value = "привет привет hi привет hi";
    var counts = value.Split(' ').Distinct().Select(s => s+" = "+ value.Split(' ').Count(z => z == s));
    foreach (var item in counts)
         Console.WriteLine(item);


    привет = 3
    hi = 2
    Ответ написан
    1 комментарий
  • Как посчитать кол-во вхождение в string (C#)?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    using System;
    using System.Text.RegularExpressions;
    
    class MainClass {
      public static void Main (string[] args) {
        string value = "привет привет hi привет hi";
        string find = "hi";
        var matches = Regex.Matches(value, find).Count;
        Console.WriteLine("\"{0}\" = {1}", find, matches);
      }
    }

    Outp:
    "hi" = 2
    Ответ написан
    2 комментария
  • Как изменить ссылки на фото в Excel?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Только макросом:
    - пройтись по ячейкам нужного столбца;
    - извлечь ссылку;
    - скачать картинку;
    - вставить в ячейку.
    Специалист сделает макрос за 2-3 часа.

    Встроенного в Excel функционала к сожалению нет.
    Ответ написан
    Комментировать
  • Как изменить ссылки на фото в Excel?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    никак

    вроде бы канало в google sheets , скорее всего, тоже уже никак
    Ответ написан
    Комментировать
  • Существует ли интерактивный ярлык папки в Windows?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сделайте символическую ссылку.
    То есть консольная команда такая:
    mklink /d "D:\folder" "C:\Users\user\Documents\Папка"
    Ответ написан
    2 комментария
  • Существует ли интерактивный ярлык папки в Windows?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Добавлю еще один способ, если программа берет путь до "Мои Документы" из реестра а не пользуется жестко прошитым путем c:\users\user\documents\рабочая_папка_программы

    "Мои Документы" можно переместить на другой диск, полностью.
    Для этого открываем свойства папки "мои документы" и ищем вкладку "Расположение"
    Там можно указать новый путь, куда система переместит все текущие файлы из МД и будет использовать этот путь по умолчанию.

    Для решения задачи в том виде в котором вы ее описали способ dollar подходит больше. То что я написал - скорее альтернатива.
    Ответ написан
    1 комментарий
  • Как пользоваться оператором AND для XPATH?

    @Roman-Fov
    Запрос отрабатывает. Может не то хотим выбрать?
    Какой результат ожидается?
    Ответ написан
    3 комментария
  • Какое регулярное выражение для верхнего регистра?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Флаг i за это отвечает. Точнее, его отсутствие.
    https://regex101.com/r/kuma9k/1

    А какой язык программирования?
    Ответ написан
    5 комментариев
  • Есть ли у Google Поиска зеркала?

    Комментировать
  • Почему нет удаленного доступа к WAMP?

    fzfx
    @fzfx
    18,5 дм
    > Но он почему-то локальный.
    этот IP-адрес либо прописан в настройках сетевого адаптера вручную, либо выдаётся сетевому адаптеру по DHCP от маршрутизатора, к которому подключен комп.
    адрес из приватного диапазона, да, а это означает, что интернет у вас через NAT на роутере. если провайдер выдаёт вам (вашему роутеру) белый IP-адрес, то вам надо настроить на маршрутизаторе проброс нужного вам порта (TCP 80) на IP-адрес компа.
    если провайдер выдаёт вам серый IP-адрес, то сначала заказать у него белый IP-адрес, а потом вернуться к предыдущему абзацу.
    Ответ написан
    6 комментариев