Помогите пожалуйста слегка изменить С#

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
Здравствуйте есть код
C#:
// navigate to url
instance.ActiveTab.Navigate("http://lessons.zennolab.com");
// get list of requests
var traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be more than 0
project.SendInfoToLog("First count of traffic elements = " + traffic.Count());
// get some data from items and log it
foreach(var t in traffic)
    project.SendInfoToLog(string.Format("Url: {0}\r\n Method: {1}\r\n Result: {2}", t.Url, t.Method, t.ResultCode));
// get list of request second time
traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be 0, because the previous method call removed the old items
project.SendInfoToLog("Second count of traffic elements = " + traffic.Count());
Помогите пожалуйста слегка видоизменить его чтобы он не в лог отправлял результат, а в переменную.
 
Последнее редактирование:

starters

Активный пользователь
Регистрация
23.09.2016
Сообщения
254
Благодарностей
109
Баллы
43
PHP:
// navigate to url
instance.ActiveTab.Navigate("http://lessons.zennolab.com");
// get list of requests
var traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be more than 0
project.SendInfoToLog("First count of traffic elements = " + traffic.Count());
// get some data from items and log it
foreach(var t in traffic)
    project.Variables["name"].Value = string.Format("Url: {0}\r\n Method: {1}\r\n Result: {2}", t.Url, t.Method, t.ResultCode);
// get list of request second time
traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be 0, because the previous method call removed the old items
project.SendInfoToLog("Second count of traffic elements = " + traffic.Count());
 
  • Спасибо
Реакции: ShikoFess

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
PHP:
// navigate to url
instance.ActiveTab.Navigate("http://lessons.zennolab.com");
// get list of requests
var traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be more than 0
project.SendInfoToLog("First count of traffic elements = " + traffic.Count());
// get some data from items and log it
foreach(var t in traffic)
    project.Variables["name"].Value = string.Format("Url: {0}\r\n Method: {1}\r\n Result: {2}", t.Url, t.Method, t.ResultCode);
// get list of request second time
traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be 0, because the previous method call removed the old items
project.SendInfoToLog("Second count of traffic elements = " + traffic.Count());
К сожалению при таком коде сохраняет только последнюю часть лога.
 

starters

Активный пользователь
Регистрация
23.09.2016
Сообщения
254
Благодарностей
109
Баллы
43
Так я тебе показал как записать в переменную
Код:
project.Variables["name"].Value = ......
Думал остальное сам переделаешь
 
  • Спасибо
Реакции: ShikoFess

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
сохраняй в список, у тебя ведь цикл
 
  • Спасибо
Реакции: ShikoFess

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
Так я тебе показал как записать в переменную
Код:
project.Variables["name"].Value = ......
Думал остальное сам переделаешь
Так там цикл, я же говорю записывает только последнее обращение) Оно просто перезаписывает переменную с каждым обращение foreach)
 

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43

starters

Активный пользователь
Регистрация
23.09.2016
Сообщения
254
Благодарностей
109
Баллы
43
Так там цикл, я же говорю записывает только последнее обращение) Оно просто перезаписывает переменную с каждым обращение foreach)
Вопрос был
Помогите пожалуйста слегка видоизменить его чтобы он не в лог отправлял результат, а в переменную.
Я на него ответил

Теперь оказывается надо в список. Но на самом деле наверно чтобы в таблицу?

PS правильно заданый вопрос - это половина ответа
 
  • Спасибо
Реакции: ShikoFess

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
C#:
// navigate to url
instance.ActiveTab.Navigate("http://lessons.zennolab.com");
// get list of requests
var traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be more than 0
project.SendInfoToLog("First count of traffic elements = " + traffic.Count());
// get some data from items and log it
foreach(var t in traffic)
{
    var line = string.Format("Url: {0}\r\n Method: {1}\r\n Result: {2}", t.Url, t.Method, t.ResultCode);
    FileSystem.FileAppendString(project.Directory + "\\Result.txt", line, true);
    traffic = instance.ActiveTab.GetTraffic();
    project.SendInfoToLog("Second count of traffic elements = " + traffic.Count());
}
 
  • Спасибо
Реакции: ShikoFess

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
Вопрос был

Я на него ответил

Теперь оказывается надо в список. Но на самом деле наверно чтобы в таблицу?

PS правильно заданый вопрос - это половина ответа
Так он не отправляет результат в переменную, он отправляет часть результата в переменную. Это две разные вещи, разве нет?) Я уверен можно в переменную отправить и весь результат, но не знаю как, поэтому и попросил помощи.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Так он не отправляет результат в переменную, он отправляет часть результата в переменную. Это две разные вещи, разве нет?) Я уверен можно в переменную отправить и весь результат, но не знаю как, поэтому и попросил помощи.
ты для себя сначала реши как хочешь видеть результат, чтоб строкой был, или разложен по переменым
 
  • Спасибо
Реакции: ShikoFess

starters

Активный пользователь
Регистрация
23.09.2016
Сообщения
254
Благодарностей
109
Баллы
43
Так он не отправляет результат в переменную, он отправляет часть результата в переменную. Это две разные вещи, разве нет?) Я уверен можно в переменную отправить и весь результат, но не знаю как, поэтому и попросил помощи.
Ты сам не знаешь что хочешь
То в список, то в переменную
Код:
project.Variables["name"].Value += string.Format(" Url: {0}\r\n Method: {1}\r\n Result: {2}", t.Url, t.Method, t.ResultCode);
 
  • Спасибо
