Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очистка ссылок от муссора, Работа с большими текстовыми файлами 
:(
    Опции темы
lutikman
Дата 6.7.2011, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 30.9.2006

Репутация: нет
Всего: нет



Добрый день.
 Нужно написать программу, которая будет чистить от мусора ссылки из выбранного файла.
 Примеры:
 www.wwww.wwww.wwww.wwww.films1000.ru/ -> wwww.films1000.ru/
 forum.forum.forum.forum.forum.love.netz.ru/index.php -> forum.love.netz.ru/index.php
 A.b.c.d.a.a.a.domain.com -> a.domain.com
 www.www.domain.com -> www.domain.com
 www.forum.www.forum.domain.com -> www.forum.domain.com
 и т.п.
 Cсылки берутся из указанного пользователем текстового файла.
 Должен быть интерфейс пользователя для тестирования. И возможностью быстрой загрузки файла до 2 Гб для тестирования.

 C интерфейсом все понятно.
 Саму функцию очистки ссылки написал, но работает не для всех приведенных случаев. Вот код:
Код

function ValidLink(link : String):String;
var
  StrList : TStringList;
  CurentStr : String;
  RealCount, i : integer;
begin
  StrList := TStringList.Create;
  ExtractStrings(['.'], [], PChar(link), StrList);
  StrList.Delimiter := '.';
 
  RealCount := StrList.Count;
  i := 0;
  CurentStr := StrList.Strings[i];
  while True do
  begin
    if i+1 >= RealCount then
      break;
 
    if CurentStr = StrList.Strings[i+1] then
    begin
      StrList.Delete(i+1);
      Dec(RealCount);
    end
    else
    begin
      inc(i);
      CurentStr := StrList.Strings[i];
    end;
  end;
 
  ValidLink := StrList.DelimitedText;
  StrList.Free;
end;


1. Подскажите где подправить чтобы работало для всех случаев.
2. На сколько оптимизирован данный код и на сколько быстрый. Возможно подскажите алгоритм быстрее данного.
3. Методы быстрой загрузки файлов до 2 ГБ. Сам не пробывал использованием функциями Write и Read, но думаю что не самый быстрый вариант для работы с большими файлами. 

 Буду очень благодарен за помощь. При удачном решении задачи возможна денежная награда.
PM MAIL WWW ICQ   Вверх
14SatanA88
Дата 7.7.2011, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 2
Всего: 5



например
Цитата

A.b.c.d.a.a.a.domain.com -> a.domain.com


а откуда ты знаешь, какой домен валидный?

ведь может попасться и третьего уровня.
forum.love.netz.ru например
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.