Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2016, 18:30   #11
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

дай входной файл.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.05.2016, 20:05   #12
nikolokaputik80
Пользователь
 
Регистрация: 30.09.2015
Сообщений: 74
По умолчанию

Вот кусок в 5 мегабайт

19443 - ссылки
Вложения
Тип файла: rar content.rar (415.9 Кб, 140 просмотров)
nikolokaputik80 вне форума Ответить с цитированием
Старый 17.05.2016, 20:28   #13
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

У мну отака фигня получилась

MagicP.zip

Код:
type
  TArrayString = array of string;

function TForm1.GetLinks(const AStr: string): TArrayString;
var
  RegExp: TPerlRegEx;
  s: string;
  i, count: integer;
begin

  RegExp := TPerlRegEx.Create();
  try
    RegExp.RegEx := 'http://.*?/';
    RegExp.Subject := AStr;

    count := 0;
    SetLength(result, count);
    if RegExp.Match then
    begin
      repeat
        for i := 0 to RegExp.GroupCount do
        Begin
          SetLength(result, count + 1);
          s := RegExp.Groups[i];
          result[count] := s;

          inc(count);
        End;
      until not RegExp.MatchAgain;
    end;

  finally
    FreeAndNil(RegExp);
  end;
end;

procedure TForm1.MagicBtnClick(Sender: TObject);
var
  InputF, OutputF: TextFile;
  Line: string;
  i: integer;
  ArrayString: TArrayString;
begin
  AssignFile(InputF, 'input.txt');
  Reset(InputF);

  AssignFile(OutputF, 'output.txt');
  ReWrite(OutputF);

  while not Eof(InputF) do
  begin
    ReadLn(InputF, Line);
    ArrayString := GetLinks(Line);

    if Length(ArrayString) > 0 then
      for i := 0 to Length(ArrayString) - 1 do
        WriteLn(OutputF,  ArrayString[i]);

    SetLength(ArrayString, 0);
  end;

  CloseFile(InputF);
  CloseFile(OutputF);
end;
Никаких проверок на возможность пушного зверька, никакой возможности указать вручную входной/выходной файл, только хардкор и никаких соплей. Жми волшебную кнопку.
Только не забудь положить рядом с ехе файлик "input.txt" с нужными кишками. Мож хоть гиговый файл подсунуть (если дождешься пока прочекает)

Может когда-то будет настроение, то распаралелю этот бред

Если тута есть гуру регекспов, то могут поправить мою фигню, бо вдруг мну где-то накосячило

Цитата:
Сообщение от nikolokaputik80 Посмотреть сообщение
Вот кусок в 5 мегабайт
19443 - ссылки
Кстати, нинада ляля, то у тебя вхождений http:// 19443
Вы там держитесь.

Последний раз редактировалось TaLadno; 17.05.2016 в 20:35.
TaLadno вне форума Ответить с цитированием
Старый 17.05.2016, 21:01   #14
nikolokaputik80
Пользователь
 
Регистрация: 30.09.2015
Сообщений: 74
По умолчанию

откройте мой файл в нотепаде и
найти
http://
заменить на
http://

и на выходе будет 19443 замен, и это говорит что 19443 ссылки присутствует!
nikolokaputik80 вне форума Ответить с цитированием
Старый 17.05.2016, 21:15   #15
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

Та пофиг.

output.zip

У мну в выходном файле получилось 19442 строки с ссылками
Вы там держитесь.
TaLadno вне форума Ответить с цитированием
Старый 17.05.2016, 22:07   #16
nikolokaputik80
Пользователь
 
Регистрация: 30.09.2015
Сообщений: 74
По умолчанию

TaLadno Спасибо за вашу прогу, задачу решила (Волшебная кнопка)
nikolokaputik80 вне форума Ответить с цитированием
Старый 17.05.2016, 22:12   #17
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

Будь ласка.
Вы там держитесь.
TaLadno вне форума Ответить с цитированием
Старый 19.05.2016, 11:43   #18
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
я глянул на код

strartpos='http://';
stoppos='/">';


вот и попросил скомпилировать, но увы не работает почему-то!
Цитата:
<ExternalPage about="http://rockingaltd.com/mfish.html">
строка 390 файла-примера НЕ соответствует "Т(ех.)З(аданию)".
Цитата:
конец поиска /">
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 19.05.2016, 12:01   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

evg_m, согласен. я тоже это увидел, когда сказали, что не всё обрабатывается.
Но это неважно.
Думаю, что вопрос решён, файл получен, тема уже неактуальна.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2016, 13:17   #20
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

Вопрос исчерпан, но тема еще актуальна
Цитата:
Сообщение от TaLadno Посмотреть сообщение
Может когда-то будет настроение, то распаралелю этот бред
Так шо не закрывайте пока, может таки сделаю распаралельку, чтобы можно было толстые файлы скармливать
Там гляди и обсуждение какое завяжется. А то надоели темы про "памагите, гарю" и "не знаю как сменить заголовок формы. Срочно!!!11адын"
Вы там держитесь.

Последний раз редактировалось TaLadno; 19.05.2016 в 13:19.
TaLadno вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить все ссылки сразу из всех документов? Karyuudo Microsoft Office Word 0 19.11.2012 14:53
Как автоматически активировать все ссылки в тексте документа? imeverest Microsoft Office Word 2 08.09.2012 14:44
Как составить регулярные выражения которые будет искать все ссылки на странице? melihovgv PHP 4 10.12.2011 16:56
Как найти все ссылки на странице, начинающееся с... codermoder Работа с сетью в Delphi 6 11.02.2011 10:24
Как можно отбразить все ссылки сайт в проге eldar Работа с сетью в Delphi 2 28.09.2008 12:19