Вопрос про сложение переменных в Zennoposter

ivanwork1

Новичок
Регистрация
24.05.2016
Сообщения
9
Благодарностей
0
Баллы
1
Добрый день! У меня возник такой вопрос

Есть список в котором есть переменные
124,00
827,00
73,01
84,1

Мне нужно их все сложить
124,00+827,00+73,01+84,1=

Как это можно сделать в ZennoPoster?
 

Sobesednic

Client
Регистрация
24.12.2012
Сообщения
391
Благодарностей
77
Баллы
28

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 955
Благодарностей
781
Баллы
113
попробуйте такой кусок кода вставить в кубик си
C#:
int count = project.Lists["Ваш список"].Count;
var yorlist = project.Lists["Ваш список"];
double result=0;
for(int i=0; i<count; i++)
{
result+=convert.ToDouble(yourlist[i]);
}
return result;
вместо "Ваш список" - пишите название вашего списка с числами
записывайте результат в свою переменную в кубике, а потом используйте дальше
 
  • Спасибо
Реакции: Alina и ivanwork1

Mahno

Client
Регистрация
16.05.2015
Сообщения
440
Благодарностей
94
Баллы
28
джаваскриптом самое простое
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Объединить элементы списка через плюс и полученную переменную вставить в шаг Свой код - JavaScript. В результирующую переменную получите результат сложения всех переменных.
 

vlsdrmy

Client
Регистрация
20.12.2015
Сообщения
25
Благодарностей
1
Баллы
3
Подскажите как можно сложить числовые значения двух переменных, но не через JavaScript, а на C# ?
project.Variables["chislo2"].Value+project.Variables["chislo2"].Value
В шаблоне отключено использование браузера, и не хочется включать его только ради одного математического вычисления на JavaScript-е. Поэтому хочется сделать это на C#
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Подскажите как можно сложить числовые значения двух переменных, но не через JavaScript, а на C# ?
project.Variables["chislo2"].Value+project.Variables["chislo2"].Value
В шаблоне отключено использование браузера, и не хочется включать его только ради одного математического вычисления на JavaScript-е. Поэтому хочется сделать это на C#
Код:
var ch1 = Convert.ToInt32(project.Variables["var1"].Value);
var ch2 = Convert.ToInt32(project.Variables["var2"].Value);
var res = ch1+ch2;
return res;
 
  • Спасибо
Реакции: vlsdrmy

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
А как умножить числа с плавающей запятой? например 0.25 * 0.5

  1. var ch1 = Convert.ToDouble(project.Variables["var1"].Value);
  2. var ch2 = Convert.ToDouble(project.Variables["var2"].Value);
  3. var res = ch1*ch2;
  4. return res;
Ничего не выдает
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
А как умножить числа с плавающей запятой? например 0.25 * 0.5

  1. var ch1 = Convert.ToDouble(project.Variables["var1"].Value);
  2. var ch2 = Convert.ToDouble(project.Variables["var2"].Value);
  3. var res = ch1*ch2;
  4. return res;
Ничего не выдает
Числа в переменных через точку? Попробуйте через запятую 0,25 * 0,5
или можно добавить
Код:
//изменение языка и региональных параметров текущего потока
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Будет работать с точкой.
 
Последнее редактирование:

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
  • //изменение языка и региональных параметров текущего потока
  • System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Сделал так
