Профиль пользователя заблокирован сроком с 15 июня 2023 г. и навсегда по причине: Нарушение п. 6.6 правил.
  • Как сделать сделать поиск по строке php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    stripos и strpos работают правильно

    А если вам вдруг кажется, что они работают неправильно, то надо привести пример.
    И тогда вам сразу объяснят, что вы делаете неправильно
    Ответ написан
    4 комментария
  • Как сделать сделать поиск по строке php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Сначала узнать, что же такое charset, а потом начать пользоваться mb_strpos() и mb_stripos().
    Ответ написан
  • Как парсить автоматически?

    Stalker_RED
    @Stalker_RED
    cron или какой то другой планировщик задач.
    Ответ написан
    Комментировать
  • Как исправить ошибку LNK2001 unresolved external symbol __imp_GetUserNameW C++?

    Надо добавить в линкер Advapi32.lib
    Ответ написан
    Комментировать
  • Как исправить ошибку LNK2001 unresolved external symbol __imp_GetUserNameW C++?

    @dima20155
    you don't choose c++. It chooses you
    Вы настроили Linker перед компилияцией?
    Вероятно, самым простым способом будет выбрать другой тип проекта (desktop под windows)
    Или же настройте Linker самостоятельно (.lib + точка входа + тип приложения)
    Ответ написан
    1 комментарий
  • Как исправить ошибку LNK2001 unresolved external symbol __imp_GetUserNameW C++?

    TrueBers
    @TrueBers
    Гуглю за еду
    Гуглим название функции: GetUserNameW.
    Заходим по первой же ссылке на документацию Microsoft.
    Там спускаемся в раздел Requirements.
    В строке "Library" видим Advapi32.lib.

    Теперь гуглим текст ошибки LNK2001 unresolved external symbol и переходим по первой ссылке, которая снова, внезапно, по невероятному стечению обстоятельств оказывается документацией Microsoft.
    Там читаем описание ошибки, и что нужно сделать, чтобы её устранить. Там даже ссылка на StackOverflow оставлена!

    2 основных варианта: либо в настройках проекта добавляем эту библиотеку к списку линкуемых, либо прямо в коде говорим линкеру #pragma comment(lib, "Advapi32").
    Браво! Вы великолепны!
    Да ещё и потратили в 3 раза меньше времени, чем писать сюда вопрос.

    Не сложно, если захотеть, правда?
    Ответ написан
    Комментировать
  • Как разбить текст и поместить в массив с помощью регулярки?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    $str = "1. --------
    2. --------
    3. --------
    ----------
    9. -------";
    $pattern = '/\d+\.\s*(.*)/';
    preg_match_all($pattern, $str, $matches);
    print_r($matches[1]);
    Ответ написан
    Комментировать
  • Какие минимальные знания С++ должны быть, чтобы начать изучать Unreal Engine 5?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что мне стоит делать дальше?

    Изучать обе параллельно.

    какие минимальные знания С++ должны быть, чтобы начать изучать Unreal Engine 5

    Понимание синтаксиса и способность читать документацию.
    Ответ написан
    Комментировать
  • Почему не работает ajax запрос?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Возможно решит проблему:
    xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    Ответ написан
    1 комментарий
  • Почему не работает ajax запрос?

    @kaka888
    C, C++, Qt, Python Flask, MySQL, Lua
    Ошибка в названии события: form.addEventListener("sumbit", function(event){.
    sumbit -> submit.
    Ответ написан
    Комментировать
  • Ошибка в download_media, что делать?

    DoNiFF
    @DoNiFF
    C++ Developer
    Может быть так?
    @client.on(events.NewMessage(chats=[ids]))
    async def my_event_handler(event):
        me = await client.get_me()
        username = me.username
        try:
            from_ = await event.client.get_entity(event.from_id)
            if event.from_id is not None:
                from_ = await event.client.get_entity(event.from_id)
        except ValueError:
            pass
        if event.file:
            path = await client.download_media(event.media, "./media/")
            if event.file.name == None:
                await client.send_message("me", f"{from_.username}: (File name is None)")
                await client.send_message("me", f"auto-downloader: (File name is None) saved to ./media/")
                print(f"file | | (File name is None) downloaded")
            else:
                await client.send_message("me", f"{from_.username}: {event.file.name}")
                await client.send_message("me", f"auto-downloader: {event.file.name} saved to ./media/")
                print(f"file | | {event.file.name} downloaded")
        else:
            await client.send_message("me", f"{from_.username}: {event.text}")
        print(f"msg | {from_.username} | {event.text}")
    Ответ написан
    7 комментариев
  • Что нужно для авторизации через Google?

    "Sign in with google" реализуется при помощи OIDC:
    В документации есть ссылки и на стандарт, как это работает, и что примерно нужно сделать у себя в приложении, чтобы это заработало.
    https://developers.google.com/identity/openid-conn...

    Кстати, если ты такую кнопку добавляешь у себя в приложение на яблоке, то ты также будешь обязан сделать "Sign in with apple"
    https://developer.apple.com/sign-in-with-apple/get...

    Но на яблоке вроде для игр есть какой-то свой API, так что ты вполне можешь на Android использовать Google Play Games, а на яблоке - яблочное.
    Ответ написан
    3 комментария
  • Как сделать КД по времен?

    DoNiFF
    @DoNiFF
    C++ Developer
    Например,
    import time
    
    last_attack_time = 0
    cooldown_time = 15
    
    def make_attack():
        global last_attack_time
        current_time = time.time()
        if current_time - last_attack_time < cooldown_time:
            remaining_time = int(cooldown_time - (current_time - last_attack_time))
            print(f"Удар можно делать раз в {cooldown_time} секунд! Подождите еще {remaining_time} секунд.")
            return False
        else:
            last_attack_time = current_time
            return True
    Ответ написан
    1 комментарий
  • Как сделать КД по времен?

    @impelix
    проверяйте через модуль тайм как давно был сделан предыдущий запрос и все
    Ответ написан
    Комментировать
  • Как создавать массивы с неограниченной вложенностью в c++?

    1HAWK1
    @1HAWK1
    В C++ невозможно создавать массивы с неограниченной вложенностью, поскольку размер массива должен быть известен во время компиляции. Однако можно создавать вложенные массивы с фиксированным числом измерений, а затем использовать указатели или динамическое выделение памяти для имитации неограниченной вложенности. Вот два подхода:

    1) Использование указателей:
    Одним из способов создания массивов с неограниченной вложенностью является использование указателей для создания массива указателей на массивы. Вот пример:

    int*** nestedArray;
    nestedArray = new int**[10]; // create an array of 10 pointers to int**
    for (int i = 0; i < 10; i++) {
        nestedArray[i] = new int*[5]; // create an array of 5 pointers to int* for each of the 10 int**
        for (int j = 0; j < 5; j++) {
            nestedArray[i][j] = new int[3]; // create an array of 3 int for each of the 50 int*
        }
    }


    В этом примере мы создаем массив из 10 указателей на массивы из 5 указателей на массивы из 3 целых чисел в каждом. Вы можете продолжить вложение массивов, добавив дополнительные уровни указателей.

    2) Использование динамического выделения памяти:
    Другой способ создания массивов с неограниченной вложенностью — использование динамического выделения памяти с оператором new. Вот пример:

    int dims[] = {10, 5, 3}; // an array of the dimensions of the nested arrays
    int* arr = new int[dims[0] * dims[1] * dims[2]]; // create a one-dimensional array with the total number of elements
    int*** nestedArray = new int**[dims[0]]; // create an array of pointers to arrays of pointers
    for (int i = 0; i < dims[0]; i++) {
        nestedArray[i] = new int*[dims[1]]; // create an array of pointers to arrays for each of the pointers in the first level
        for (int j = 0; j < dims[1]; j++) {
            nestedArray[i][j] = arr + (i * dims[1] * dims[2]) + (j * dims[2]); // assign each pointer to the appropriate element in the one-dimensional array
        }
    }


    В этом примере мы сначала создаем одномерный массив с общим количеством элементов во вложенных массивах. Затем мы создаем массив указателей на массивы указателей и присваиваем каждому указателю соответствующий элемент в одномерном массиве. Вы можете продолжить вложение массивов, соответствующим образом изменив массив измерений и указатели. Обратите внимание, что вам нужно использовать оператор удаления, чтобы освободить память, выделенную с помощью new.
    Ответ написан
    Комментировать
  • Как создавать массивы с неограниченной вложенностью в c++?

    Adamos
    @Adamos
    "Такой массив" - это у которого третий член не того типа, как два первых? Вы какой-то не тот язык взяли под эту задачу.
    Впрочем, если не пытаться воспроизвести то, что вы нарисовали, а просто строить дерево, то, например, так:
    struct structName {
      std::string title;
      std::vector< structName > children;
    }
    Ответ написан
    Комментировать
  • Как правильно подключать файлы?

    @rPman
    #pragma once
    в начале файла предотвращает его повторную загрузку

    В c и c++ принято разделять описание своих типов и классов на заголовочный файл .h и собственно код .cpp
    Заголовочные файлы подключаешь с помощью #include "xxx.h", а вот файлы cpp компилируются отдельно в .o (.obj для майкрософтовского компилятора) объектные файлы и из этих объектных файлов линкер собирает итоговый exe-шник

    Все среды разработки делают сборку автоматически из твоих .cpp файлов, вызывая для каждого компилятор только когда они изменились и автоматически отслеживают взаимозависимости .h файлов (т.е. если два из 100 твоих файлов подключили xxx.h то при его измении будет пересобраны только эти два файла). Вручную эти зависимости описываются с помощью выбранной системы сборки, например make, там указываешь какой cpp файл от каких .h файлов зависит

    p.s. формально ты можешь подключить напрямую .cpp файл, препроцессор вообще их не различает, но из-за взаимозависимостей тебе будет сложно это делать
    Ответ написан
    Комментировать
  • Почему сравнение всегда ложно?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    А сделайте так:
    $groups = [
        "power-group" => ["pump", "abs-bums", "super-strong", "fitball", "fit-cross", "body-sculpt", "lab", "hell-scretch", "witch-ball", "body-pump", "abs"],
        "static-group" => ["mfr", "healthy-back", "pilates", "twine-school", "yoga", "open-day", "lfk-50", "yoga-in-gamake", "interval"],
        "aerobics-group" => ["joint-gymnastics", "press-stretch", "abs-stretch", "joint-gymnastics-stretch", "abl", "make-body", "mobility", "stretch"],
        "dance-group" => ["latina", "tabata", "aerobics", "fitness-dance", "latina-start", "latina-pro"]
    ];
    
    $group = NULL;
    foreach($groups as $key => $value)
    {
        for($i = 0; $i < count($value); $i++)
        {
            echo $value[$i] . " =? " . rawurlencode($trainings[1]) . '<br />';
            if($value[$i] == $trainings[1])
            {
                $group = "sport";
                break;
            }
        }
        if (!is_null($group))
        {
            break;
        }
    }
    Ответ написан
    2 комментария