Program DZ; {$mode objfpc} uses classes, regexpr, sysutils, strutils; var re: TRegExprEngine; s, subs, sLink, f_n: AnsiString; ok: boolean; index, len: longint; sL_In, sL_Out: TStringList; begin sL_In := TStringList.Create; sL_Out := TStringList.Create; try write('Enter file name: '); readln(f_n); sL_In.LoadFromFile(f_n); s := StringReplace( StringReplace(sL_In.Text, 'www.', 'http://www.', [rfReplaceAll]), 'http://http://', 'http://', [rfReplaceAll] ); ok := GenerateRegExprEngine('http://([\w+?\.\w+])+([a-zA-z0-9\~\!\@\#\$\%\^\&\*\(\)\_\-\=\+\\\/\?\.\:\;\"\,]*)?',[],re); if not ok then writeln('error: init regexp') else begin subs := s; while Length (subs) > 0 do begin if RegExprPos(re, PChar(subs), index, len) then begin sLink := Copy(subs, index + 1, len); if sL_Out.IndexOf(sLink) = -1 then begin sL_Out.Add(sLink); writeln(sLink); end; subs := RightStr(subs, Length(subs) - index - len); end else break; end; DestroyRegExprEngine(re); write('File name to store results: '); readln(f_n); sL_Out.SaveToFile(f_n); end; finally sL_Out.Free; sL_In.Free; end; end.