Сохранение через C# в глобальную переменную (можно сперва в локальную).

infinit

Client
Регистрация
02.04.2016
Сообщения
163
Благодарностей
13
Баллы
18
Есть код, который сохраняет все письма за последние 100 дней:

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;
// download all messages from gmail with auto settings detection for last 100 days.
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login, mail_pass, lastHours: 24*100);
// loop fo all messages
foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      List<string> tmp = new List<string>();
       tmp.Add(tuple.Item1);
       tmp.Add(tuple.Item2);
       tmp.Add(tuple.Item3);
       tmp.Add(tuple.Item4);
       project.Tables["Tabl1"].AddRow(tmp);
}
В конце он сохраняет эти письма в Таблицу Tabl1. Эта таблица создана и ведет к файлу на компьютере. Происходит достаточно долгий прогруз содержимого в таблицу и затем в текстовый файл на компьютере.

ВОПРОС: Как сохранить письма не в Tabl1, а в глобальную переменную проекта? Можно предварительно сохранить в локальную переменную кубика - а затем в глобальную переменную проекта. Подскажите пожалуйста, как это сделать кодом.
 
Последнее редактирование:

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
Есть код, который сохраняет все письма за последние 100 дней:

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;
// download all messages from gmail with auto settings detection for last 100 days.
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login, mail_pass, lastHours: 24*100);
// loop fo all messages
foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      List<string> tmp = new List<string>();
       tmp.Add(tuple.Item1);
       tmp.Add(tuple.Item2);
       tmp.Add(tuple.Item3);
       tmp.Add(tuple.Item4);
       project.Tables["Tabl1"].AddRow(tmp);
}
В конце он сохраняет эти письма в Таблицу Tabl1. Эта таблица создана и ведет к файлу на компьютере. Происходит достаточно долгий прогруз содержимого в таблицу и затем в текстовый файл на компьютере.

ВОПРОС: Как сохранить письма не в Tabl1, а в глобальную переменную проекта? Можно предварительно сохранить в локальную переменную кубика - а затем в глобальную переменную проекта. Подскажите пожалуйста, как это сделать кодом.
Код:
project.GlobalVariables.SetVariable("пространство", "имя_переменной", "значение");
 
  • Спасибо
Реакции: infinit

infinit

Client
Регистрация
02.04.2016
Сообщения
163
Благодарностей
13
Баллы
18
Заменил последнюю строку кода вот так.. не отрабатывает, ошибка...
В проекте уже есть глобальная переменная 'MAILS' - как корректно прописать значение кода с этой переменной?

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;

// download all messages from gmail with auto settings detection for last 100 days.
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login, mail_pass, lastHours: 1*1);
// loop fo all messages
foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      List<string> tmp = new List<string>();
       tmp.Add(tuple.Item1);
       tmp.Add(tuple.Item2);
       tmp.Add(tuple.Item3);
       tmp.Add(tuple.Item4);
       project.GlobalVariables.SetVariable["Tabl1", "emails"].AddRow(tmp);
           
}
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ты от кого шифруешься в скрытом разделе?
 

infinit

Client
Регистрация
02.04.2016
Сообщения
163
Благодарностей
13
Баллы
18
ты от кого шифруешься в скрытом разделе?
Да, собственно ни от кого, просто есть темы, которые бы не хотел выводить на общее обозрение поисковых запросов (она следующая).
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
Заменил последнюю строку кода вот так.. не отрабатывает, ошибка...
В проекте уже есть глобальная переменная 'MAILS' - как корректно прописать значение кода с этой переменной?

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;

// download all messages from gmail with auto settings detection for last 100 days.
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login, mail_pass, lastHours: 1*1);
// loop fo all messages
foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      List<string> tmp = new List<string>();
       tmp.Add(tuple.Item1);
       tmp.Add(tuple.Item2);
       tmp.Add(tuple.Item3);
       tmp.Add(tuple.Item4);
       project.GlobalVariables.SetVariable["Tabl1", "emails"].AddRow(tmp);
          
}
неправильно задаёте значение. Я же привёл вид, в котором оно должно работать. Это не таблица, что бы записывать туда строку. Это переменная и в неё нужно записывать нужное значение.
 
  • Спасибо
