Вообще я сайты загружаю с ini: Содержимое ini: Code: [Domain] http://ya.ru http://google.com http://yahoo.com [Delimiter] : И мне просто надо загрузить ссылки с [Domain] в memo1 и разделитель [Delimiter] в Edit1.text или он может быть ;
Code: function StrBetween(S, First, Last: String): String; begin Result := ''; if Pos(First, S) > 0 then begin Result := Copy(S, Pos(First, S) + Length(First), Length(S) - Pos(First, S) - Length(First) + 1); Delete(Result, Pos(Last, Result), Length(Result) - Pos(Last, Result) + 1); end else if (First = '') and (Pos(Last, S) > 1) then Result := Copy(S, 1, Pos(Last, S) - 1); end; procedure TForm1.Button1Click(Sender: TObject); var CRLF: Boolean; Text, URLs, Delim: String; begin Text := Memo1.Text; // Берём исходный текст CRLF := Pos(#13#10, Text) > 0; if CRLF then Text := StringReplace(Text, #13#10, #10, [rfReplaceAll]); URLs := StrBetween(Text, '[Domain]'#10, #10'['); Delim := StrBetween(Text, '[Delimiter]'#10, #10); if CRLF then URLs := StringReplace(URLs, #10, #13#10, [rfReplaceAll]); Memo1.Text := URLs; // Записываем список Edit1.Text := Delim; // Записываем разделитель end; Дальше со списком уже можно осуществлять фильтрацию.
Отлично спасибо огромное прямо абсолютно то что нужно ! По 100 бальной шкале 101 !! Ты меня вообще выручил !
Вот если это всё распределить по двум кнопкам открытие страницы, затем парсинг то всё нормально пашет !!! А щас не хочет -( Code: procedure TForm1.Button1Click(Sender: TObject); var i:integer; str:string; y:integer; begin //for i := 0 to memo1.Lines.Count-1 do webbrowser1.Navigate('yandex.ru'); if WebBrowser1.LocationURL = 'about:blank' then begin // проверяю открылась ли ссылка прежде чем парсить str:=Webbrowser1.OleObject.Document.body.innerHTML; memo3.Lines.AddStrings(Parse('event)" href="', '" target="_blank">', Str)); for i:=memo3.Lines.count-1 downto 0 do if Copy(Memo3.Lines.Strings[i],1,4)<>'http' then begin memo3.lines.Delete(i); end; end; end;
А почему вот такое начало цикла подвисает форму и работает не совсем корректно ? Code: var i,fg:integer; begin for i:=0 to memo3.Lines.Count-1 do for fg:=0 to memo1.Lines.Count-1 do ... .. . begin Memo2.lines.add(memo1.lines[i]+memo3.lines[i]); В мемо1 содержится много cтрок и к каждой нужно прибавить все строки из мемо3 и отобразить результат в мемо2 !
Потому, что когда ваш код работает в контексте потока формы, форма не может принимать сообщения, и поэтому зависает.
А можно поправить ? А цикл работает не корректно он берёт и к каждой строке в мемо1 прибавляет строку из мемо3, а потом прибавляет вторую строку из мемо3 и тд ! А мне нужно чтобы цикл прибавлял к первой строке из мемо1 все строки мемо3 затем ко второй строке мемо1 все строки из мемо3 и тд. помогите пжл
Code: Memo2.lines.add(memo1.lines[i] + memo3.text); Думаю, так. При этом второй цикл можно отбросить.
В Delphi есть собственно TPageControl, чтобы создавать многостраничные закладки. А если вам нужно несколько окон, просто главное меню File -> New -> Form - Delphi, а там уже в настройках проекта указываете, какие окна выводить сразу, а какие нет.
Кнопки которые перекидываю c form1 на TabControl или Pagecontrol исчезают :=( и даже при компилировании их не кажет (
Code: i,fg:integer; begin if radiobutton1.checked=true then begin for fg:=0 to memo1.Lines.Count-1 do for i:=0 to memo2.Lines.Count-1 do if radiobutton2.checked=true then begin for i:=0 to memo2.Lines.Count-1 do for fg:=0 to memo1.Lines.Count-1 do Но дельфи не даст использовать так две одинаковые переменные:integer -(