using System;
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
var ch1 = Convert.ToDouble(project.Variables["var1"].Value);
var ch2 = Convert.ToDouble(project.Variables["var2"].Value);
var res = ch1+ch2;
return res;
Не работает((
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
using System; в зеннопостер добавлен по умолчанию.
Если код просто :
Код:
    var ch1 = Convert.ToDouble(project.Variables["var1"].Value);
    var ch2 = Convert.ToDouble(project.Variables["var2"].Value);
    var res = ch1*ch2;
    return res;
В переменной должны быть числа через запятую. (В зависимости от региональных параметров)
Если код :
Код:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
var ch1 = Convert.ToDouble(project.Variables["var1"].Value);
var ch2 = Convert.ToDouble(project.Variables["var2"].Value);
var res = ch1*ch2;
return res;
то через точку. https://yadi.sk/i/3gFQZr293SAnfE

Здесь решение и с точкой и с запятой http://zennolab.com/discussion/threads/kak-realizovat-umnozhenie-i-zapis-v-peremennuju-proekta.28751/
 

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
using System; в зеннопостер добавлен по умолчанию.
Если код просто :
Код:
    var ch1 = Convert.ToDouble(project.Variables["var1"].Value);
    var ch2 = Convert.ToDouble(project.Variables["var2"].Value);
    var res = ch1*ch2;
    return res;
В переменной должны быть числа через запятую. (В зависимости от региональных параметров)
Если код :
Код:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
var ch1 = Convert.ToDouble(project.Variables["var1"].Value);
var ch2 = Convert.ToDouble(project.Variables["var2"].Value);
var res = ch1*ch2;
return res;
то через точку. https://yadi.sk/i/3gFQZr293SAnfE

Здесь решение и с точкой и с запятой http://zennolab.com/discussion/threads/kak-realizovat-umnozhenie-i-zapis-v-peremennuju-proekta.28751/
С запятой работает. С точкой не хочет.
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); не помогает
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113

Craftsman

Client
Регистрация
30.12.2015
Сообщения
61
Благодарностей
4
Баллы
8
Подскажите можно ли результаты парсинга кубика Json, после того как значения разложились по переменным сложить все вместе в строку через запятую.
Т.е. например после парсинга получилось так:
[0]1010331347
[1]1010331348
[2]1010331349
[3]1010331350
[TBODY] [/TBODY]
Теперь нужно сделать так: 1010331347,1010331348,1010331349,1010331350 и положить все в одну переменную.
 

ERR

Client
Регистрация
29.10.2015
Сообщения
34
Благодарностей
4
Баллы
8
Подскажите можно ли результаты парсинга кубика Json, после того как значения разложились по переменным сложить все вместе в строку через запятую.
Т.е. например после парсинга получилось так:
[0]1010331347
[1]1010331348
[2]1010331349
[3]1010331350
[TBODY] [/TBODY]
Теперь нужно сделать так: 1010331347,1010331348,1010331349,1010331350 и положить все в одну переменную.
Парсить в список, из списка объединить в переменную со своим знаком разделителя.
 

gnomza75

Client
Регистрация
17.08.2015
Сообщения
146
Благодарностей
29
Баллы
28
можете подсказать, как мне обьединить в одну переменную строковые значения на C#

задача стоит такая: нужно в яндекс транслейт отправлять текст, там стоит огроничение в 10000 символов.
у меня логика проэкта проста, беру из файла строку в переменную считаю количество символов, и if проверяет значение счетчика.

сейчас столкнулся с тем, что при следующем взятии в цикле строки в переменную, она перезаписывается.
а нужно не перезаписывать а добавлять строку к той же добавленной ранее строке в ту же переменную.

помогите кто знает
спасибо
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
C#:
string text = "text";
text = text + " text";
//результат будет - text text
Если я правильно понял.
 
  • Спасибо
Реакции: gnomza75

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
можете подсказать, как мне обьединить в одну переменную строковые значения на C#

задача стоит такая: нужно в яндекс транслейт отправлять текст, там стоит огроничение в 10000 символов.
у меня логика проэкта проста, беру из файла строку в переменную считаю количество символов, и if проверяет значение счетчика.

сейчас столкнулся с тем, что при следующем взятии в цикле строки в переменную, она перезаписывается.
а нужно не перезаписывать а добавлять строку к той же добавленной ранее строке в ту же переменную.

помогите кто знает
спасибо
Можно добавлять порции текста не в переменную, а в список, в результате у вас получится многострочный список с блоками текста по ~10.000,
потом просто объедините список в переменную и получите сплошной массив полного текста в переменной.
 
  • Спасибо
Реакции: gnomza75

gnomza75

Client
Регистрация
17.08.2015
Сообщения
146
Благодарностей
29
Баллы
28
Можно добавлять порции текста не в переменную, а в список, в результате у вас получится многострочный список с блоками текста по ~10.000,
потом просто объедините список в переменную и получите сплошной массив полного текста в переменной.
помогло спасибо, аж яндекс транслит капчу через 5 минут начал выплевывать :bt:

а не подсажете пожалуйста решение по регулярке, чтоб строки короче 6-7 слов удалять из списка, я в ветке с регулярками искал, не нашел.
и еще случайно не знаете, как убрать из текстовки такие мерзкие символы - вопросик в черном ромбике. нотепад не хочет ни в какую от них избавляться

премного благодарен за помощь:bt:
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
помогло спасибо, аж яндекс транслит капчу через 5 минут начал выплевывать :bt:

а не подсажете пожалуйста решение по регулярке, чтоб строки короче 6-7 слов удалять из списка, я в ветке с регулярками искал, не нашел.
и еще случайно не знаете, как убрать из текстовки такие мерзкие символы - вопросик в черном ромбике. нотепад не хочет ни в какую от них избавляться

премного благодарен за помощь:bt:
Как вариант можно обойтись без регулярки.
В цикле с наращиваемым счетчиком (номер строки) брать строку, добавлять ее в список с разделителем {-String.Space-} и потом подсчитывать кол-во строк (слов)
в этом списке, далее с помощью IF проверять кол-во строк и в результате записывать строку обратно, либо не записывать, если кол-во строк в списке (соотв. кол-слов) менее 6.

То есть должен получиться такой алгоритм:

- берем строку,
- помещаем ее в список с разделителем в виде пробела,
- считаем кол-во строк,
- добавляем строку назад в конец исх. списка, либо выбрасываем, по результам проверки IF,
- возвращаемся в начало цикла.

По поводу отфильтровывания левых символов, можно с помощью регулярки и экшена Обработка текста - Замена (Regex) - Заменить на пустоту:
Код:
[^A-Za-zА-Яа-яЁё0-9\ \.!\?:;]+
То есть в регулярке перечисляем символы, которые нужно оставить, остальные символы будут удалены.
 
Последнее редактирование:
  • Спасибо
Реакции: gnomza75

irving zisman

Client
Регистрация
18.05.2017
Сообщения
225
Благодарностей
28
Баллы
28
попробуйте такой кусок кода вставить в кубик си
C#:
int count = project.Lists["Ваш список"].Count;
var yorlist = project.Lists["Ваш список"];
double result=0;
for(int i=0; i<count; i++)
{
result+=convert.ToDouble(yourlist[i]);
}
return result;
вместо "Ваш список" - пишите название вашего списка с числами
записывайте результат в свою переменную в кубике, а потом используйте дальше

Пару ошибок в коде, Convert с большой буквы, и пропущена буква во второй строке. Поправил:

Код:
int count = project.Lists["Ваш список"].Count;
var yourlist = project.Lists["Ваш список"];
double result=0;
for(int i=0; i<count; i++)
{
result+=Convert.ToDouble(yourlist[i]);
}
return result;
 
  • Спасибо
Реакции: Mike и Alina

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)