Реакции: ShikoFess

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
C#:
// navigate to url
instance.ActiveTab.Navigate("http://lessons.zennolab.com");
// get list of requests
var traffic = instance.ActiveTab.GetTraffic();
// print count of items, it will be more than 0
project.SendInfoToLog("First count of traffic elements = " + traffic.Count());
// get some data from items and log it
foreach(var t in traffic)
{
    var line = string.Format("Url: {0}\r\n Method: {1}\r\n Result: {2}", t.Url, t.Method, t.ResultCode);
    FileSystem.FileAppendString(project.Directory + "\\Result.txt", line, true);
    traffic = instance.ActiveTab.GetTraffic();
    project.SendInfoToLog("Second count of traffic elements = " + traffic.Count());
}
Спасибо, а как сделать список внутри шаблона, чтобы не в файл сохраняло, а локально пока шаблон работает. По аналогии с кубиком, когда не сохраняешь изменения в файл. Дело в том что выполнений будет много и потоков тоже, и если в каждом потоке будет сохранять текстовый документ, а потом выпаршивать его данные, то это большое колличество нагрузки на диск. Может есть возможность записать весь этот цикл в переменную напрямую или хотя бы в локальный список. Может я как то неграмотно задаю вопросы, но как умею.
 

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
ты для себя сначала реши как хочешь видеть результат, чтоб строкой был, или разложен по переменым
Да мне просто надо получить данные из кода, желательно в одной переменной, а нужное я уже регулярками спарсю.
 

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43

starters

Активный пользователь
Регистрация
23.09.2016
Сообщения
254
Благодарностей
109
Баллы
43
Да мне просто надо получить данные из кода, желательно в одной переменной, а нужное я уже регулярками спарсю.
ты к костылю приделываешь еще 1 костыль.
Если ты в C# не понимаешь, возьми для начала на кубиках сделай, увидишь логику, оптимизиурешь правильно, так будет нагляднее, а потом уже в C# пытайся
 
  • Спасибо
Реакции: ShikoFess

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
ты к костылю приделываешь еще 1 костыль.
Если ты в C# не понимаешь, возьми для начала на кубиках сделай, увидишь логику, оптимизиурешь правильно, так будет нагляднее, а потом уже в C# пытайся
Там на кубиках такое не реализовать. Генерируется токен oath с помощью js который записывается в head, но при сохранении профиля и использования пост гет естественно этот токен в head теряется. Поэтому его надо для начала выпарсить, ибо знаний сгенерировать самому не хватит. А затем отправить дополнительно в заголовке.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
C#:
var line = "";
var sourceList = project.Lists["SourceList"];

instance.ActiveTab.Navigate("http://lessons.zennolab.com");
var traffic = instance.ActiveTab.GetTraffic();
project.SendInfoToLog("First count of traffic elements = " + traffic.Count());

foreach(var t in traffic)
{
    line = string.Format("Url: {0}, Method: {1}, Result: {2}", t.Url, t.Method, t.ResultCode);
    sourceList.Add(line);
  
    traffic = instance.ActiveTab.GetTraffic();
    project.SendInfoToLog("Second count of traffic elements = " + traffic.Count());
}

// если надо сохранять в файл то разкоментировать
//var tick = DateTime.Now.Ticks;
//FileSystem.FileAppendString(project.Directory + "\\" + tick + ".txt", string.Join("\r\n", sourceList), true);
 
Последнее редактирование:
  • Спасибо
Реакции: ShikoFess

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
ты к костылю приделываешь еще 1 костыль.
Если ты в C# не понимаешь, возьми для начала на кубиках сделай, увидишь логику, оптимизиурешь правильно, так будет нагляднее, а потом уже в C# пытайся
Да не то чтобы совсем прям не понимаю, я все таки понимаю что примерно написано в коде и что это делает. Просто есть огромные пробелы в знаниях ан самых простых вещах, вот например как += вместо = в данном случае, которое будет дозаписывать, а не перезаписывать переменную)
 

starters

Активный пользователь
Регистрация
23.09.2016
Сообщения
254
Благодарностей
109
Баллы
43
Да не то чтобы совсем прям не понимаю, я все таки понимаю что примерно написано в коде и что это делает. Просто есть огромные пробелы в знаниях ан самых простых вещах, вот например как += вместо = в данном случае, которое будет дозаписывать, а не перезаписывать переменную)
https://docs.microsoft.com/ru-ru/dotnet/csharp/how-to/concatenate-multiple-strings
 
  • Спасибо
Реакции: ShikoFess

ShikoFess

Client
Регистрация
21.12.2017
Сообщения
131
Благодарностей
105
Баллы
43
C#:
var line = "";
var sourceList = project.Lists["SourceList"];

instance.ActiveTab.Navigate("http://lessons.zennolab.com");
var traffic = instance.ActiveTab.GetTraffic();
project.SendInfoToLog("First count of traffic elements = " + traffic.Count());

foreach(var t in traffic)
{
    line = string.Format("Url: {0} Method: {1} Result: {2}", t.Url, t.Method, t.ResultCode);
    sourceList.Add(line);
 
    traffic = instance.ActiveTab.GetTraffic();
    project.SendInfoToLog("Second count of traffic elements = " + traffic.Count());
}

// если надо сохранять в файл то разкоментировать
//var tick = DateTime.Now.Ticks;
//FileSystem.FileAppendString(project.Directory + "\\" + tick + ".txt", string.Join("\r\n", sourceList), true);
Спасибо это отличный вариант сохранения цикла в список. Возьму на заметку.
 

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