Сопоставление файлов txt

Sekotka

Client
Регистрация
07.10.2015
Сообщения
92
Реакции
24
Баллы
8
Подскажите пожалуйста, есть два файла txt с построчным расположением УРЛов
В одном допустим 1000 полных УРЛов вида:
http://site1.ru/forum
http://site2.ru/board.php
http://site3.ru/
http://site4.ru/all
А во втором 100 кратких УРЛов вида:
site1.ru
site4.ru
и тд.
Нужно получить из первого файла 100 полных УРЛов, которые совпадают по домену со вторым файлом.
т.е. в моем примере нужно получить готовый список в котором будет только
http://site1.ru/forum
http://site4.ru/all
и все
Подскажите пожалуйста как это реализуется. Спасибо!
 
Берёте из второго списка строку, ищете её в первом, записываете то, что нашли в третий. В итоге в третьем списке будет всё то, что нужно.
 
Этот вопрос актуален потому, что нужно обрабатывать тысячи УРЛов, а Ваше решение, к сожалению, подразумевает слишком большие затраты времени.
 
Это можно сделать кодом. Это всё сделается за секунду. Ничего чрезвычайно сложного тут нет, если Вам не нужно обрабатывать миллионы строк.
 
К сожалению, я не кодер) Думал может эксель тут поможет или регулярка какая более-менее экономящая время)
 
К сожалению, я не кодер) Думал может эксель тут поможет или регулярка какая более-менее экономящая время)

Код:
Развернуть Свернуть Копировать
var list1= project.Lists["list1"]; //список, содержащий полные ссылки
var list2= project.Lists["list2"]; //список, содержащий части ссылок
var list3= project.Lists["list3"]; //список, куда сохраняем

int countList1 = list1.Count;
int countList2 = list2.Count;

string shortlink;
string link;

for(int i = 0;i<countList2;i++)
{
    shortlink = list2[i];
    for(int a = 0; a<countList1;a++)
    {
        link = list1[a];
        if(link.Contains(shortlink))
        {
            list3.Add(link);
            break;
        }
    }
}

В первом списке было более 13 к строк, во втором более 1к, выполнилось быстрее, чем за секунду.
 
Если есть нужда обрабатывать тысячи строк то наверно более удобно будет работать через базу данных например MySQL (все сравнения база данных возьмет на себя).
Нужно будет просто использовать запрос в виде: SELECT id FROM Table WHERE full_url IN ('%url%', '%url2%', '%url3%');
 

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