Объединить списки

  • Автор темы Автор темы fri-lancer
  • Дата начала Дата начала

fri-lancer

Client
Регистрация
01.10.2013
Сообщения
420
Реакции
164
Баллы
43
Есть три списка в каждом по 100 строк, я из них беру данные, ложу в переменные, подскажите как их объединить в один текстовый файл в таком формате: {-Variable.str_1-};{-Variable.str_2-};{-Variable.str_3-}
 
Есть три списка в каждом по 100 строк, я из них беру данные, ложу в переменные, подскажите как их объединить в один текстовый файл в таком формате: {-Variable.str_1-};{-Variable.str_2-};{-Variable.str_3-}
с каждого списка по строке берёте и складываете в нужный список ,дописать строку {-Variable.str_1-};{-Variable.str_2-};{-Variable.str_3-}
 
с каждого списка по строке берёте и складываете в нужный список ,дописать строку {-Variable.str_1-};{-Variable.str_2-};{-Variable.str_3-}
сейчас записалось в список:
текст 1
текст 2
текст 3
а мне нужно чтобы было так:
текст 1;текст 2;текст 3
 
сейчас записалось в список:
текст 1
текст 2
текст 3
а мне нужно чтобы было так:
текст 1;текст 2;текст 3
берёте текст 1,берёте текст 2,берёте текст 3,а в список кладёте так текст 1;текст 2;текст 3 ,если так и делаете,а в строку не складывает всё равно ,значит разделитель строк в списке у вас ; такой,поменяйте разделитель на другой и всё заработает,только что проверял.
 
  • Оценить
Реакции: fri-lancer
берёте текст 1,берёте текст 2,берёте текст 3,а в список кладёте так текст 1;текст 2;текст 3 ,если так и делаете,а в строку не складывает всё равно ,значит разделитель строк в списке у вас ; такой,поменяйте разделитель на другой и всё заработает,только что проверял.
Спасибо, заработало.
 
а если списки по 20-30 тыс строк, как их можно быстро свести? построчно муторно
пример:список 1 (строки ID), список 2 (name), список 3 (time)
а нужно один со строкой типа
"ID";"name";"time"

или может есть вариант почистить список такого типа сразу?:
ID
name
time
ID
name
time
ID
name
time

заменой не за что зацепится
 
в каком смысле муторно?

а если списки по 20-30 тыс строк, как их можно быстро свести? построчно муторно
пример:список 1 (строки ID), список 2 (name), список 3 (time)
а нужно один со строкой типа
"ID";"name";"time"

Я так и не понял почему не сделать так как написано выше - брать построчно с удалением данные и прописывать в итоговый список
 
Последнее редактирование:
Ribas
потому как к примеру чистка общего массива автозаменой займет 1минуту, а сведение построчно час и больше
автозаменой просто возможно когда формат таков:
<id="">ID</id>
"name"
<a href>time</a>
<id="">ID</id>
"name"
<a href>time</a>ID
<id="">ID</id>
"name"
<a href>time</a>
т.е. есть любое уникальное окружение к которому можно прицепится
3-4 замены и сохраняем массив в файл csv - все операция выполнена практически моментально. А если построчно - муторно - самое мягкое слово из моего лексикона

вот и спрашиваю - вдруг есть варианты в скриптах или С++ которые позволят обработать список переменных и без окружения, только на закономерностях в последовательности, или на масках
 
Последнее редактирование:
вот и спрашиваю - вдруг есть варианты в скриптах или С++ которые позволят обработать список переменных и без окружения, только на закономерностях в последовательности, или на масках
Для одного списка (строки из него удаляются):
ID
name
time
...
Код:
Развернуть Свернуть Копировать
var list = project.Lists["SourceList"];
var result = project.Lists["Result"];
lock(SyncObjects.ListSyncer)
{
    for (int i = 0; i < list.Count;)
        {
            string str1 = list[i];
                list.RemoveAt(i);
            string str2 = list[i];
                list.RemoveAt(i);
            string str3 = list[i];
                list.RemoveAt(i);
        
            result.Add(str1 + ";" + str2 + ";" + str3); // в кавычках любой разделитель
        }
}
 
