Ĺ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
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.