Как на C# установить значение переменной 0

Miner

Client
Регистрация
30.04.2015
Сообщения
67
Благодарностей
10
Баллы
8
Как на C# установить значение переменной то есть заменить кодом вот этот кубик http://joxi.ru/Vrwl41Rh9wy6mX ,и желательно еще бы код увеличения переменной на 1.
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
847
Благодарностей
527
Баллы
93
Для того, чтобы установить значение переменной в С# кубике - она уже должна быть объявлена в проэкте. Потом еq можно присвоить значение так:
project.Variables["a"].Value = "0";
Но.. есть нюансы, которые зависят от типа переменных.
Все project.Variables - по умолчанию типа String, по этому можно делать и так:
project.Variables["а"].Value = Convert.ToString(0);
т.е. нужно конвертировать переменные в тип String
 

Miner

Client
Регистрация
30.04.2015
Сообщения
67
Благодарностей
10
Баллы
8
Спасибо,а как мне теперь прописать еще что бы добавляло +1 при прохождении цикла??
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
847
Благодарностей
527
Баллы
93
int x = Convert.ToInt32(project.Variables["a"].Value);
x = x + 1;
project.Variables["a"].Value = Convert.ToString(x);
 

Miner

Client
Регистрация
30.04.2015
Сообщения
67
Благодарностей
10
Баллы
8
Круто спасибо
 
  • Спасибо
Реакции: evgen_po

toptop

Пользователь
Регистрация
01.10.2015
Сообщения
57
Благодарностей
1
Баллы
6
@evgen_po можете подробнее рассказать про конвертацию, а то написано "Все project.Variables - по умолчанию типа String", "т.е. нужно конвертировать переменные в тип String". Не понимаю зачем их конвертировать в стринг если они уже по умолчанию стринг. Можете объяснить чуть более подробнее с конвертацией..
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 703
Баллы
113
@evgen_po можете подробнее рассказать про конвертацию, а то написано "Все project.Variables - по умолчанию типа String", "т.е. нужно конвертировать переменные в тип String". Не понимаю зачем их конвертировать в стринг если они уже по умолчанию стринг. Можете объяснить чуть более подробнее с конвертацией..
он конвертит int x в string а не переменную.
 
  • Спасибо
Реакции: toptop

evgen_po

Client
Регистрация
27.08.2013
Сообщения
847
Благодарностей
527
Баллы
93
@evgen_po можете подробнее рассказать про конвертацию, а то написано "Все project.Variables - по умолчанию типа String", "т.е. нужно конвертировать переменные в тип String". Не понимаю зачем их конвертировать в стринг если они уже по умолчанию стринг. Можете объяснить чуть более подробнее с конвертацией..
Допустим Вам нужно в кубике С# произвести какие-либо вычислительные действия. Например прибавить к переменной проекта единицу. Как здесь:

int x = Convert.ToInt32(project.Variables["a"].Value);
x = x + 1;
project.Variables["a"].Value = Convert.ToString(x);

Поскольку переменная проекта "а" это тип string, а с типом string нельзя произвести операции сложения, мы конвертируем переменную в тип Int32.
Тогда уже для типа int у нас появится возможность сложения, как в примере выше. Плюс, для каждого типа переменных существуют свои специфические методы, которые можно использовать после приведения переменной к правильному типу.
Допустим, если Вам в кубике C# нужно произвести действия с датами - сравнить какая из них более поздняя, то - нужно предварительно конвертировать переменную проекта (допустим она содержит значение 06.10.2015 10:46:04) в тип DateTime, для того чтобы через if можно было произвести сравнение дат.
Т.е. DateTime time = Convert.ToDateTime(project.Variables["date"].Value);

Обратите внимание, еще раз на код выше.
Последней строчкой, там присваивается значение переменной проекта "a", но поскольку переменная x - у нас типа int, перед тем как присваивать ее значение переменной проекта, ее нужно было конвертировать в тип string.
 
Последнее редактирование:

toptop

Пользователь
Регистрация
01.10.2015
Сообщения
57
Благодарностей
1
Баллы
6
прочитал раза 5 и вроде бы понял.
project.Variables - это string значение - это "формат" текст

если нам надо сравнивать числа, то когда мы берем значение из project.Variables нам надо переконвертировать значение в int - это "формат" чисел

