[vbs] brackets in script opnemen...

Pagina: 1
Acties:

  • jfeelders
  • Registratie: Januari 2001
  • Laatst online: 06:55

jfeelders

Kwaliteit voor kwantiteit...

Topicstarter
Ik ben bezig met het aanpassen van een VB-script om mijn positie binnen Dutch Power Cows - SETI @ home in een textfile te krijgen. Ik heb de maker van het script ook al een mailtje gestuurd maar daar krijg ik geen reactie van en zelf ben ik nieuw in VB dus dan maar hier proberen. Ik zal eerst het script even geven:
code:
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
'***************************************************************************** 
'***************************************************************************** 
'***********                                                     ************* 
'***********            Seti Position Reporter  v.10             ************* 
'***********                                                     ************* 
'***********                Made By Chris Mulligan               ************* 
'***********   <clm100@arsware.org> http://clm100.arsware.org    ************* 
'***********                                                     ************* 
'***********      This program grabs your position on a          ************* 
'***********   Seti@Home Team and outputs it for display         ************* 
'***********                 in CoolMon                          ************* 
'***********                                                     ************* 
'***************************************************************************** 
'***************************************************************************** 


Const Path = "D:\Program Files\CoolMon\seti\setiposition.txt" 
Const Account = "[DPC] jfeelders" 

Set fs = CreateObject("Scripting.FileSystemObject") 
Set outFile = fs.CreateTextFile(Path, True) 
set http = createobject("microsoft.xmlhttp") 
Http.open "GET","http://setiathome.ssl.berkeley.edu/stats/team/team_51283.html", false 
Http.send 
strng = Http.responsetext 
Dim regEx 
Dim strBlah 
Set regEx = New RegExp 
regEx.Global = True 

regEx.Pattern = "<td>(\d+)\) <*a*.*>*\n*" & Account & "\n*" 

Set Matches = regEx.Execute(strng) 

For Each Match in Matches 
outfile.write match.SubMatches(0) 'However manythat you have identified 

outFile.WriteLine 

Next 

outFile.close

Het probleem is nu dat de brackets in mijn naam niet 'erkend' worden en dus kan mijn naam niet gevonden worden en dus wordt er geen resultaat naar de textfile geschreven.
Hoe kan ik de brackets wel mee laten doen? :? Ik heb de ASCII-codes [ en ] ook al geprobeerd... Jullie enig idee?

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Ik heb er ook even mee zitten stoeien en als je zoekt op DPC] jfeelders, dus zonder de eerste [, dan werkt het wel.
Maar ik zal eens kijken of ik eruit kom.

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Dit werkt:

ASP.NET 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
Dim regEx 
Dim strBlah 
Dim Path
Const Account = "\[DPC] jfeelders" 

Set http = createobject("microsoft.xmlhttp") 
Http.open "GET","http://setiathome.ssl.berkeley.edu/stats/team/team_51283.html", false 
Http.send 
strng = Http.responsetext 

Set regEx = New RegExp 
regEx.Global = True 
regEx.Pattern = Account

Set Matches = regEx.Execute(strng) 
If Matches.Count <> 0 Then
    For Each Match in Matches
        RetStr = RetStr & "Match found at position "
      RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
      RetStr = RetStr & Match.Value & "'." & "<br>"
    Next 
Else
  RetStr = "No matches found!"
End If
Response.Write RetStr

Set Matches = Nothing
Set regEx = Nothing
Set http = Nothing

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:00

Janoz

Moderator Devschuur®

!litemod

Doe dat bij voorkeur ook bij de ]. De reden dat dit niet werkte is omdat [ een special teken is in een regexp. De backslash geeft aan dat je niet de speciale betekenis, maar gewoon het teken nodig hebt :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • jfeelders
  • Registratie: Januari 2001
  • Laatst online: 06:55

jfeelders

Kwaliteit voor kwantiteit...

Topicstarter
Ik heb het op een andere manier gevonden door de naam in de code zelf op te nemen en dan met \x5b* \x5d* (hex ASCII) de brackets te noemen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Set fs = CreateObject("Scripting.FileSystemObject") 
Set outFile = fs.CreateTextFile("D:\Program Files\CoolMon\seti\setiposition.txt", True) 
set http = createobject("microsoft.xmlhttp") 
Http.open "GET","http://setiathome.ssl.berkeley.edu/stats/team/team_51283.html", false 
Http.send 
strng = Http.responsetext 
Dim regEx 
Dim strBlah 
Set regEx = New RegExp 
regEx.Global = True 

regEx.Pattern = "<td>(\d+)\) <*a*.*>*\n*\x5b*DPC\x5d* jfeelders\n*" 

Set Matches = regEx.Execute(strng) 

For Each Match in Matches 
outfile.write match.SubMatches(0) 'However manythat you have identified 

outFile.WriteLine 

Next 

outFile.close

Dat werkt perfect! Weer een probleem opgelost... :)