[VB2008] Bepaalde tekst in een HTML-document weergeven?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil graag weten hoe ik bepaalde tekst uit een HTML-document haal in Visual Basic 2008. Nu heb ik MSDN al geraadpleegd, en heb ik een volgende oplossing gevonden om alvast de tekst op te zoeken die ik nodig heb;
code:
1
WebBrowser1.DocumentText.Contains("#BEPAALDE TEKST#")


Nu wil ik graag weten hoe ik die tekst in een MessageBox krijg. Daarnaast zit ik nog met het probleem dat het om een bepaalde tekst gaat die ook nog wat random characters bevat. 8)7
De ene keer staat er: "Tekst 3/4" en de andere keer staat er "Tekst 5/1" etc. etc.

Hoe krijg ik al die informatie in een nette MessageBox? :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Iemand?

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:59

TeeDee

CQB 241

C#:
1
2
3
4
if(WebBrowser1.DocumentText.Contains("#BEPAALDE TEKST#"))
{
     MessageBox.Show("BEPAALDE TEKST#");
}


Met de rest kan ik niks. Leg het eens duidelijker uit.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De ene keer krijg ik op de webpagina te zien File 344. De andere keer weer File 614.
Nu wil ik wel zien om welk bestand het gaat, dus moeten de nummers ook in de messagebox komen.

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:59

TeeDee

CQB 241

Dan zal je niet met DocumentText.Contains aan de slag moeten.
Je zal de bewuste pagina binnen moeten halen. Vervolgens naar het bewuste patroon zoeken. Bijvoorbeeld met een Regular Expression of iets van een Char based parser. Je zal in ieder geval meer moeten doen dan alleen even met Document.Contains kijken of die tekst er is.

Pseudo:
C#:
1
2
3
4
5
WebClient client=new WebClient();
string document = client.DownloadString("http://www.domein.nl");
string toSearch = "File";
int StartPosition = document.IndexOf(toSearch);
string result = document.SubString(StartPosition, StartPosition+4);

Maar goed, dit gaat helemaal de mist in mochten er meer stukken tekst als "File" in de bron voorkomen. Anders geef je de url, dan kan er gerichter naar een oplossing gezocht worden.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil voor mezelf een programma schrijven dat bestanden op virussen controleert, zodat ik niet telkens alle websites hoef te bezoeken!
Het gaat om de website NoVirusThanks.org. ;)

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:59

TeeDee

CQB 241

Mja, vind je het vreemd als ik er nog geen reet van snap? Ik vermoed dat je op de result page de table row "File Name: <hier je filename>" uit wilt filteren?

Je hebt het ook over 'alle websites' en geeft dan vervolgens alleen NoVirusThanks.org. Het nut ontgaat me volledig, als je immers zelf een virusscanner op je pc zet ben je er toch ook?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat was een niet bestaand voorbeeld. ;)
De tekst "Detection Rate: ** on ** (**.**%) " moet zichtbaar worden, daarbij staat een * voor een door de scanner gegenereerd getal.
Het is een zeer nuttig programma, één virusscanner houdt niet alle virussen en troep tegen!

Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Hoewel ik recent postte dat ik regular expressions liever niet gebruik, lijkt het er toch op dat dit hier een bruikbare oplossing is. Kijk hier anders eens: http://www.codeproject.com/KB/dotnet/regextutorial.aspx

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:59

TeeDee

CQB 241

Verwijderd schreef op dinsdag 20 oktober 2009 @ 00:52:
Dat was een niet bestaand voorbeeld. ;)
De tekst "Detection Rate: ** on ** (**.**%) " moet zichtbaar worden, daarbij staat een * voor een door de scanner gegenereerd getal.
Het is een zeer nuttig programma, één virusscanner houdt niet alle virussen en troep tegen!
Goede leer voor de volgende keer: volledige informatie geven :)

Dan, zoals aangegeven (in mijn 2e post of die van bigbeng), aan de slag met een Regular Expression of iets dergelijks.

Je zou trouwens eerst moeten controleren (evt. middels Document.Contains) of de tekst "Detection: " in het resultaat staat. Dit zal je wel met een loop of iets dergelijks moeten doen, omdat de pagina zichzelf refreshed om de ~25 secondes. Als dat het geval is, dan zou je daarna met bijvoorbeeld een RegEx de juiste waardes eruit moeten halen.

[ Voor 23% gewijzigd door TeeDee op 20-10-2009 13:32 ]

Heart..pumps blood.Has nothing to do with emotion! Bored

Pagina: 1