Последнее редактирование:
Для трех списков IDs , Names, Time (строки берутся с удалением):
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["ListIDs"];
var list2 = project.Lists["ListNames"];
var list3 = project.Lists["ListTime"];
var result = project.Lists["Result"];
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list1.Count;)
        {
            string ID = list1[i];
                list1.RemoveAt(i);
            string name = list2[i];
                list2.RemoveAt(i);
            string time = list3[i];
                list3.RemoveAt(i);
        
            result.Add(ID + ";" + name + ";" + time); // в кавычках любой разделитель
        }
}

Вариант без удаления строк из исходных списков:
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["ListIDs"];
var list2 = project.Lists["ListNames"];
var list3 = project.Lists["ListTime"];
var result = project.Lists["Result"];
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list1.Count; i++)
        {
            string ID = list1[i];
            string name = list2[i];
            string time = list3[i];
        
            result.Add(ID + ";" + name + ";" + time); // в кавычках любой разделитель
        }
}
 
Последнее редактирование:
Ribas
потому как к примеру чистка общего массива автозаменой займет 1минуту, а сведение построчно час и больше
Странно, но я вот проверил - у меня три списка, в кажом 34к строк, склеились в один примерно за 10 секунд стандартными кубиками, а та же замена стандартным кубиком (правда поиск по регулярке) в массиве - ну ооочень долго происходит. А вот шарпом такая замена проходит быстро.
 
Dimionix вот так спасибочки, ну оочень такое большое и серьезное спасибо
нужно учить язык чую, знать бы с какой стороны взяться дабы не тратить лет этак энцать)
 
  • Оценить
Реакции: Dimionix
Ещё можно было в Excel просто в три колонки воткнуть и сохранить.
 
  • Оценить
Реакции: Adigen
Для трех списков IDs , Names, Time (строки берутся с удалением):
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["ListIDs"];
var list2 = project.Lists["ListNames"];
var list3 = project.Lists["ListTime"];
var result = project.Lists["Result"];
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list1.Count;)
        {
            string ID = list1[i];
                list1.RemoveAt(i);
            string name = list2[i];
                list2.RemoveAt(i);
            string time = list3[i];
                list3.RemoveAt(i);
       
            result.Add(ID + ";" + name + ";" + time); // в кавычках любой разделитель
        }
}

Вариант без удаления строк из исходных списков:
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["ListIDs"];
var list2 = project.Lists["ListNames"];
var list3 = project.Lists["ListTime"];
var result = project.Lists["Result"];
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list1.Count; i++)
        {
            string ID = list1[i];
            string name = list2[i];
            string time = list3[i];
       
            result.Add(ID + ";" + name + ";" + time); // в кавычках любой разделитель
        }
}

Спасибо тебе из далекого будущего. Вроде 7 лет прошло, а проблемы всё такие же. =)
 
  • Оценить
Реакции: djaga
Для трех списков IDs , Names, Time (строки берутся с удалением):
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["ListIDs"];
var list2 = project.Lists["ListNames"];
var list3 = project.Lists["ListTime"];
var result = project.Lists["Result"];
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list1.Count;)
        {
            string ID = list1[i];
                list1.RemoveAt(i);
            string name = list2[i];
                list2.RemoveAt(i);
            string time = list3[i];
                list3.RemoveAt(i);
       
            result.Add(ID + ";" + name + ";" + time); // в кавычках любой разделитель
        }
}

Вариант без удаления строк из исходных списков:
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["ListIDs"];
var list2 = project.Lists["ListNames"];
var list3 = project.Lists["ListTime"];
var result = project.Lists["Result"];
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list1.Count; i++)
        {
            string ID = list1[i];
            string name = list2[i];
            string time = list3[i];
       
            result.Add(ID + ";" + name + ";" + time); // в кавычках любой разделитель
        }
}
работает и в 2023, спасибо!
 
  • Оценить
Реакции: material

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