Есть рабочий шаблон (пересчет данных с локальных файлов), надо сделать многопоток

  • Автор темы Автор темы sek007
  • Дата начала Дата начала

sek007

Пользователь
Регистрация
23.06.2014
Сообщения
58
Реакции
15
Баллы
8
Здравствуйте. Есть шаблон уже рабочий. Суть шаблона в том, что он пересчитывает просмотры с 2х файлов. В первом файле есть данные ссылканавидео:количествопросмотров. Во втором файле такой же формат, только количество просмотров большее (данные собранные через 2 дня). Сделано в шаблоне через split и переменные и javascript, который вычитает одну переменную из другой и кладет в файл вместе с урлом. Смысл в подсчете количества просмотров за промежуток времени между 2 парсингами (первый и второй парсинг).
Работает отлично. Но, мне необходимо сделать работу с этими 2мя файлами в многопоток, так как данных много. Пробовал по всякому, что то не так делаю.
Нужна небольшая помощь, чтобы сделать работу с этими 2мя файлами в многопоток.
Напишите в личку сумму за работу и телегу вашу.
Спасибо.
 
А что уже пробовал? В самом проекте в проджект мейкер есть окончание проекта или циклично всё (ошибка новичков в попытке сделать многопоток)?

Ну и чтобы понять что не так, в идеале увидеть бы сам проект, пусть и в миниатюре с левыми данными.
 
Здравствуйте. Есть шаблон уже рабочий. Суть шаблона в том, что он пересчитывает просмотры с 2х файлов. В первом файле есть данные ссылканавидео:количествопросмотров. Во втором файле такой же формат, только количество просмотров большее (данные собранные через 2 дня). Сделано в шаблоне через split и переменные и javascript, который вычитает одну переменную из другой и кладет в файл вместе с урлом. Смысл в подсчете количества просмотров за промежуток времени между 2 парсингами (первый и второй парсинг).
Работает отлично. Но, мне необходимо сделать работу с этими 2мя файлами в многопоток, так как данных много. Пробовал по всякому, что то не так делаю.
Нужна небольшая помощь, чтобы сделать работу с этими 2мя файлами в многопоток.
Напишите в личку сумму за работу и телегу вашу.
Спасибо.
Не важно, сколько данных - всеравно работа с файлом производится в 1 поток.
Если задача состоит как-то ускорить процесс обработки этих файлов, тогда:
Добавьте сюда в тему примеры двух файлов в текстовом виде, хотя бы с 10-20 строчками в каждом в ответ на это сообщение (чтобы мне уведомленька пришла).
Напишу решение бесплатно :)
 
А что уже пробовал? В самом проекте в проджект мейкер есть окончание проекта или циклично всё (ошибка новичков в попытке сделать многопоток)?

Ну и чтобы понять что не так, в идеале увидеть бы сам проект, пусть и в миниатюре с левыми данными.

Пробовал убирать цикличность. Пробовал еще какие то изменения, которые на форуме прочитал. Не получается. Я вообще новичок. Я обычно заказываю шаблоны, мне бы лучше чтобы сделали. Может сделаете за небольшую сумму?
 

Вложения

  • pereschet 2.png
    pereschet 2.png
    32,5 KB · Просмотры: 131
Не важно, сколько данных - всеравно работа с файлом производится в 1 поток.
Если задача состоит как-то ускорить процесс обработки этих файлов, тогда:
Добавьте сюда в тему примеры двух файлов в текстовом виде, хотя бы с 10-20 строчками в каждом в ответ на это сообщение (чтобы мне уведомленька пришла).
Напишу решение бесплатно :-)

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

Примерно вот так. В check_view.txt линк:просмотры с первого парсинга просмотров. В check_view_new.txt со второго парсинга просмотров. Надо на выходе иметь линк:разница в просмотрах.
 

Вложения

  • Спасибо
Реакции: BAZAg
Примерно вот так. В check_view.txt линк:просмотры с первого парсинга просмотров. В check_view_new.txt со второго парсинга просмотров. Надо на выходе иметь линк:разница в просмотрах.

C#:
Развернуть Свернуть Копировать
string path1 = @"C:\Users\User\Desktop\forum_txt\check_view_new.txt"; // Файл до
string path2 = @"C:\Users\User\Desktop\forum_txt\check_view.txt"; // Файл после
string path_out= @"C:\Users\User\Desktop\forum_txt\out.txt"; // Результат

lock(SyncObjects.ListSyncer) { // если вдруг файлы дёргаются несколькими потоками с помощью этого кода
var dic1 = File.ReadAllLines(path1).Select(x=>x.Split('=')[1].Split(':')).ToDictionary(x => x[0], x => int.Parse(x[1]));
var dic2 = File.ReadAllLines(path2).Select(x=>x.Split('=')[1].Split(':')).ToDictionary(x => x[0], x => int.Parse(x[1]));

var dic3 = new Dictionary<string, int>();

foreach(var kwp in dic1){
    string name = kwp.Key;
    int x_do =kwp.Value;
    int x_posle = x_do;
    if(dic2.ContainsKey(kwp.Key))  x_posle = dic2[kwp.Key];
    dic3.Add(name, x_posle-x_do);
}

File.WriteAllLines(path_out, dic3.Select(x=> string.Format(@"https://www.youtube.com/watch?v={0}",string.Join(":", new[]{x.Key, x.Value.ToString()}))).ToArray());
}
95225
 
Последнее редактирование:
  • Спасибо
Реакции: Alexbrush
Решение добавил в сообщение выше.

Спасибо!
Надо наверное засунуть это в C# кубик? Вопрос еще один, мне надо пересчитывать такие списки для около 10 разных сайтов. Пробовал вставлять ссылку, толку нет, не работает. А можно код сделать универсальным, чтобы можно было просмотры и ссылки с разных сайтов пересчитывать? Чтобы оно учитывало полностью ссылку, а не только часть с id видео. А то под каждый сайт придется переделывать, а я вообще не в курсе как. И куда вам можно перевести какую нибудь сумму за помощь? Спасибо.
 
Разобрался, для ютюб ссылок работает. Как сделать на другие 10 сайтов не понимаю. Мне бы универсальный код.
 
Решение добавил в сообщение выше.

А еще при нахождении дубля выдало ошибку:
Выполнение действия CSharp OwnCode. Элемент с тем же ключом уже был добавлен.

И ничего не записало в файл. Этого можно как то избежать?
 
Нашел исполнителя. Всем спасибо.
 

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