а если мы сравнили числа, то потом int надо перевести в string потому что в project.Variables можно добавлять только string. А потом если нам надо будет делать какие-то операции с этим числом мы опять берем его из project.Variables и конвертируем в int делаем действия и когда кладем опять в string конвертируем.

правильно же? :bw:
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 703
Баллы
113
прочитал раза 5 и вроде бы понял.
project.Variables - это string значение - это "формат" текст

если нам надо сравнивать числа, то когда мы берем значение из project.Variables нам надо переконвертировать значение в int - это "формат" чисел

а если мы сравнили числа, то потом int надо перевести в string потому что в project.Variables можно добавлять только string. А потом если нам надо будет делать какие-то операции с этим числом мы опять берем его из project.Variables и конвертируем в int делаем действия и когда кладем опять в string конвертируем.

правильно же? :bw:
да
 
  • Спасибо
Реакции: toptop

toptop

Пользователь
Регистрация
01.10.2015
Сообщения
57
Благодарностей
1
Баллы
6
А что будем работать быстрее
Если создать экшн С# с кодом project.Variables["а"].Value = Convert.ToString(0);
или
Поставить значение для переменной "а" в панельке с переменными по умолчанию 0

может вопрос не очень важный, зато очень интересно знать что работает быстрее
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 703
Баллы
113
вы слишком усложняете. вообще не принципиально. хоть кубиком обычным.
 

mrakolis

Client
Регистрация
22.09.2016
Сообщения
106
Благодарностей
3
Баллы
18
нужно чтобы переменная A была равна B=D (B и D тоже переменные) в кубик стандартный я бы вставил {-Variable.B-}={-Variable.D-}
project.Variables["A"].Value=project.Variables["B"].Value=project.Variables["D"].Value;
а вот корявая попытка сделать в сишарпе тоже самое (неработает и пока непойму как их разделять в коде и что ему надо) :D
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
213
Баллы
43
нужно чтобы переменная A была равна B=D (B и D тоже переменные) в кубик стандартный я бы вставил {-Variable.B-}={-Variable.D-}
project.Variables["A"].Value=project.Variables["B"].Value=project.Variables["D"].Value;
а вот корявая попытка сделать в сишарпе тоже самое (неработает и пока непойму как их разделять в коде и что ему надо) :D
не бывает значения B=D, бывают значения B и D, определись какое значение должно быть у А и присвой его
то, что ты пытаешься делать, не поддается никакой логике )
или тебе нужен результат сравнения B и D?
 

mrakolis

Client
Регистрация
22.09.2016
Сообщения
106
Благодарностей
3
Баллы
18
мне нужно чтобы между переменными B и D было равно
и это было нужным значением (новой переменной)
тоесть B=D (значение переменной A)
 

mrakolis

Client
Регистрация
22.09.2016
Сообщения
106
Благодарностей
3
Баллы
18
допустив B имеет значение Gav
D имеет значение 505
и нам нужно чтобы A имело значение Gav=505
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
849
Баллы
93
  • Спасибо
Реакции: mrakolis

evgen_po

Client
Регистрация
27.08.2013
Сообщения
847
Благодарностей
527
Баллы
93
  • Спасибо
Реакции: mrakolis

mrakolis

Client
Регистрация
22.09.2016
Сообщения
106
Благодарностей
3
Баллы
18
Спасибо!!!
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
312
Баллы
83
Подскажите пожалуйста, а как значение поставить на end в C# такое возможно вообще? или только прибавляя
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
312
Баллы
83
Более подробно, через майлкит хочу удалить, самое первое приходящее сообщение, по совпадению он выходит самым последным. Как в С# прописать правильно в этом коде .


Код:
string login = project.Variables["emailerecive"].Value;
string password = project.Variables["emailrecivepass"].Value;
string server = "imap.mail.ru";
string port = "993";
try
{
    using(var client = new ImapClient())
    {
        client.ServerCertificateValidationCallback = (s, c, h, e) => true;
        client.Connect(server, int.Parse(port), true);
        client.Authenticate(login, password);
       
        var inbox = client.Inbox;
        inbox.Open(FolderAccess.ReadWrite);
        for (int i = 1; i < inbox.Count; i++)
        {
            var msg = inbox.GetMessage(i).Subject;
            inbox.AddFlags(i, MessageFlags.Deleted, false);
            project.SendInfoToLog((i+1) + "/" + inbox.Count + "  " + msg, true);
        }
        client.Inbox.Expunge();
        client.Disconnect(true);
    }
}
catch (Exception e)
{
    return e.Message;
}
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Более подробно, через майлкит хочу удалить, самое первое приходящее сообщение, по совпадению он выходит самым последным. Как в С# прописать правильно в этом коде .


