Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Pegar Palavra em Codigo HTML


Fabiomiojo

Question

Ola a todos,

Eu estou utilizando o IDHTTP para pegar o codigo html de um site!

eu gostaria de pegar algumas informações na pagina e não estou conseguindo, axo que é por que o texto é muito grande e as chaves são repetidas!

estou usando esse codigo:

function StringBetween(const Str, Str1, Str2: String): String;

begin

Result := Copy(Str, Pos(Str1, Str) + Length(Str1), Pos(Str2, Copy(Str, Pos(Str1, Str) + Length(Str1), Length(Str))) - 1);

end;

procedure TForm1.Button1Click(Sender: TObject);

var

HTML: String;

begin

HTML := IdHTTP1.Get('http://elite-global.servegame.com/?subtopic=characters&name=' + Edit1.Text);

memo1.Text := 'Nível: ' + StringBetween(HTML, 'Level:</td><td>', '</td>');

end;

mas minha função para pegar o texto entre as tags acredito não estar funcionando muito bem!

me ajudem amigos! :blush:

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

function StringBetween(const Str, Str1, Str2: String): String;
begin
   Result := Copy(Str, Pos(Str1, Str) + Length(Str1), Pos(Str2, Copy(Str, Pos(Str1, Str) + Length(Str1), Length(Str))) - 1);
end;
voce esta passando 3 substrings em sua fnção como parametros uso correto da function Copy function Copy(S; Index, Count: Integer): string; agora vamos analizar somente esta parte do codigo
Copy(Str, Pos(Str1, Str) + Length(Str1),

imagine que para Pos(Str1, Str) foi encontrado o numero 10 e que para Length(Str1) foi encontrado o numero 15

então a posição inicial do index seria 25 e não 10 onde a posição inicial foi encontrada

é exatamente assim que voce quer ?

abraço

Link to comment
Share on other sites

  • 0

Jhonas, Analisei o que você me mandou e cosegui chegar a um codigo aqui que funcionou corretamente!

<code>

function StringBetween(const Str, Str1, Str2: String): String;

var

Inicio, Fim : String;

begin

Inicio := Copy(Str, Pos(Str1, Str) + Length(Str1));

// Pega o Texto Restante, iniciando ao final da variavel Str1;

Fim := Copy(Inicio, 0, Pos(str2,Inicio) - 1);

// Copia o Texto da posição inicial '0' até o Final, que é determinado pela posição inicial da variavel str2 menos '1' para corrigir;

Result := Fim;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

HTML: String;

begin

HTML := IdHTTP1.Get('http://elite-global.servegame.com/?subtopic=characters&name=' + Edit1.Text);

memo1.Text := 'Nível: ' + StringBetween(HTML, '>Level:</TD><TD>', '</TD></TR>');

end;

</code>

No que pesquisei, a Função Copy, pode ser determinada com 3 variaveis (texto, posição inicial, posição final);

Funcionou o codigo!

Obrigado! :lol:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...