webForumDet fria alternativet

Ta bort del av textsträng

ASP

12 svar · 298 visningar · startad av Method

Medlem sedan apr. 2001357 inlägg
Frågan#1

Istället för att försöka förklara mitt önskemål ger jag ett exempel med en gång.
Om jag exempelvis har textsträngen "h218n2fls31o920.telia.com" vill jag ta bort det som är innan första punkten i strängen. DVS i detta fallet "h218n2fls31o920." och sedan spara "telia.com" till databasen.

Skall vara till en besöksräknare om någon redan har en färdig funktion för detta mottas denna med tacksamhet.

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

Medlem sedan mars 20007 896 inlägg
#2
Function CutIt ( ByVal strHost )
    Dim arrHost, strResult

    arrHost = Split ( strHost, "." )
    strResult = arrHost ( 1 ) & "." & arrHost ( 2 )
    CutIt = strResult
End Function

:q

Man kan ju göra på flera sätt, t.ex. ta ut positionen för första punkten och räkna efter den.

------------------
SPiN, bjorne.w@telia.com

-- En ask vet jag stånda - den Yggdrasil heter, ett väldigt träd överöst av vita sanden. --

Medlem sedan apr. 2001357 inlägg
#3

Får det inte att funka riktigt.

Har följande kod som jag ska använda:

sub get20
Dim DNS
   Dim A
Set DNS = Server.CreateObject("ASPDNS.DNSLookup")

  strSQL = "Select top 60 dtm, ip, klient, referer from logg order by dtm desc"
  set objRs = objConn.execute(strSQL)

  response.write "<table border='1' cellspacing='0' cellpadding='1'><tr><td class='text'><b>Datum</b></td>" &_
    "<td class='text'><b>Ipnummer</b></td><td class='text'><b>Klientinfo</b></td><td class='text'><b>Kom ifrån...</b></td></tr>"
  do until objRs.eof
A = DNS.GetNameFromIP( objRs( "ip" ) )

    response.write "<tr><td class='smal_text'>" & formatdatetime( objRs( "dtm" ), 0) & "</td><td class='smal_text'><a href=http://" & objRs( "ip" ) &_
      ">" & objRs( "ip" ) &"</a></td><td class='smal_text'>"& A &"</td><td class='smal_text'>" & objRs( "klient" ) & "</td><td class='smal_text'><a href=" & objRs( "referer" ) & " target=blank>" & objRs( "referer" ) & "</a>&nbsp;</td></tr>"

objRs.movenext
  loop
  response.write "</table>"
  set objRs = nothing
end sub

Set DNS = Nothing

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

Medlem sedan dec. 19995 874 inlägg
#4

Kan det vara såhär du menar?

sub get20
Dim DNS
Dim A
Set DNS = Server.CreateObject("ASPDNS.DNSLookup")
strSQL = "Select top 60 dtm, ip, klient, referer from logg order by dtm desc"
set objRs = objConn.execute(strSQL)

response.write "<table border='1' cellspacing='0' cellpadding='1'><tr><td class='text'><b>Datum</b></td>" &_
"<td class='text'><b>Ipnummer</b></td><td class='text'><b>Klientinfo</b></td><td class='text'><b>Kom ifrån...</b></td></tr>"
do until objRs.eof
CutIt(A) = DNS.GetNameFromIP( objRs( "ip" ) )

response.write "<tr><td class='smal_text'>" & formatdatetime( objRs( "dtm" ), 0) & "</td><td class='smal_text'><a href=http://" & objRs( "ip" ) &_
">" & objRs( "ip" ) &"</a></td><td class='smal_text'>"& A &"</td><td class='smal_text'>" & objRs( "klient" ) & "</td><td class='smal_text'><a href=" & objRs( "referer" ) & " target=blank>" & objRs( "referer" ) & "</a> </td></tr>"

objRs.movenext
loop
response.write "</table>"
set objRs = nothing
end sub

Set DNS = Nothing

------------------
Mvh
Patrik aka Brimba

Medlem sedan mars 20007 896 inlägg
#5

