Avatar billede ger2001 Novice
19. april 2005 - 11:39 Der 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 |
Avatar billede mikkelk Nybegynder
19. april 2005 - 12:13 #1
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
Avatar billede mikkelk Nybegynder
19. april 2005 - 12:14 #2
Eller har jeg misforstået noget? :-)
Det har jeg muligvis.
Hvad indeholder feltet rs2("url")? Et filnavn? eller flere filnavne?
Avatar billede ger2001 Novice
19. april 2005 - 12:19 #3
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??
Avatar billede mikkelk Nybegynder
19. april 2005 - 12:37 #4
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
Avatar billede mikkelk Nybegynder
19. april 2005 - 12:38 #5
hov :-)
Function removePath(sFile)
    Set reg = New RegExp
    reg.Pattern = "\/.*\/"
    reg.IgnoreCase = True
    removePath = reg.Replace(sFile, "")
End Function
Avatar billede mikkelk Nybegynder
19. april 2005 - 12:38 #6
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>"
Avatar billede mikkelk Nybegynder
19. april 2005 - 12:41 #7
Og det var jo et svar :-) Håber du kan bruge det.
Avatar billede ger2001 Novice
19. april 2005 - 12:47 #8
Ja det er vi vel ;-)
Skal det bare sættes ind???
for hvis jeg gør det får jeg denne fejl
Microsoft VBScript compilation error '800a03ea'

Syntax error

/soeg_formular.asp, line 100

Function removePath(sFile)
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:01 #9
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
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:03 #10
Tjek evt. hvilken VBScript version du benytter med:
<%
Response.Write "<tr><td colspan=2><hr></td></tr>"
Response.Write "<tr><td>Scripting Engine</td>"
Response.Write "<td><b>" & ScriptEngine() & "</b></td></tr>"
Response.Write "<tr><td>Majorversion</td>"
Response.Write "<td><b>" & ScriptEngineMajorVersion() & "</b></td></tr>"
Response.Write "<tr><td>Minorversion</td>"
Response.Write "<td><b>" & ScriptEngineMinorVersion() & "</b></td></tr>"
Response.Write "<tr><td>Buildversion</td>"
Response.Write "<td><b>" & ScriptEngineBuildVersion() & "</b></td></tr>"
%>
Avatar billede ger2001 Novice
19. april 2005 - 13:03 #11
Det samme
Microsoft VBScript compilation error '800a03ea'

Syntax error

/soeg_formular.asp, line 99

Private Function removePath(sFile)
Avatar billede ger2001 Novice
19. april 2005 - 13:04 #12
Scripting EngineVBScript
Majorversion5
Minorversion6
Buildversion7426
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:04 #13
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.
Avatar billede ger2001 Novice
19. april 2005 - 13:05 #14
har egen server. Mangler jeg at installere/uploade noget????
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:07 #15
Mærkeligt...
Prøv følgende:

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>"
Avatar billede ger2001 Novice
19. april 2005 - 13:10 #16
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...
Avatar billede ger2001 Novice
19. april 2005 - 13:10 #17
skal jeg poste hele koden???ville det hjælpe??
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:15 #18
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(_)
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:19 #19
Det jeg benytter er de såkaldte regular expression som er en effektiv metode til at søge og erstatte i en tekststreng - du kan læse mere om dem her: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnclinic/html/scripting051099.asp
Avatar billede ger2001 Novice
19. april 2005 - 13:23 #20
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
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:32 #21
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>"
Avatar billede ger2001 Novice
19. april 2005 - 13:34 #22
Ok tusind tak. det virker rættig fint
Avatar billede mikkelk Nybegynder
19. april 2005 - 13:36 #23
Var så lidt
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