Как привязать много списков к файлам через C#

Se0mashines

Client
Регистрация
05.02.2012
Сообщения
209
Благодарностей
52
Баллы
28
Имеется 80 файлов txt. Нужен снипет на C# чтобы закинуть их в списки.

List.список1 = "c:\\1.txt";
List.список2 = "c:\\2.txt";
List.список3 = "c:\\3.txt";

Но сами списки при этом, не создавать на панели Зеннопостера. А то вся нижняя панель будет в списках. Так можно?

P/s Всех с праздниками! и интересной работы в новом году...)
 

ТРОН

Client
Регистрация
31.07.2016
Сообщения
336
Благодарностей
381
Баллы
63
Теория, но попробуйте, вдруг получится.
Нужно два списка.
Берем экшен "Директории", считываем все файлы, пути кладем в список 1.
Операции со списком, взять строку в переменную, а это переменная прописана в "путь к файлу" в списке 2.
Т.е. логика работы следующая, работаем со списком 2, потом инициируем смену пути и продолжаем работать со списком 2, но уже с другими данными
 

Se0mashines

Client
Регистрация
05.02.2012
Сообщения
209
Благодарностей
52
Баллы
28
Теория, но попробуйте, вдруг получится.
Нужно два списка.
Берем экшен "Директории", считываем все файлы, пути кладем в список 1.
Операции со списком, взять строку в переменную, а это переменная прописана в "путь к файлу" в списке 2.
Т.е. логика работы следующая, работаем со списком 2, потом инициируем смену пути и продолжаем работать со списком 2, но уже с другими данными
Уже было реализовано мною. Постоянная ПЕРЕ-привязка файла к списку не выход. При таком подходе, у меня винт разрывается от операциий - привязка-чтение (60Мб/с идет чтение), а шаблон должен отработать несколько недель.

Смысл в том, чтобы за один раз прочитать все 80 файлов, при этом данные записать в оперативку. А далее по циклу (у меня их 10 кругов), т.е уменьшается нагрузка на винт в 10 раз, и увеличивается скорость обработки данных в шаблоне - в 2-3 раза.
 

Se0mashines

Client
Регистрация
05.02.2012
Сообщения
209
Благодарностей
52
Баллы
28
Получается решения нет? Нужно создавать вручную 80 списков?
 

Se0mashines

Client
Регистрация
05.02.2012
Сообщения
209
Благодарностей
52
Баллы
28
Опять работа со списками:( Кто нибудь подскажет как это сделать?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
выпарси списки и построчно бери
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
бля ступил, типо на C# нужно было
один поток полулучает все списки
потом с ними работаешь
 

woober

Client
Регистрация
07.04.2015
Сообщения
211
Благодарностей
123
Баллы
43
Получается решения нет? Нужно создавать вручную 80 списков?
ну можно сделать что-то вроде этого:
Код:
// получаем список файлов в папке
List<string> filesInDir = Directory.GetFiles(project.Directory + @"\files").ToList();

// создаем список из списков
List<List<string>> list = new List<List<string>>();

// проходимся по каждому файлу в папке
foreach (string file in filesInDir)
{
    List<string> tmpList = File.ReadAllLines(file).ToList();
    list.Add(tmpList);
}

// получили заполненный список, в котором другие списки, соответственно, теперь списки сможем выцеплять по номерам и делать с ними что хочешь
project.SendInfoToLog(string.Join(Environment.NewLine,list[1]));
project.SendInfoToLog(string.Join(Environment.NewLine,list[5]));
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113

ol1ver

Client
Регистрация
29.08.2013
Сообщения
332
Благодарностей
82
Баллы
28
Подскажите почему вариант с .Add() (в цикле) работает, с AddRange() нет?
Задача пройтись по директории, строки из всех файлов загнать в список myList.
спасибо.

Код:
// получаем список файлов в папке
List <string> filesInDir = Directory.GetFiles(project.Directory + @"\txt").ToList();
//куда будем складывать все строки файла(ов)
IList <string> myList = project.Lists["myList"];

// проходимся по каждому файлу в папке
foreach(string file in filesInDir)
{
  List <string> tmpList = File.ReadAllLines(file).ToList();

   foreach(string item in tmpList){
     myList.Add(item);
   }
   
   //myList.AddRange(tmpList);
  
   
   //project.SendInfoToLog(tmpList[0]);
}
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Подскажите почему вариант с .Add() (в цикле) работает, с AddRange() нет?
Задача пройтись по директории, строки из всех файлов загнать в список myList.
спасибо.

Код:
// получаем список файлов в папке
List <string> filesInDir = Directory.GetFiles(project.Directory + @"\txt").ToList();
//куда будем складывать все строки файла(ов)
IList <string> myList = project.Lists["myList"];

// проходимся по каждому файлу в папке
foreach(string file in filesInDir)
{
  List <string> tmpList = File.ReadAllLines(file).ToList();

   foreach(string item in tmpList){
     myList.Add(item);
   }
  
   //myList.AddRange(tmpList);
 
  
   //project.SendInfoToLog(tmpList[0]);
}
IList <string> заменить на IZennoList или просто var
 
  • Спасибо
Реакции: ol1ver

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