Код:
string login = project.Variables["emailerecive"].Value;
string password = project.Variables["emailrecivepass"].Value;
string server = "imap.mail.ru";
string port = "993";
try
{
    using(var client = new ImapClient())
    {
        client.ServerCertificateValidationCallback = (s, c, h, e) => true;
        client.Connect(server, int.Parse(port), true);
        client.Authenticate(login, password);
      
        var inbox = client.Inbox;
        inbox.Open(FolderAccess.ReadWrite);
        for (int i = 1; i < inbox.Count; i++)
        {
            var msg = inbox.GetMessage(i).Subject;
            inbox.AddFlags(i, MessageFlags.Deleted, false);
            project.SendInfoToLog((i+1) + "/" + inbox.Count + "  " + msg, true);
        }
        client.Inbox.Expunge();
        client.Disconnect(true);
    }
}
catch (Exception e)
{
    return e.Message;
}
https://zennolab.com/discussion/search/17037065/?q=mailkit&o=date
 

artur23

Client
Регистрация
14.04.2014
Сообщения
205
Благодарностей
15
Баллы
18
Подскажите, плиз, нужно создать новые переменные из текста - как это сделать? Код ниже не проходит...

C#:
// Текст для обработки
string text = project.ExecuteMacro(project.Variables["stroke"].Value);
// Обработка текста "В переменную"
project.Variables["project.Variables["stroke"].Value"].Value = text;
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 628
Благодарностей
1 303
Баллы
113
Подскажите, плиз, нужно создать новые переменные из текста - как это сделать? Код ниже не проходит...

C#:
// Текст для обработки
string text = project.ExecuteMacro(project.Variables["stroke"].Value);
// Обработка текста "В переменную"
project.Variables["project.Variables["stroke"].Value"].Value = text;

C#:
// Текст для обработки
string text = project.ExecuteMacro(project.Variables["stroke"].Value);
// Обработка текста "В переменную"
project.Variables["stroke"].Value = text;
 
  • Спасибо
Реакции: irr и artur23

artur23

Client
Регистрация
14.04.2014
Сообщения
205
Благодарностей
15
Баллы
18
C#:
// Текст для обработки
string text = project.ExecuteMacro(project.Variables["stroke"].Value);
// Обработка текста "В переменную"
project.Variables["stroke"].Value = text;
Да, код сработал, но что произошло? Мне нужно создать новую переменуую из текста, а сама переменная не создалась почему-то?
 

artur23

Client
Регистрация
14.04.2014
Сообщения
205
Благодарностей
15
Баллы
18

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 628
Благодарностей
1 303
Баллы
113
Переменная сама не создастся, ее нужно самому создать, и вообще я не пойму что вы хотите? Кубик у вас на скрине делает следующее: берет из какой либо указанной переменной значение и присваивает это значение другой переменной которую вы укажите. Но в вашем случае, вы с переменной stroke берете ее значение и опять же присваиваете этой переменной, вопрос зачем такое делать? В чем смысл?
 
Последнее редактирование:

artur23

Client
Регистрация
14.04.2014
Сообщения
205
Благодарностей
15
Баллы
18
Переменная сама не создастся, ее нужно самому создать, и вообще я не пойму что вы хотите? Кубик у вас на скрине делает следующее: берет из какой либо указанной переменной значение и присваивает это значение другой переменной которую вы укажите. Но в вашем случае, вы с переменной stroke берете ее значение и опять же присваиваете этой переменной, вопрос зачем такое делать? В чем смысл?
мне нужно из списка взять по одной строке и создать переменную. Т.е. для каждой строки нужно через код создать переменную, а не самостоятельно ее создавать - это вообще возможно?
 

artur23

Client
Регистрация
14.04.2014
Сообщения
205
Благодарностей
15
Баллы
18
с названием текста строки = переменная с любым значением, можно нулевым
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113
мне нужно из списка взять по одной строке и создать переменную. Т.е. для каждой строки нужно через код создать переменную, а не самостоятельно ее создавать - это вообще возможно?
Используйте таблицу, либо меняйте логику.
 

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