Hallo, ik ben momenteel bezig met het programmeren van een simpele webbrowser, echter deze keer wil ik geen gebruik maken van een kant en klaar ocx-je
het is de bedoeling dat de HTML uit elkaar "pluk" in een array met alle "losse" stukjes
een voorbeeld van wat ik bedoel:
van de string:
"Dit is een <b> klein </b> voorbeeldje"
naar de array:
(0) = "Dit is een "
(1) = "<b>"
(2) = " klein "
(3) = "</b>"
(4) = " voorbeeldje"
hiervoor heb ik de volgende module bedacht
Dit blijkt echter niet helemaal te werken
Het gaat denk ik niet werken met de standaard Split() functie aangezien hij op meerdere punten moet splitsen
heeft iemand een idee van hoe ik dit kan aanpakken?
MvG, ThunderNet
het is de bedoeling dat de HTML uit elkaar "pluk" in een array met alle "losse" stukjes
een voorbeeld van wat ik bedoel:
van de string:
"Dit is een <b> klein </b> voorbeeldje"
naar de array:
(0) = "Dit is een "
(1) = "<b>"
(2) = " klein "
(3) = "</b>"
(4) = " voorbeeldje"
hiervoor heb ik de volgende module bedacht
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| Option Explicit Private myHTML As String Private currentPos As Long Private keywords(65535) As String Private curKey As Long 'in deze module zit een methode die keyword voor keywoord een tekst uit elkaar haalt 'dit is een ingewikkelde methode, voorbeeld: als we een string hebben met: "hallo<b>hoi!</b>doei" 'dan moet deze uit elkaar gehaald worden in hallo, <b>, hoi!, </b>, doei 'dit kan dus niet met de split methode 'dit kan stuk voor stuk opgevraagd worden, aangezien het niet intressant is 'meer dan 1 keywoord of info tegelijk uit te lezen Public Sub setHTML(html As String) myHTML = html currentPos = 0 'we gaan de html uit elkaar "pulken" en in de array zetten Dim difLength As Long Dim cPos As Long cPos = 0 curKey = 0 For cPos = 1 To Len(myHTML) + 1 If Mid(myHTML, cPos, 1) = "<" Then 'we hebben een stuk te pakken 'de tekst hiervoor stoppen we in de array, en verwijderen we van de array keywords(curKey) = Left(myHTML, cPos) curKey = curKey + 1 difLength = Len(myHTML) - Len(Right(myHTML, Len(myHTML))) myHTML = Right(myHTML, Len(myHTML) - cPos) cPos = cPos - difLength Do cPos = cPos + 1 If cPos > Len(myHTML) Then Exit Do Loop Until Mid(myHTML, cPos, 1) = ">" difLength = Len(myHTML) - Len(Right(myHTML, Len(myHTML))) keywords(curKey) = Left(myHTML, cPos) cPos = cPos - difLength curKey = curKey + 1 myHTML = Right(myHTML, Len(myHTML) - cPos) End If Next cPos End Sub Public Function getNext() As String getNext = keywords(currentPos) If currentPos > curKey Then currentPos = currentPos + 1 Else currentPos = 0 End If End Function Public Function getLength() As Long getLength = curKey End Function |
Dit blijkt echter niet helemaal te werken
Het gaat denk ik niet werken met de standaard Split() functie aangezien hij op meerdere punten moet splitsen
heeft iemand een idee van hoe ik dit kan aanpakken?
MvG, ThunderNet
Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?