• Как сделать сумму прописью в Таблицах?

    krimtsev
    @krimtsev Автор вопроса
    Нашел. Необходимо самому открыть "Инструменты -> Редактор скриптов" и добавить скрипт.
    Дальше в необходимом нам месте указацить функцию =number_to_string(номер ячейки).

    Рабочий код так же прикрепляю под спойлером.

    spoiler
    function number_to_string(_number) {
            var _arr_numbers = new Array();
            _arr_numbers[1] = new Array('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
            _arr_numbers[2] = new Array('', '', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
            _arr_numbers[3] = new Array('', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот');
            function number_parser(_num, _desc) {
                    var _string = '';
                    var _num_hundred = '';
                    if (_num.length == 3) {
                            _num_hundred = _num.substr(0, 1);
                            _num = _num.substr(1, 3);
                            _string = _arr_numbers[3][_num_hundred] + ' ';
                    }
                    if (_num < 20) _string += _arr_numbers[1][parseFloat(_num)] + ' ';
                    else {
                            var _first_num = _num.substr(0, 1);
                            var _second_num = _num.substr(1, 2);
                            _string += _arr_numbers[2][_first_num] + ' ' + _arr_numbers[1][_second_num] + ' ';
                    }              
                    switch (_desc){
                            case 0:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'рубль';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'рубля';
                                    else _string += 'рублей';
                                    break;
                            case 1:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'тысяча ';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'тысячи ';
                                    else _string += 'тысяч ';
                                    _string = _string.replace('один ', 'одна ');
                                    _string = _string.replace('два ', 'две ');
                                    break;
                            case 2:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'миллион ';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'миллиона ';
                                    else _string += 'миллионов ';
                                    break;
                            case 3:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'миллиард ';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'миллиарда ';
                                    else _string += 'миллиардов ';
                                    break;
                    }
                    _string = _string.replace('  ', ' ');
                    return _string;
            }
            function decimals_parser(_num) {
                    var _first_num = _num.substr(0, 1);
                    var _second_num = parseFloat(_num.substr(1, 2));
                    var _string = ' ' + _first_num + _second_num;
                    if (_second_num == 1) _string += ' копейка';
                    else if (_second_num > 1 && _second_num < 5) _string += ' копейки';
                    else _string += ' копеек';
                    return _string;
            }
            if (!_number || _number == 0) return false;
            if (typeof _number !== 'number') {
                    _number = _number.replace(',', '.');
                    _number = parseFloat(_number);
                    if (isNaN(_number)) return false;
            }
            _number = _number.toFixed(2);
            if(_number.indexOf('.') != -1) {
                    var _number_arr = _number.split('.');
                    var _number = _number_arr[0];
                    var _number_decimals = _number_arr[1];
            }
            var _number_length = _number.length;
            var _string = '';
            var _num_parser = '';
            var _count = 0;
            for (var _p = (_number_length - 1); _p >= 0; _p--) {
                    var _num_digit = _number.substr(_p, 1);
                    _num_parser = _num_digit +  _num_parser;
                    if ((_num_parser.length == 3 || _p == 0) && !isNaN(parseFloat(_num_parser))) {
                            _string = number_parser(_num_parser, _count) + _string;
                            _num_parser = '';
                            _count++;
                    }
            }
            if (_number_decimals) _string += decimals_parser(_number_decimals);
            return _string;
    }
    Ответ написан
    8 комментариев
  • Как текст преобразовать в аудио и наложить на видео (на сервере)?

    danial72
    @danial72
    flutter dart.
    https://m.habr.com/ru/post/60977/
    belursus.info/soft/i.php?c=ffmpeg
    Все это обмазываем php. Все у себя на сервере без внешних сервисов.
    Ответ написан
    Комментировать
  • С помощью какого железа и софта можно рестримить стрим с youtube?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Софт: Streamlink + VLC + OBS Studio.
    Железо: AMD FX или Ryzen, Core i5+ для десктопов/Core i7 для ноутбуков, видеокарты не проканают. Nvidia обещает хорошее кодирование на RTX видяхах и они сотрудничают с OBS над этим, но пока не готово насколько я знаю.
    Ответ написан
    5 комментариев
  • Как на сайте при регистрации отсеивать не существующие emailы?

    @devlocal
    Элементарно. отправлять код подтверждения на почту, после ввода которого при регистрации полностью регистрировать пользователя. Или регистрировать пользователя и отправлять код на почту и пока не введет в своем кабинете этот код, функции будут ограниченны, а если по истечению какого то периода не подтвердили то вообще удалять аккаунт. По моему вариантов куча. Такое чувство что вы ни разу ни где не проходили регистрацию на сайтах
    Ответ написан
    Комментировать
  • Как на сайте при регистрации отсеивать не существующие emailы?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Не регистрировать пользователя без линка подтверждения, который отправляется на E-Mail сразу после ввода E-mail адреса.
    После перехода по линку (и подтверждения со стороны сервера его корректности), уже просим ввести доп. поля: username и пароль.
    Пока нет подтверждения почты - нельзя занять себе желаемый username.
    Также, можно сделать наоборот: отправку e-mail на сайт с клиента почты через "mailto:".
    Ответ написан
    Комментировать
  • Как на сайте при регистрации отсеивать не существующие emailы?

    RomaZveR
    @RomaZveR
    CEO AlertMoney, PHP/Golang Developer
    Через SMTP проверять существование ящика, команда HELO если не ошибаюсь. В гугле/гитхабе есть примеры
    Ответ написан
    3 комментария
  • Как на сайте при регистрации отсеивать не существующие emailы?

    @Ariurn
    1) Проверка с помощью регулярки (чтобы не писали абракадабру):
    function validateEMAIL($EMAIL) {
    $v = "/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";
    return (bool)preg_match($v, $EMAIL);
    }

    2) Проверить наличие MX-записи в домене (гарантия того, что такой домен существует и обрабатывает поступающие почтовые запросы):
    if (!checkdnsrr($domain, 'MX')) {
    // domain is not valid
    }

    Но учтите, что всё это не является достаточным условием того, что такой e-mail существует на данном домене.
    Ответ написан
    5 комментариев
  • Есть ли базы с максимальной разрешенным скоростным режимом?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Боюсь, что единой для "любой точки мира" не существует в принципе, даже однозначно не бесплатной. А уж в России, скоростной режим устанавливается через ж. и кто во что горазд, не говорю уже об геобазах, да ещё открытых.
    Ответ написан
    Комментировать
  • Как реализовать поиск по аудио за линейное время?

    @SilentFl
    Если под "поиском по аудио" подразумевается поиск по тегам - то все очень просто, предварительно строите базу с тегами.
    Если подразумевается поиск трека по имеющемуся отрывку - то смотрите как это делает, например, shazam. Строите базу с пооконными хешами своих треков, и когда нужно поискать по отрывку - также вычисляете пооконные хеши и ищете их в базе.
    Описание алгоритма можно посмотреть тут или тут
    Ответ написан
    Комментировать
  • Как определить скорость автомобиля который тебя обогнал?

    @nirvimel
    1. Выбрать из всего видео два кадра между которыми замеряется скорость, автомобиль на этих кадрах должен находиться как можно ближе (чтобы легче замерить расстояние до него), но между сами кадрами расстояние должно быть побольше (чтобы снизить погрешность измерения).
    2. Определить расстояние до автомобиля на каждом из двух кадров (без этого никак, увы). Для этого можно фотографировать похожий по габаритам автомобиль с того же ракурса, пока его положение на снимке в точности не совпадет с положением измеряемого автомобиля в кадре с регистратора, потом точно замерить расстояние до какой-нибудь точки (ближнего колеса, например).
    3. Определить угол под которым автомобиль находится к вашей оси движения и центру кадра регистратора (надеюсь, они совпадают) в каждом кадре. Для этого также как и в (2) можно двигать и фотографировать похожий по габаритам автомобиль.
    4. Зная расстояние и угол на двух различных кадрах, строится треугольник и находится его неизвестная сторона (если известны две других стороны и углы к ним).
    5. Зная частоту кадров, рассчитывается время между двумя кадрами (желательно чтобы было побольше, но не так, чтобы на втором кадре автомобиль был уже слишком далеко).
    6. Расстояние делится на время, получается скорость. Это скорость обгона, абсолютную скорость можно получить прибавив скорость собственную.
    Ответ написан
    Комментировать
  • Как определить скорость автомобиля который тебя обогнал?

    @Fixid
    Самый простой базовый вариант, как в камерах на дорогах:
    1 Размер номерного знака в России в 99% стандартен
    2 При обгоне делается серия снимков
    3 Сравнивается измерение размера номерного знака
    4 Хитрой математикой вычисляется скорость (поищу теорию вечерком)
    Ответ написан
    Комментировать
  • Как определить скорость автомобиля который тебя обогнал?

    alsopub
    @alsopub
    Можно попробовать посчитать посчитать динамику изменения какого-нибудь линейного размера автомобиля - например гос. номера или лучше расстояния между фарами. Так сходу, конечно, формулу не приведу, но вроде должно быть вычислимо.
    Ответ написан
    Комментировать
  • Как определить скорость автомобиля который тебя обогнал?

    GavriKos
    @GavriKos
    Прикидываете расстояние по обстановке, средней длине машины и прочему. Время у вас есть - из видео. Получаете относительную скорость, а из нее - абсолютную.
    Ответ написан
    2 комментария
  • Какая мак ось нужна для программировании на swift?

    tikhonov666
    @tikhonov666
    iOS, Swift, Objective-C
    Советую в первую очередь смотреть на наличие ssd, только потом на процессор и на оперативку. Версия OS X не принципиальна, можешь на yosemite сидеть, можешь на el capitan, можешь на sierra.
    Ответ написан
    Комментировать
  • Как вставить мета данные от глонас в фото?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Нет никаких данных GPS, GLONASS и прочих GNSS в фотографии. Там лишь географические координаты и высота в системе WGS84. Просто их в народе называют по имени первой системы GPS. Так же как все копировальные аппараты называют "ксероксами".
    Ответ написан
    Комментировать
  • Как создать видеохостинг?

    @dmtrrr
    Backend developer
    Недорого не получится, видео это много места на дисках и много траффика.
    Ответ написан
    Комментировать
  • Могут ли разбанить разработчика Google Play?

    @Albert309
    Регайся через дедик амазоновский и будет тебе счастье)
    Ответ написан
    Комментировать