Bom dia,
Eu testei os dois códigos e os dois deram certo, no primeiro, apenas tive que editar aqueles números e depois consegui obter o resultado, no segundo código eu consegui obter o resultado sem precisar editar nada.
Porem agora se eu mudar as tags de HTML que eu quero, eu já não consigo obter um resultado satisfatório, por tanto gostaria que me explica-se como que funciona.
Código:
//deixa essa função em cima da sua procedure
function RetornaLengthFim( PosicaoInicial : integer; sStr : string) : string;
var
i : integer;
stringGerada : string;
begin
stringGerada := '';
Result := '';
for i := PosicaoInicial to Length(sStr) do
begin
if not (sStr[i] = '"') then
stringGerada := stringGerada + sStr[i]
else
break;
end;
Result := stringGerada;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
sString : String;
sString2 : String;
begin
sString := IdHTTP1.Get('http://www.apostilasnaweb.com');
sString2 := Copy(sString, Pos('title=', sString)+7, Length(RetornaLengthFim(Pos('title=', sString)+7,sString)));
ShowMessage(sString2);
end;
Nesse primeiro código, pude perceber que se eu alterar os números 7 eu resgato uma nova informação, só que estou com duvida no seguinte.
De onde você tirou esse numero 7?
Que calculo você fez para chegar até o numero 7?
Código:
sString2 := Copy(sString, Pos('title=', sString)+7, Length(RetornaLengthFim(Pos('title=', sString)+7,sString)));
No código acima, o primeiro 'title=' e o inicio e o segundo 'title=' e o inicio também ou deveria ser o final do código HTML que eu quero resgatar?
************************************************** ************************************************** ************************************************** ************************************************** **************************
Código:
var
s,b: String;
sString2: String;
begin
s := IdHTTP1.Get('http://www.apostilasnaweb.com');
if pos('<a href="/index.php" title="',s) > 0 then
sString2 := copy(s,pos('<a href="/index.php" title="',s) + length('<a href="/index.php" title="'), length(s)-1);
b:= copy(sstring2,1,pos('">',sstring2)-1);
ShowMessage(b);
end;
Cara, de onde você tirou o length(s)-1);, // copy(sstring2,1,pos('">',sstring2)-1); , para que eles servem ?
Que tipo de calculo você fez para chegar ao numero -1 ?
Muito obrigado pela ajuda de vocês, estou fazendo essas perguntas apenas para aprender mesmo e finalizar esse assunto !
Abraços e bom domingo