Avatar billede dramsgaard Nybegynder
29. november 2004 - 20:31 Der er 8 kommentarer og
1 løsning

replace [x] med billede

hvordan kan jeg få den til at erstatte alle [x] i en tekst jeg trækker ud fra en DB med et billede (hvor x er et tal som svare til det billede det skal erstattes med)

f.eks:
nyhed = rs("nyhed")
billede="<img src='pic/nyheder/temp/"&rsPic("navn")&"' />"
replace(nyhed,"["&rsPic("placering")&"]",billede,1,-1,1)

det erstatter [1] med billedet der svare til "1" fra rsPic, men hvis der f.eks også er [2] og [3] i teksten , skal disse også erstattes med billeder fra rsPic der passer til disse, hvordan kan man gøre det?

håber det er til at fprstå, ellers så spørg...
Avatar billede fennec Nybegynder
30. november 2004 - 08:58 #1
Er det dette du søger efter:

MyText = "en test hvor [2] skal udskiftes [23] med noget andet [11]."
function replaceNum(funkText)
dim MyRegExp, returVal
  Set MyRegExp = New RegExp
  MyRegExp.Pattern = "\[(\d*)\]"
  MyRegExp.Global = True
  MyRegExp.IgnoreCase = True
  returVal = MyRegExp.replace(funkText, "<img src='pic/nyheder/temp/$1.jpg'/>")
  Set MyRegExp = Nothing
  replaceNum = returVal
end function
Response.write replaceNum(MyText)

Der bliver alle "[etTal]" udskiftet med et billed, med tilsvarendende nummer.
Avatar billede dramsgaard Nybegynder
30. november 2004 - 17:11 #2
hmm ja det er næsten sådan, men billedet har ikke samme navn som nummeret

nummeret mellem [] svare til et nummer i min db, som hentes med rsPic("placering"), navnet på billedet svare så til rsPic("navn")

så kan man flette en SQL ind på en måde??
"select navn, placering from Billeder where placering ="& $1

sådan så stien på billedet bliver:
<img src='pic/nyheder/temp/rsPic("navn")'/>
Avatar billede fennec Nybegynder
01. december 2004 - 08:39 #3
Så kan du ikke bruge regExp. Du bliver nød til at loope igennem databasen og finde dem som passer.

nyhed = rs("nyhed")
set rsPic = conn.execute("select * from pictures")
do while not rsPic.eof
  nyhed = replace(nyhed,"["& rsPic("placering") &"]","<img src='pic/nyheder/temp/"&rsPic("navn")&"' />")
  rsPic.MoveNext
loop
Avatar billede dramsgaard Nybegynder
01. december 2004 - 15:57 #4
hmm okay, men hvis jeg looper på den måde får jeg vel udskrevet nyheden det antal gange som den looper igennem databasen ikke??

hvordan kan man undgå det?
Avatar billede fennec Nybegynder
01. december 2004 - 16:19 #5
Nope. Du gemmer jo "nyheden" i variablen nyhed. Så looper du igennem alle billeder i databasen, og replacer i nyhed-variablen, hvorefter du udskriver. Det hele løber måske også i et loop, fordi der skal udskrives flere nyhedder. Det vil så ca se sådan ud:

set rs = conn.execute("select top 5 * from nyhedder order by dato desc")
do while not rs.eof
  response.write rs("title")
  nyhed = rs("nyhed")
  set rsPic = conn.execute("select * from pictures")
  do while not rsPic.eof
    nyhed = replace(nyhed,"["& rsPic("placering") &"]","<img src='pic/nyheder/temp/"&rsPic("navn")&"' />")
    rsPic.MoveNext
  loop
  response.write nyhed
  rs.MoveNext
loop
Avatar billede dramsgaard Nybegynder
02. december 2004 - 20:43 #6
det ser ud til at det virker, så du kan lige komme med et svar hvis du vil ha' point : )

hvad er forskellen egentlig på at bruge "do while not rsPic.eof / loop" også do "while not rsPic.eof / wend"?
Avatar billede dramsgaard Nybegynder
02. december 2004 - 20:44 #7
hov - minus "do" i den sidste : )
Avatar billede fennec Nybegynder
03. december 2004 - 08:40 #8
I dette tilfælde er der ingen forskeld på at bruge de to løkker. Do/loop løkken har bare flere muligheder for at styre gennemløbet.

Hvor while/wend syntaxen er:
While condition
  [statements]
Wend

Har do/loop syntaxen flere muligheder:
Do [{While | Until} condition]
  [statements]
  [Exit Do]
  [statements]
Loop

Do
  [statements]
  [Exit Do]
  [statements]
Loop [{While | Until} condition]
Avatar billede dramsgaard Nybegynder
03. december 2004 - 20:20 #9
okay...takker for hjælpen : )
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