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

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

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 Всех с праздниками! и интересной работы в новом году...)
 
Теория, но попробуйте, вдруг получится.
Нужно два списка.
Берем экшен "Директории", считываем все файлы, пути кладем в список 1.
Операции со списком, взять строку в переменную, а это переменная прописана в "путь к файлу" в списке 2.
Т.е. логика работы следующая, работаем со списком 2, потом инициируем смену пути и продолжаем работать со списком 2, но уже с другими данными
 
Теория, но попробуйте, вдруг получится.
Нужно два списка.
Берем экшен "Директории", считываем все файлы, пути кладем в список 1.
Операции со списком, взять строку в переменную, а это переменная прописана в "путь к файлу" в списке 2.
Т.е. логика работы следующая, работаем со списком 2, потом инициируем смену пути и продолжаем работать со списком 2, но уже с другими данными

Уже было реализовано мною. Постоянная ПЕРЕ-привязка файла к списку не выход. При таком подходе, у меня винт разрывается от операциий - привязка-чтение (60Мб/с идет чтение), а шаблон должен отработать несколько недель.

Смысл в том, чтобы за один раз прочитать все 80 файлов, при этом данные записать в оперативку. А далее по циклу (у меня их 10 кругов), т.е уменьшается нагрузка на винт в 10 раз, и увеличивается скорость обработки данных в шаблоне - в 2-3 раза.
 
Получается решения нет? Нужно создавать вручную 80 списков?
 
Опять работа со списками:( Кто нибудь подскажет как это сделать?
 
выпарси списки и построчно бери
 
бля ступил, типо на C# нужно было
один поток полулучает все списки
потом с ними работаешь
 
Получается решения нет? Нужно создавать вручную 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]));
 
Подскажите почему вариант с .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]);
}
 
Подскажите почему вариант с .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

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