ďťż

Ładny brzuch

Witam,
W jaki sposób odczytać wszystkie linki (http://xxxx.xxx) w RichEdit?

Np. User wpisze 2 linki do RichEdit i po kliknięciu Buttona 1 link wpisze się do 1 edit a 2 do 2 edit....




Witam,
W jaki sposób odczytać wszystkie linki (http://xxxx.xxx) w RichEdit?

Np. User wpisze 2 linki do RichEdit i po kliknięciu Buttona 1 link wpisze się do 1 edit a 2 do 2 edit....

znajdowac wszystkie "http://" a potem szukac najblizszej spacji


znajdowac wszystkie "http://" a potem szukac najblizszej spacji Pamiętaj, że spacja może również należeć do adresu :P
Ale możesz poprostu szukać http:// (Pos'em), albo rozbić ciąg znaków na tablice, dzieląc je wg http:// ;)

@down:
szukać kolejnego http :P jak nie ma to z łebka ;)
A wogóle, to może rozsądniej byłoby dać jakiś wygodny i bezpieczny sposób wpisywania danych (tj owych adresów) ?

@Deadeye:
Wiesz, jak "dużo" osób przestrzega standardy? Ta liczba jest porażająca (i to jest najgorsze).
Użytkownik DJ_ProG edytował ten post 19 styczeń 2007, 07:26

Pamiętaj, że spacja może również należeć do adresu :P
Ale możesz poprostu szukać http:// (Pos'em), albo rozbić ciąg znaków na tablice, dzieląc je wg http:// ;)


http://wiem_ze_spacj...e_jak_nie_dodam spacji
;) jak lepiej rozpoznac koniec urla niz przez spacje? :>



spacja nie jest znakiem dozwolonym do uzytku w domenach wg. standardow, a jesli juz to jest konwenterowana na ciag %20 . mozliwosc spacji w adresie pozostaje tylko pominac, no chyba ze zmusimy usera zeby sam wskazywal gdzie konczy sie adres

Może przeanalizujcie taki kod:
var i : integer; s, ss : string; begin for i := 0 to Length(RichEdit1.Text) do begin if (RichEdit1.Lines.Text[i+1] <> ' ') and (RichEdit1.Lines.Text[i+1] <> #13) and (RichEdit1.Lines.Text[i+1] <> #10#13) and (RichEdit1.Lines.Text[i+1] <> #10) and (RichEdit1.Lines.Text[i+1] <> #13#10) then begin s := s + RichEdit1.Lines.Text[i+1]; end else begin if (s <> '') and ((Pos('http://', s) > 0) or (Pos('www.', s) > 0)) then begin ListBox1.Items.Add(s); s := ''; end; if (s <> '') and (Pos('img://', s) > 0) then begin ListBox2.Items.Add(s); s := ''; end; end; end; for i := 0 to ListBox1.Items.Count-1 do begin ss := ss + '<a href="'+ListBox1.Items[i]+'" Target="_blank">'+ListBox1.Items[i]+'</a>'; Memo1.Lines.Add(ss); ss := ''; end; for i := 0 to ListBox2.Items.Count-1 do begin ss := ss + '<img src="'+ListBox2.Items[i]+'" />'; Memo1.Lines.Add(sss); ss := ''; end; end;
Wczoraj go napisalem...
Dodaje do LB1 linki z http://
a do LB2 z img://


Może przeanalizujcie taki kod:
var i : integer; s, ss : string; begin for i := 0 to Length(RichEdit1.Text) do begin if (RichEdit1.Lines.Text[i+1] <> ' ') and (RichEdit1.Lines.Text[i+1] <> #13) and (RichEdit1.Lines.Text[i+1] <> #10#13) and (RichEdit1.Lines.Text[i+1] <> #10) and (RichEdit1.Lines.Text[i+1] <> #13#10) then begin s := s + RichEdit1.Lines.Text[i+1]; end else begin if (s <> '') and ((Pos('http://', s) > 0) or (Pos('www.', s) > 0)) then begin ListBox1.Items.Add(s); s := ''; end; if (s <> '') and (Pos('img://', s) > 0) then begin ListBox2.Items.Add(s); s := ''; end; end; end; for i := 0 to ListBox1.Items.Count-1 do begin ss := ss + '<a href="'+ListBox1.Items[i]+'" Target="_blank">'+ListBox1.Items[i]+'</a>'; Memo1.Lines.Add(ss); ss := ''; end; for i := 0 to ListBox2.Items.Count-1 do begin ss := ss + '<img src="'+ListBox2.Items[i]+'" />'; Memo1.Lines.Add(sss); ss := ''; end; end;
Wczoraj go napisalem...
Dodaje do LB1 linki z http://
a do LB2 z img://

Co ma ten kod do twego pytania????

ten kod wyciąga hiperłącza itd. ale jeśli tekst jest taki
xxx http://www.x.pl
to do LB1 Zostanie wpisany taki Item
xxxhttp://www.x.pl

Gdy tekst będzie taki
http://www.x.pl xxx
Wszystko jest Ok.

@EdIT: Skupiam się głównie na otrzymaniu listy hiperłączy ;]
Użytkownik Pre'side edytował ten post 19 styczeń 2007, 10:25

ten kod wyciąga hiperłącza itd. ale jeśli tekst jest taki
Ten kod nic ci nie wyciąga.

....
else
begin
if (s <> '') and ((Pos('http://', s) > 0) or (Pos('www.', s) > 0)) then
begin
ListBox1.Items.Add(s);
s := '';
end;
....

a gdzie jest zdeklarowana zmienna S? jak możesz sprawdzać czy S <> '' jak nic nie ma dla niej przypisane


a gdzie jest zdeklarowana zmienna S? jak możesz sprawdzać czy S <> '' jak nic nie ma dla niej przypisane
1) s, ss : string;
2) s := s + RichEdit1.Lines.Text[i+1];


2) s := s + RichEdit1.Lines.Text[i+1];
To przypisanie nie dotyczy else. Luknij na kod.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •