Avatar billede websam Nybegynder
12. december 2001 - 00:15 Der er 10 kommentarer og
1 løsning

Hjælp til fejl på denne kode ???

Hejsa !

Jeg sider og er ved at lave et udtræk fra en db hvor
jeg skal lave et link om fra at være :

http://www.eksperten.dk/opretspm.phtml?id=3

Til at være :

eksperten.dk

Men jeg får fejl som ser sådan her ud :

Error Type:
Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument: \'mid\'
/Asp-Counter/Links.asp, line 88

Og det er på følgende kode den opstår :

<%
Do While Not RsTop10.EOF
Name = RsTop10(\"Referent\")

If Left(Name, 7) = \"http://\" then
  Name = mid(Name, 8)
End If

If Left(Name, 4) = \"www.\" then
  Name = mid(Name, 5)
End If

domainpos = instr(name, \"/\")
name = mid(name, 1, domainpos-1)
counter = 0
for i = 1 to len(name)

if mid(name, i, 1) = \".\" then
  counter = counter + 1
end if

next

if counter > 1 then
  domainpos = instr(name, \".\")
  name = mid(name, domainpos + 1)
end if

response.write(Name)
response.write \"<br>\"
RsTop10.MoveNext
Loop
%>

Hvor det er denne linie \"name = mid(name, 1, domainpos-1)\" der er tale om.

Håber nogen kan hjælpe mig vidre Mvh. Martin
Avatar billede brita Nybegynder
12. december 2001 - 00:20 #1
bare en tanke.... er 8 det rigtige tal i sætningen ovenover ?
Avatar billede tmceu Praktikant
12. december 2001 - 00:57 #2
Du bør lave et check på om \"/\" overhovedet indgår i din streng, da domainpos ellers vil være -1 i den linie der fejler.

Eks. if domainpos = 0 then....
Avatar billede 2cool Nybegynder
12. december 2001 - 01:25 #3
Som sådan synes jeg ikke lige det er så svært at finde fejl - eller i hvert fald uhensigtsmessigheder i ovenstående kode, men jeg ved godt hvad du mener tror jeg!

Du kalder mid(name,7) allerede til at begynde med - mid kræver tre parametre nemlig mid(tekststreng, startposition, slutposition) - hvis du vil klippe det første ud af en tekststreng skal du istedet for mid bruge left - som kan kaldes med kun to parametre nemlig left(tekststreng, tal f.eks. 8)

Men udover denne lille fejl tror jeg også du får et probleme hvis folk af underlige grunde skulle have et domainnavn som ikke har præcis samme længde som eksperten.dk    :o)

Skulle du få problemer med det senere kan jeg give et hint!!

len(streng) returnere et tal som er længden på en streng - og det tal kan du sikkert bruge i stedet for tallet 8 :o)
Avatar billede 2cool Nybegynder
12. december 2001 - 01:26 #4
ups - jeg skulle have valgt svar, eller kan jeg vist ikke få point..
Avatar billede 2cool Nybegynder
12. december 2001 - 01:29 #5
Nu skal jeg ikke blande mig, men hvad ville du gøre hvis du skulle registrere følgende adresse!

https://homebank.secure.nordea.dk

?? - det er virkelig ikke let at håndtere, med mindre man kan skrive en parser
Avatar billede tmceu Praktikant
12. december 2001 - 01:37 #6
2cool >> mid kan sagtens kaldes uden den sidste parameter, og vil i så fald returnere resten af strengen. Præcis som den vil gøre hvis du resten af strengen er kortere end længden når den bliver kaldt med længde parameteren :-)
Avatar billede 2cool Nybegynder
12. december 2001 - 01:41 #7
Hmm, du har sgu ret - det prøvede jeg nemlig lige! tmceu - det vidste jeg faktisk ikke!! Skidt at jeg lød så overbevisende før!! :o)
Avatar billede tmceu Praktikant
12. december 2001 - 01:43 #8
Vi lærer jo alle. Tro det eller lad være, men det sker heldigvis også hver dag for mig :-D
Avatar billede 2cool Nybegynder
12. december 2001 - 01:46 #9
om tmceu skriver så ville jeg nok lave følgende check.

domainpos = instr(name, \"/\")
if cint(0&domainpos)>0 then
  name = mid(name, 1, domainpos-1)
end if
Avatar billede 2cool Nybegynder
12. december 2001 - 01:47 #10
tmceu >> Ja, heldigvis - ellers ville det sgu også se lidt sort ud for mig :o)
Avatar billede tmceu Praktikant
13. december 2001 - 01:38 #11
Nåh ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester