19. april 2005 - 11:39Der er
22 kommentarer og 1 løsning
splitte en tekst
Hvordan splitter jeg denne tekst så det kun er filnavnet der bliver tilbage, altså splitter den ved _ ved teksten til a href'en? set rs2 = conn.execute("select * from filer where idnummer="& rs("id")) while not rs2.eof response.write "<a href="""& rs2("url") &""">"& rs2("url") &"</a>"
eksempel på output \filer\222_16-02-05_21.JPG | \filer\222_16-02-05_22.JPG | \filer\222_16-02-05_25.JPG |
set rs2 = conn.execute("select * from filer where idnummer="& rs("id")) while not rs2.eof
filArr = split(rs2("url"), "|") for i = 0 to Ubound(filArr) if trim(filArr(i)) <> "" then response.write "<a href="""& trim(filArr(i)) &""">"& trim(filArr(i)) &"</a>" end if next
den indeholder stien fx /filer/222_16-02-05.jpg Det jeg gerne ville var at linket kun bestod af filnavnet <a href="/filer/222_16-02-05.jpg">16-02-05.jpg</a> Kan du forstå det??
Jep :-) Vi er jo nogle der skal have skåret det hele ud i pap. Denne funktion skulle gerne klare det: Function removePath() Set reg = New RegExp reg.Pattern = "\/.*\/" reg.IgnoreCase = True removePath = reg.Replace("/filer///222_16-02-05.jpg", "") End Function
Altså: Function removePath(sFile) Set reg = New RegExp reg.Pattern = "\/.*\/" reg.IgnoreCase = True removePath = reg.Replace(sFile, "") End Function set rs2 = conn.execute("select * from filer where idnummer="& rs("id")) while not rs2.eof response.write "<a href="""& rs2("url") &""">"& removePath(rs2("url")) &"</a>"
Det forstår jeg ikke. Prøv med Private Function removePath(sFile) Set reg = New RegExp reg.Pattern = "\/.*\/" reg.IgnoreCase = True reg.Global = True removePath = reg.Replace(sFile, "") End Function
Jeg kan desværre ikke selv teste direkte i ASP her, så kan ikke lige se om det burde virke, men har testet i VBA og den benytter samme object til regular expressions, så det burde være det samme.
set rs2 = conn.execute("select * from filer where idnummer="& rs("id")) Set reg = New RegExp reg.Pattern = "\/.*\/" reg.IgnoreCase = True while not rs2.eof response.write "<a href="""& rs2("url") &""">"& reg.Replace(rs2("url"), "") &"</a>"
Den skriver ingen fejl men fjerner heller ikke \filer\222_ Bare for at jeg kan forstå det ,skal man ikke sætte op hvad den skal fjerne??? og hvis det er gjort hvor gør den det...
Nu skriver du \filer\222_ - der er jo stor forskel på det og /filer/222_ Hvis det er \filer\222_ du vil have fjernet gør følgende tricket:
set rs2 = conn.execute("select * from filer where idnummer="& rs("id")) Set reg = New RegExp reg.Pattern = "\\.*\_" reg.IgnoreCase = True while not rs2.eof response.write "<a href="""& rs2("url") &""">"& reg.Replace(rs2("url"), "") &"</a>"
- det er reg.Pattern = "\\.*\_" der definerer hvad der skal fjernes. Med den jeg benytter fjerner den alt fra en backslash(\) til tegnet underscore(_)
Ok det virker men nu er filnavnet: \filer\222_16-02-05_25.JPG, det vil sige den fjerne hele filnavnet så der kun er 25.jpg tilbage. Kan den nøjes med at fjerne kun til den første underscore så filnavnet er 16-02-05_25
set rs2 = conn.execute("select * from filer where idnummer="& rs("id")) Set reg = New RegExp reg.Pattern = "\\[^\_]*\_" reg.IgnoreCase = True while not rs2.eof response.write "<a href="""& rs2("url") &""">"& reg.Replace(rs2("url"), "") &"</a>"
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.