Try using "Template" action and construct your text with hyerlinks than paste it to page.
Other option is to create simple LOCAL html page somewhere on your hard disk with
desired text and links, than open that local html page in another tab in BAS and than copy
from that tab to the tab where you are working.
Запятую в нули.
-
@cryotag said in Запятую в нули.:
@Fox только одна.
Переведите строку в число

и умножте полученное число на 1000

-
@Fox Хорошо, это понятно, но, как я писал ,самое главное, это выбор чисел с нулями строго в в соответствии от запятых, взять из переменной 1200, если была запятая, после первой цифры, взять 12300, если запятая была после второй цифры, т.е алгоритм такой взять в переменную число с запятой ,посмотреть на каком месте запятая,положить вдругую переменную число с нулями, в зависимости от положения запятой в первой переменной, визуально так: if 1,2 - 1200, if 12,3 -12300 ,if 123- 123000, нужен именно перебор этих комбинаций и выбор одного единственного числа с нулями на конце, строго в соответствии от положения запятой.
-
@cryotag said in Запятую в нули.:
@Fox Хорошо, это понятно, но, как я писал ,самое главное, это выбор чисел с нулями строго в в соответствии от запятых, взять из переменной 1200, если была запятая, после первой цифры, взять 12300, если запятая была после второй цифры, т.е алгоритм такой взять в переменную число с запятой ,посмотреть на каком месте запятая,положить вдругую переменную число с нулями, в зависимости от положения запятой в первой переменной, визуально так: if 1,2 - 1200, if 12,3 -12300 ,if 123- 123000, нужен именно перебор этих комбинаций и выбор одного единственного числа с нулями на конце, строго в соответствии от положения запятой.
Чегось? Три раза перечитал и всё равно не понял. Приведите список примеров входящих данных и результата, который вы хотите достичь
-
@Fox Попрубуем ещё:
IF [SAVE_TEXT]==(цифра запятая цифра) ,то * 1000 и положить в переменную [1]
ELSE
IF [SAVE_TEXT]==(цифра цифра запятая цифра) ,то * 1000 и положить в переменную [2]
ELSE
IF [SAVE_TEXT]==(цифра цифра цифра) ,то * 1000 и положить в переменную [3] -
@cryotag said in Запятую в нули.:
@Fox Попрубуем ещё:
IF [SAVE_TEXT]==(цифра запятая цифра) ,то * 1000 и положить в переменную [1]
ELSE
IF [SAVE_TEXT]==(цифра цифра запятая цифра) ,то * 1000 и положить в переменную [2]
ELSE
IF [SAVE_TEXT]==(цифра цифра цифра) ,то * 1000 и положить в переменную [3]Я попросил вас привести примеры настоящих данных, но то, что вы описали, можно решить с помощью регулярок
IF [SAVE_TEXT]==(\d,\d) ,то * 1000 и положить в переменную [1] ELSE IF [SAVE_TEXT]==(\d\d,\d) ,то * 1000 и положить в переменную [2] ELSE IF [SAVE_TEXT]==(\d\d\d) ,то * 1000 и положить в переменную [3] -
@cryotag,в BAS можно выполнять код в отдельном кубике.
// Этот код может не работать корректно, если в числе будет более одной запятой или если число будет слишком большим. /** * Функция processNumber принимает строку, содержащую число с запятой и возвращает число, умноженное на 1000 и без запятой. * @param {string} numberString - Строка с числом. * @returns {number} - Число, умноженное на 1000 и без запятой. */ function processNumber(numberString) { // Если в числе есть запятая, значит нужно добавить недостающие нули и удалить запятую. if (numberString.includes(',')) { // Определяем индекс запятой в строке. const commaIndex = numberString.indexOf(','); // Если запятая находится на втором месте, то нужно добавить 0 перед числом. if (commaIndex === 1) { numberString = '0' + numberString; } // Определяем количество знаков после запятой. const decimalPlaces = numberString.length - commaIndex - 1; // Вычисляем, сколько нулей нужно добавить в конец числа. const zerosToAdd = 3 - decimalPlaces; // Добавляем недостающие нули в конец числа. for (let i = 0; i < zerosToAdd; i++) { numberString += '0'; } // Удаляем запятую из числа. numberString = numberString.replace(',', ''); // Умножаем число на 1000 и возвращаем результат. const number = parseInt(numberString) * 1000; return number; } else { // Если запятой в числе нет, то нужно добавить три нуля в конец числа и вернуть результат. const number = parseInt(numberString + '000'); return number; } } -
@sergerdn said in Запятую в нули.:
@cryotag,в BAS можно выполнять код в отдельном кубике.
// Этот код может не работать корректно, если в числе будет более одной запятой или если число будет слишком большим. /** * Функция processNumber принимает строку, содержащую число с запятой и возвращает число, умноженное на 1000 и без запятой. * @param {string} numberString - Строка с числом. * @returns {number} - Число, умноженное на 1000 и без запятой. */ function processNumber(numberString) { // Если в числе есть запятая, значит нужно добавить недостающие нули и удалить запятую. if (numberString.includes(',')) { // Определяем индекс запятой в строке. const commaIndex = numberString.indexOf(','); // Если запятая находится на втором месте, то нужно добавить 0 перед числом. if (commaIndex === 1) { numberString = '0' + numberString; } // Определяем количество знаков после запятой. const decimalPlaces = numberString.length - commaIndex - 1; // Вычисляем, сколько нулей нужно добавить в конец числа. const zerosToAdd = 3 - decimalPlaces; // Добавляем недостающие нули в конец числа. for (let i = 0; i < zerosToAdd; i++) { numberString += '0'; } // Удаляем запятую из числа. numberString = numberString.replace(',', ''); // Умножаем число на 1000 и возвращаем результат. const number = parseInt(numberString) * 1000; return number; } else { // Если запятой в числе нет, то нужно добавить три нуля в конец числа и вернуть результат. const number = parseInt(numberString + '000'); return number; } }А вы проверяли его работу?
-
@Fox said in Запятую в нули.:
@sergerdn said in Запятую в нули.:
@cryotag,в BAS можно выполнять код в отдельном кубике.
// Этот код может не работать корректно, если в числе будет более одной запятой или если число будет слишком большим. /** * Функция processNumber принимает строку, содержащую число с запятой и возвращает число, умноженное на 1000 и без запятой. * @param {string} numberString - Строка с числом. * @returns {number} - Число, умноженное на 1000 и без запятой. */ function processNumber(numberString) { // Если в числе есть запятая, значит нужно добавить недостающие нули и удалить запятую. if (numberString.includes(',')) { // Определяем индекс запятой в строке. const commaIndex = numberString.indexOf(','); // Если запятая находится на втором месте, то нужно добавить 0 перед числом. if (commaIndex === 1) { numberString = '0' + numberString; } // Определяем количество знаков после запятой. const decimalPlaces = numberString.length - commaIndex - 1; // Вычисляем, сколько нулей нужно добавить в конец числа. const zerosToAdd = 3 - decimalPlaces; // Добавляем недостающие нули в конец числа. for (let i = 0; i < zerosToAdd; i++) { numberString += '0'; } // Удаляем запятую из числа. numberString = numberString.replace(',', ''); // Умножаем число на 1000 и возвращаем результат. const number = parseInt(numberString) * 1000; return number; } else { // Если запятой в числе нет, то нужно добавить три нуля в конец числа и вернуть результат. const number = parseInt(numberString + '000'); return number; } }А вы проверяли его работу?
Неа.
-
@sergerdn said in Запятую в нули.:
А вы проверяли его работу?
Неа.
Проверьте, возможно вас удивит результат
-
@cryotag said in Запятую в нули.:
@Fox IF [SAVE_TEXT]==(\d,\d) как в кубике действий написать? ошибку выдает. Заранее спвсибо за ответ.
Это регулярное выражение, используйте его в действии "Подходит ли строка под регулярное выражение"
-
@Fox said in Запятую в нули.:
@sergerdn said in Запятую в нули.:
А вы проверяли его работу?
Неа.
Проверьте, возможно вас удивит результат
Я обычно пишу скелет для функционала, потому пишу тест на функционал, а потом уже сам функционал.
Если топикастер дал бы примеры с пограничными вариантами, я бы набросал тест, а потом бы уже функцию и не допустил бы таких ошибок. Все делать самому - я поленился, набросал код не сильно вникая задачу.
