Fórum Deletar tudo depois da quot;/quot; #328735
05/09/2006
0
o edit só vai aceitar endereço dessa maneira >
www.host.com.br
agora se o cliente digitar
www.host.com.br/intranet
eu queria que deletar tudo depois da barra ´/´
dai ia ficar
www.host.com.br
se alguem puder ajudar...
Delphitotal
Curtir tópico
+ 0Posts
06/09/2006
Raserafim
var Texto_Orig, Texto_Dest: String; S: Smallint; begin Texto_Orig := ´www.host.com.br/intranet´; for S := 0 to Length(Texto_Orig) - 1 do begin if Texto_Orig[S] <> ´/´ then begin SetLength(Texto_Dest, Length(Texto_Dest) + 1); Texto_Dest[S] := Texto_Orig[S]; end else Break; end; ShowMessage(Texto_Dest); end;
Gostei + 0
06/09/2006
Massuda
var N: Integer; S: string; ... S := ´www.seusite.com.br/algumacoisa´; N := Pos(´/´, S); if N > 0 then begin Delete(S, N, MaxInt); end; ...
Gostei + 0
06/09/2006
Marco Salles
N: Integer; S: string; begin S := ´http://www.seusite.com.br/algumacoisa´; N := Pos(´//´,S); N:=posEx(´/´,S,N+2); if N > 0 then begin Delete(S,N, MaxInt); end;
Gostei + 0
06/09/2006
Delphitotal
mais me deparei com outra coisa.. tirar a mesma coisa mais de todos os hosts de uma listbox..
tpo >
www.empresa.com/cliente1
www.empresa.com/cliente2
www.empresa.com/cliente3
www.empresa.com/cliente4
www.empresa.com/cliente5
etc..
dai ele remove tudo depois da / no ListBox .. dai ficaria >
www.empresa.com/
www.empresa.com/
www.empresa.com/
www.empresa.com/
www.empresa.com/
Gostei + 0
06/09/2006
Marco Salles
procedure TForm1.Button1Click(Sender: TObject); var N,i: Integer; S: string; begin for i:=0 to listbox1.Count - 1 do begin s:=ListBox1.Items.Strings[i]; N := Pos(´/´, S); if N > 0 then begin Delete(S,N+1, MaxInt); ListBox1.Items.Strings[i]:=S; end; end; end;
Gostei + 0
06/09/2006
Delphitotal
mais só que eu queria tudo depois da ultima / ..
o código que fizeram remove geral .. exemplo:
www.empresa.com.br/~ddbrasil/brasil/index.php
dai com o código de vcs fica >
www.empresa.com.br
eu to querendo que ele remova tudo só da última barra ..
exemplo:
www.empresa.com.br/~ddbrasil/brasil/index.php
ficaria:
www.empresa.com.br/~ddbrasil/brasil/
Gostei + 0
06/09/2006
Marco Salles
Unit : StrUtils;
var N,i: Integer; S: string; begin for i:=0 to listbox1.Count - 1 do begin s:=ListBox1.Items.Strings[i]; N := Pos(´/´,S); N:=posEx(´/´,S,N+1); if N > 0 then begin Delete(S,N+1, MaxInt); ListBox1.Items.Strings[i]:=S; end; end; end;
Gostei + 0
07/09/2006
Raserafim
... var Texto_Orig, Texto_Dest: String; S: Smallint; begin Texto_Orig := ´www.host.com.br/intranet/downloads/index.html´; for S := Length(Texto_Orig) - 1 downto 0 do begin if Texto_Orig[S] = ´/´ then begin Texto_Dest := Copy(Texto_Orig, 0, S); Break; end end; ShowMessage(Texto_Dest); end;
Gostei + 0
25/10/2006
Delphitotal
Estou com outro problema ..
andei utilizando por algum tempo esses códigos que me ajudaram muito aqui no trampo ...
Estou precisando de outra ajuda ..
o código que me passaram remove de boa depois da ultima barra..
exemplo:
www.empresa.com.br/~ddbrasil/brasil/index.php
dai o código remove tudo depois da ultima barra ai fica:
www.empresa.com.br/~ddbrasil/brasil/
Certo ai tudo bem ..
mais só que por exemplo ..
vamos supor que na lista tem
www.empresa.com.br/~ddbrasil/brasil/index.php
www.empresa.com.br/index.php
www.empresa.com/intranet/dados.jsp
passando o código ficaria:
www.empresa.com.br/~ddbrasil/brasil/
www.empresa.com.br/index.php
www.empresa.com/intranet/
ou seja no segundo link:
www.empresa.com.br/index.php
o index.php não foi removido porque será? sendo que remove tudo depois da ultima / ..
era pra ficar
www.empresa.com.br/~ddbrasil/brasil/
www.empresa.com.br/
www.empresa.com/intranet/
alguém pode ajudar?
Gostei + 0
25/10/2006
Marco Salles
var Np,N,i: Integer; S: string; begin for i:=0 to listbox1.Count - 1 do begin s:=ListBox1.Items.Strings[i]; N := Pos(´/´,S); while N > 0 DO begin NP:=N; N:=posEx(´/´,S,N+1); end; Delete(S,NP+1, MaxInt); ListBox1.Items.Strings[i]:=S; end;
Gostei + 0
25/10/2006
Delphitotal
Vlw! realmente era isso que eu precisava ..
Obrigado..
Gostei + 0
02/05/2007
Delphitotal
Outro probleminha ... :cry:
Estou utilizando esse código em um software de bloqueio que desenvolvi .. onde a pessoa coloca o dominio que vai ser bloqueado ou o subdir que vai ser bloqueado etc..
Páginas com o endereço assim:
www.site.com.br/intranet.php?inc=operador/
passando o código teria que ficar
www.site.com.br/
outras assim
www.site.com.br/produtos.php?categoria=productos/sp/fornece/
Passando o código teria que ficar:
www.site.com.br/
acho que filtrando isso o código estaria 100¬ perfeito (completo)
Gostei + 0
03/05/2007
Marco Salles
Gostei + 0
03/05/2007
Delphitotal
Funcionou perfeito mais não filtra quando o site é assim:
http://www.site.com.br/index.php?pagina=3512-software/plugin/
http://www.site.com.br/index.php?pagina=destaques/
http://www.site.com.br/index.php?pagina=conteudo/
Gostei + 0
04/05/2007
Marco Salles
eu acho que é porque nessas strings , tem espaços vazios no fim;
alem disso apareceu um novo diferencial a sequencia de strings
http://
então devemos mudar um pouco o codigo e tb a logica
var Np,N,i: Integer; S: string; begin for i:=0 to listbox1.Count - 1 do begin s:=ListBox1.Items.Strings[i]; Np:=Length(S); //retira espaços vazios no Fim //ps não confunda while S[Np]=´ ´ do com while S[Np]=´´ do while S[Np]=´ ´ do Np:=Np-1; s:=copy(s,1,Np); //elimina o ´/´ no Fim da String se Houver if S[Np] = ´/´ then Delete(S,Np,1); //efetua o Filtro normalmente... N := Pos(´/´,S); while N > 0 DO begin NP:=N; N:=posEx(´/´,S,N+1); end; Delete(S,NP+1, MaxInt); ListBox1.Items.Strings[i]:=S; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)