Den här raden:

CutIt(A) = DNS.GetNameFromIP( objRs( "ip" ) )

Borde se ut så här:

A = CutIt ( DNS.GetNameFromIP ( objRs ( "ip" ) ) )

------------------
SPiN, bjorne.w@telia.com

-- En ask vet jag stånda - den Yggdrasil heter, ett väldigt träd överöst av vita sanden. --

Medlem sedan dec. 19995 874 inlägg
#6

LOL!!!!!!!!!!!!!!!!!!!

------------------
Mvh
Patrik aka Brimba

Medlem sedan dec. 19995 874 inlägg
#7

Såhär skall det alltså vara, med funktion inbakad och allt :)

Function CutIt ( ByVal strHost )
    Dim arrHost, strResult
    arrHost = Split ( strHost, "." )
    strResult = arrHost ( 1 ) & "." & arrHost ( 2 )
    CutIt = strResult
End Function

sub get20
Dim DNS
Dim A
Set DNS = Server.CreateObject("ASPDNS.DNSLookup")
strSQL = "Select top 60 dtm, ip, klient, referer from logg order by dtm desc"
set objRs = objConn.execute(strSQL)
response.write "<table border='1' cellspacing='0' cellpadding='1'><tr><td class='text'><b>Datum</b></td>" &_
"<td class='text'><b>Ipnummer</b></td><td class='text'><b>Klientinfo</b></td><td class='text'><b>Kom ifrån...</b></td></tr>"
do until objRs.eof
A = CutIt(DNS.GetNameFromIP( objRs( "ip" ) ))

response.write "<tr><td class='smal_text'>" & formatdatetime( objRs( "dtm" ), 0) & "</td><td class='smal_text'><a href=http://" & objRs( "ip" ) &_
">" & objRs( "ip" ) &"</a></td><td class='smal_text'>"& A &"</td><td class='smal_text'>" & objRs( "klient" ) & "</td><td class='smal_text'><a href=" & objRs( "referer" ) & " target=blank>" & objRs( "referer" ) & "</a> </td></tr>"

objRs.movenext
loop
response.write "</table>"
set objRs = nothing
end sub

Set DNS = Nothing

------------------
Mvh
Patrik aka Brimba

Medlem sedan apr. 2001357 inlägg
#8

OK jag vet inte vem som har rätt men kör jag Brimbas kod får jag följande fel
Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 1]'

/exclude/stats/Default.asp, line 16

Rad 16 är följande:

strResult = arrHost ( 1 ) & "." & arrHost ( 2 )

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

Medlem sedan dec. 19995 874 inlägg
#9

Ok, såhär är det.

På det objektet du får ut "h218n2fls31o920.telia.com", skall du köra funktionen CutIt().

Nu gissade jag på att det var DNS.GetNameFromIP( objRs( "ip" ) ), men det kan mycket väl vara fel.

------------------
Mvh
Patrik aka Brimba

Medlem sedan dec. 200012 464 inlägg
#10

Då ser det ut som om den sträng du skickar till funktionen inte innehåller några punkter.
Vad vill du ha tillbaka i det fallet?

Vad skall hända om strängen innehåller mer än 2 punkter?

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 2001357 inlägg
#11

OK sorry mitt fel
Först har jag ip:t, sen gör jag en reverse lookup, då är det inte säkert att den hittar något domännamn och då skriver den en sträng utan punkter att det inte fanns ett domännamn.
På LarsG:s fråga den ska bara klippa tom första punkten
Exempel "www.sth.bdab.nu" skall bli "sth.bdab.nu"
Jag vet jag är lite jobbig

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

[Redigerat av Method den 16 dec 2001]

Medlem sedan dec. 200012 464 inlägg
#12

Då är det väl enklast att skriva så här

Function CutIt ( ByVal strHost )
CutIt = mid(strHost,instr(strHost,".")+1)
End Function

och då är det knappt någon ide att göra en egen funktion av det.

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 2001357 inlägg
#13

Funkar bra nu thx

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)