Реакции: infinit

infinit

Client
Регистрация
02.04.2016
Сообщения
163
Благодарностей
13
Баллы
18
неправильно задаёте значение. Я же привёл вид, в котором оно должно работать. Это не таблица, что бы записывать туда строку. Это переменная и в неё нужно записывать нужное значение.
А значение - это собственно говоря все письма, которые помещаются в Tabl1 (из кода №1). Как корректно прописать?
Спасибо Вам за вашу отзывчивость.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
А значение - это собственно говоря все письма, которые помещаются в Tabl1 (из кода №1). Как корректно прописать?
Спасибо Вам за вашу отзывчивость.
project.GlobalVariables.SetVariable["Tabl1", "emails", tmp];

Tabl1 - это пространство имён глобальной переменной
emails - это собственно имя этой переменой.
tmp - тут значение, которое добавляется.

Но обратите внимание, что у Вас там цикл. Т.е. с этим значением сначала нужно делать то, что Вам нужно, а потом уже идти на новый цикл.
 
  • Спасибо
Реакции: infinit

infinit

Client
Регистрация
02.04.2016
Сообщения
163
Благодарностей
13
Баллы
18
project.GlobalVariables.SetVariable["Tabl1", "emails", tmp];

Tabl1 - это пространство имён глобальной переменной
emails - это собственно имя этой переменой.
tmp - тут значение, которое добавляется.

Но обратите внимание, что у Вас там цикл. Т.е. с этим значением сначала нужно делать то, что Вам нужно, а потом уже идти на новый цикл.
При обработке старого кода у меня на выходе была таблица - я сохранял ее в список. Далее брал весь этот .txt файл и сохранял его в переменную EMAILS.


upload_2016-10-17_12-26-43.png


И дальше уже через регулярку искал то, что мне нужно.

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

P.S.: Приношу извинения, что тема снова в Скрытом разделе. Не был ознакомлен с целевым назначением. Думал это для любых тем от пользователей со статусом Client.
 
Последнее редактирование:

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
При обработке старого кода у меня на выходе была таблица - я сохранял ее в список. Далее брал весь этот .txt файл и сохранял его в переменную EMAILS.


Посмотреть вложение 16025

И дальше уже через регулярку искал то, что мне нужно.

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

Вам тут вообще не нужна эта глобальная переменная.

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;
// download all messages from gmail with auto settings detection for last 100 days.
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login, mail_pass, lastHours: 24*100);
var list = project.Lists["List"]; // создать в проекте список с этим именем

foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      list.Add(tuple.Item1+";"+tuple.Item2+";"+tuple.Item3+";"+tuple.Item4); // все данные записываются в список
}
После выполнения этого кода просто берёте по строчно данные из списка и обрабатываете их. Или же Операции над списком - Объеденить в переменную. И дальше работаете с переменной.
 
  • Спасибо
Реакции: Severip и infinit

infinit

Client
Регистрация
02.04.2016
Сообщения
163
Благодарностей
13
Баллы
18
Вам тут вообще не нужна эта глобальная переменная.

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;
// download all messages from gmail with auto settings detection for last 100 days.
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login, mail_pass, lastHours: 24*100);
var list = project.Lists["List"]; // создать в проекте список с этим именем

foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      list.Add(tuple.Item1+";"+tuple.Item2+";"+tuple.Item3+";"+tuple.Item4); // все данные записываются в список
}
После выполнения этого кода просто берёте по строчно данные из списка и обрабатываете их. Или же Операции над списком - Объеденить в переменную. И дальше работаете с переменной.
Спасибо большое! Очень помогло!
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Други, помогите разобраться. Есть такой код:

Код:
    System.Data.SQLite.SQLiteDataReader read_fields = FastSqliteHelper.Select("query", "region, district", "status LIKE 'Новый' LIMIT 1");
    try {
        if (read_fields.Read()) {
            project.Variables["region"].Value = read_fields["region"];
        }
    } finally {
            read_fields.Close();
Спотыкается на записи значения в переменную. Что я не так сделал?
 

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