Avatar billede sk-man Nybegynder
05. marts 2004 - 22:43 Der er 15 kommentarer

asp string manipulation

Jeg er i gang med at lave mig et debatforum, og vil have at man skal kunne lave qoutes. Ved at klikke på et link bliver teksten [QUOTE]1234[/QUOTE] indsat i input formularen på asp siden.

tallet mellem de to tags er et id til det debatindlæg der quotes. Hvordan scanner jeg en streng for det tal der står mellem de to tags?

Når jeg har fået teksten som qoutes til i databasen, hvordan sætter jeg den så ind mellem de to tags?

Håber i kan hjælpe
Avatar billede ellebaek Nybegynder
05. marts 2004 - 22:52 #1
<%
Function quotes(strInput)

Set objRegExpHTTP1 = New RegExp
objRegExpHTTP1.Global = True
objRegExpHTTP1.IgnoreCase = True

objRegExpHTTP1.Pattern = "(\[QUOTE])(.*?)(\[/QUOTE])"
set rs = server.createobject("adodb.connection")
rs.open str
sql = "select * from tabel where id = $2"
set rs = rs.execute(sql)
if not rs.eof
strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn"))
else
strOutput = objRegExpHTTP1.Replace(strInput, "")
end if

set objRegExpHTTP1 = Nothing
quotes = strOutput
end function
%>


Det kan muligvis gøres med denne funktion...
Så kalder du den bare

quotes(request.form("form navn"))
Avatar billede ellebaek Nybegynder
05. marts 2004 - 22:57 #2
glemte lige lidt \...

Dette burde være bedre.

<%
Function quotes(strInput)

Set objRegExpHTTP1 = New RegExp
objRegExpHTTP1.Global = True
objRegExpHTTP1.IgnoreCase = True

objRegExpHTTP1.Pattern = "\[QUOTE\](.*?)\[/QUOTE\]"
set rs = server.createobject("adodb.connection")
rs.open str
sql = "select * from tabel where id = $1"
set rs = rs.execute(sql)
if not rs.eof
strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn"))
else
strOutput = objRegExpHTTP1.Replace(strInput, "")
end if

set objRegExpHTTP1 = Nothing
quotes = strOutput
end function
%>
Avatar billede sk-man Nybegynder
05. marts 2004 - 23:05 #3
kan du forklare hvad koden går ud på?

Sådan som jeg ser det der er det en funktion der kaldes inden et nyt indlæg smides i databasen. Det jeg gerne vil have er noget i denne retning:

Inden et indlæg skrives ud køres følgende for at sætte en smiley ind:

strTekst = rs("tekst")
strTekst = Replace(strTekst, ":)","<img src='grafik/smiley_smile.gif'>")
Response.Write strTekst

Derved er feltet tekst i databasen altid ":)" og ikke hele url'en
Avatar billede ellebaek Nybegynder
05. marts 2004 - 23:09 #4
så gør du bare det samme... så kan du skrive teksten ud med...

<%
Function quotes(strInput)

Set objRegExpHTTP1 = New RegExp
objRegExpHTTP1.Global = True
objRegExpHTTP1.IgnoreCase = True

objRegExpHTTP1.Pattern = "\[QUOTE\](.*?)\[/QUOTE\]"
set rs = server.createobject("adodb.connection")
rs.open str
sql = "select * from tabel where id = $1"
set rs = rs.execute(sql)
if not rs.eof
strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn"))
else
strOutput = objRegExpHTTP1.Replace(strInput, "")
end if
rs.close
set objRegExpHTTP1 = Nothing
quotes = strOutput
end function


strTekst = rs("tekst")
strTekst = quotes(strTekst)
strTekst = Replace(strTekst, ":)","<img src='grafik/smiley_smile.gif'>")
Response.Write strTekst
%>
Koden er en funktion der finder alle forekomster af [quote] og tager teksten imellem, denne tekst skulle gerne smides i en sql, og derefter vha. en connection
og denne teksten fra databasen sættes så ind på pladsen i stedet for [quote]1234[/quote]
Husk at rette tabelnavnet samt denne feltnavnet i denne linie.. strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn"))
Avatar billede ellebaek Nybegynder
05. marts 2004 - 23:37 #5
virkede det ?
Avatar billede sk-man Nybegynder
06. marts 2004 - 10:16 #6
Jeg har ikke haft tid til at prøve det endnu. Jeg prøver det i eftermiddag.
Avatar billede sk-man Nybegynder
06. marts 2004 - 18:53 #7
Uha, jeg fik en underlig fejl...


Microsoft VBScript compilation error '800a03ea'

Syntax error

/debat2.asp, line 10

Set objRegExpHTTP1 = New RegExp
---------------------^
Avatar billede ellebaek Nybegynder
06. marts 2004 - 18:53 #8
har du fået den fejl før ?
Avatar billede ellebaek Nybegynder
06. marts 2004 - 18:58 #9
eller rettere, hvilken webserver bruger du ?
Avatar billede sk-man Nybegynder
06. marts 2004 - 18:59 #10
Nej, jeg prøver lige at sidde og rode med det. JEg har fjernet new, og så har jeg sat et then ind i then ind i if sætningen.
Avatar billede sk-man Nybegynder
06. marts 2004 - 19:01 #11
Nu har jeg "støvsuget" koden og får følgende fejl når jeg køre asp filen:

Microsoft VBScript runtime error '800a01a8'

Object required: 'RegExp'

/debat2.asp, line 10
Avatar billede sk-man Nybegynder
06. marts 2004 - 19:02 #12
Hvad er det for noget trylleri RegExp objektet lavar?
Avatar billede ellebaek Nybegynder
06. marts 2004 - 19:41 #13
regexp kører hele koden igennem hvor den leder efter elementer der matcher pattern der er defineret.
Derefter replacer den i de forekomster som den kender.

Hvilken webserver har du ?
Avatar billede sk-man Nybegynder
07. marts 2004 - 00:41 #14
Unix med ChilliASP

Men never mind. Jeg finder på en anden løsning.

Tak for hjælpen
Avatar billede ellebaek Nybegynder
07. marts 2004 - 17:17 #15
Husk at lukke her...

Men problemet er at RegExp ikke kører under ChiliASP..
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