Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Pegar Palavra em Codigo HTML


Fabiomiojo

Pergunta

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 para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...