Fórum Duvida Capturando IP #355768
23/03/2008
0
procedure TForm1.Button1Click(Sender: TObject); var texto,resultado:String; i:integer; begin texto:=IdHTTP.Get(´http://checkip.dyndns.org´); for i:=0 to length(texto) do begin if (texto[i] in [´0´..´9´]) or (texto[i] = ´.´) then begin resultado :=resultado + texto[i]; Edit1.Text:=resultado; end; end; end; end.
eu entendo ele praticamente todo só tenho uma dúvida nessa parte aki
resultado :=resultado + texto[i];
pq ´resultado := resultado + texto[i] ´ e não ´resultado := texto[i]´ ?
dessa última maneira ´resultado := texto[i]´ ele pega somente a ultima string dá página q é ´ 2 ´ no caso o final do meu IP...queria entender o pq disso !
flw
Psyjacko
Curtir tópico
+ 0Posts
23/03/2008
Marco Salles
Pq tem que acumular no Loop ( for )
Se voce fizer somente assim :
´resultado := texto[i] ;
a variável resultado em cada inserção do Loop , tera seu conteudo apagado e substituido pelo valor de Texto[i]
o Que se faz com a instrução ´resultado := resultado + texto[i] é uma concatenação de String ... Como se fosse Somar o que tem na Variavel
resultado e acrescentar no Final de seu conteudo o valor de texto[i];
Perceba ainda que existe um erro de performace no codigo original postado por voce
a instrução : Edit1.Text:=resultado; esta dentro do Loop , quando o correto era ficar fora do Loop
var texto,resultado:String; i:integer; begin texto:=IdHTTP.Get(´http://checkip.dyndns.org´); for i:=0 to length(texto) do if (texto[i] in [´0´..´9´]) or (texto[i] = ´.´) then resultado :=resultado + texto[i]; //fora do Loop Edit1.Text:=resultado; end;
Gostei + 0
23/03/2008
Psyjacko
resultado por padrão começa como vazio certo ? No caso a cada loop naquelas condições do IF ele iria ler o conteúdo e concatenar do jeito q vc falou , a primeira concatenação iria ocorrer no ´ 1 ´ ai ele iria concatenar
seria isso ?
valeu
Gostei + 0
23/03/2008
Psyjacko
Gostei + 0
23/03/2008
Marco Salles
Citação:
sim é isto mesmo .. Ate o fim do Loop sempre selecionando pelo IF
Gostei + 0
24/03/2008
Paullsoftware
sIPServer := trim( idHttp.Get(´http://www.seusite.com.br/getíp.php´) );
simples não? eu faço assim e funciona perfeitamente!!! :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)