/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Søger denne funktion...
Fra : Magnus


Dato : 22-03-05 15:57

Jeg har en nyhedstekst i en database

Når den hentes og vises så vil jeg have kontrolleret teksten for tegnene []
som indikere en kode som fx.

[F210] skal i teksten erstattes med: "<img src=""210.jpg"" border=""0"">"
og
[L86] med "<a href=""links.asp?id=86"">86</a>"

Bogstavet bestemmer hvilken type det er og nr. er et id-nr til at hente det
fra databasen.

Er der en der har en god ide til hvordan man laver sådan sine egne koder i
en tekst?


/Magnus





 
 
Jens Peter Rosenkvis~ (22-03-2005)
Kommentar
Fra : Jens Peter Rosenkvis~


Dato : 22-03-05 19:05

Magnus wrote:
> Er der en der har en god ide til hvordan man laver sådan sine egne koder i
> en tekst?

Jeg ved ikke lige hvordan man linker til ældre beskeder i nyhedsgruppen,
men hvis du søger efter en tråd der hedder "Lave link med [url] ved
Replace()" finder du svaret på dine problemer.
Tråden er startet 15-08-2004

terje (22-03-2005)
Kommentar
Fra : terje


Dato : 22-03-05 19:09

Magnus wrote:
> Jeg har en nyhedstekst i en database
>
> Når den hentes og vises så vil jeg have kontrolleret teksten for tegnene []
> som indikere en kode som fx.
>
> [F210] skal i teksten erstattes med: "<img src=""210.jpg"" border=""0"">"
> og
> [L86] med "<a href=""links.asp?id=86"">86</a>"
>
> Bogstavet bestemmer hvilken type det er og nr. er et id-nr til at hente det
> fra databasen.
>
> Er der en der har en god ide til hvordan man laver sådan sine egne koder i
> en tekst?

Hei Magnus.
Jeg tror dette bør deles opp i (minst) 2 operasjoner. Her er et forslag
som først sjekker om nyhetsteksten inneholder tegnene [], og deretter
erstatter dem med html tagger. Denne koden forutsetter bl. a. at tegnene
[] kun opptrer én gang, at de starter med en bokstav og avsluttes med
kun tall osv.


Dim m_sNyhetsTekst
m_sNyhetsTekst = "Dette er en test [F210] som slutter her"
'm_sNyhetsTekst = "Dette er en test [L86] som slutter her"

Response.Write ParseNyhetsTekster

'------------------------------------------------------------------------------------------------------------
' Comment:
'------------------------------------------------------------------------------------------------------------
Function ParseNyhetsTekster()
' On Error Resume Next

Dim sKode
   Dim sBokstav
   Dim sTall
   Dim sNyTekst

sKode = FinnKlammer(m_sNyhetsTekst)

   If Len(sKode) = 0 Then Exit Function

   sBokstav = UCase(Mid(sKode, 1, 1))
   sTall = Mid(sKode, 2, Len(sKode))

   Select Case sBokstav
    Case "F"
       sNyTekst = Replace(m_sNyhetsTekst, "[" & sKode & "]", "<img
src=""" & sTall & ".jpg"" border=""0"">")
      Case "L"
       sNyTekst = Replace(m_sNyhetsTekst, "[" & sKode & "]", "<a
href=""links.asp?id=" & sTall & ">" & sTall & "</a>")
    Case Else
   End Select

   ParseNyhetsTekster = sNyTekst

End Function


'------------------------------------------------------------------------------------------------------------
' Comment: Returner alle tegn mellom klammene [].
'------------------------------------------------------------------------------------------------------------
Function FinnKlammer(sNyhetsTekst)
' On Error Resume Next

   Dim iTeller1
   Dim iTeller2
   Dim iLen
   Dim sTegn
   Dim sToken
   Dim bGyldig

   iLen = Len(sNyhetsTekst)

'Vi legger inn en sjekk her for å unngå feilmeldinger i tilfelle
ingen tekst.
   If iLen = 0 Then Exit Function

'Loop igjennom hele teksten for å finn tegnet [
   For iTeller1 = 1 To iLen
    sTegn = Mid(sNyhetsTekst, iTeller1, 1)

    If sTegn = "[" Then
          'Vi fant tegnet [ og starter en ny loop for å finne avsluttende
klamme: ]
          For iTeller2 = (iTeller1 + 1) To iLen
             sTegn = Mid(sNyhetsTekst, iTeller2, 1)

             If sTegn <> "]" Then
          sToken = (sToken & sTegn)
               Else
                'Vi fant avsluttende ], setter et flagg og avslutter vår loop.
                  bGyldig = True
                Exit For
               End If

            Next

         End If

   Next

   'Her bør legges inn en kontroll for å sikre at vi har funnet det vi
tror vi fant. Tallet 4 er bare vilkårlig.
   If Len(sToken) > 4 Or Not bGyldig Then sToken = ""

FinnKlammer = sToken

End Function


Jens Gyldenkærne Cla~ (23-03-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 23-03-05 10:04

Magnus skrev:

> [F210] skal i teksten erstattes med: "<img src=""210.jpg""
> border=""0"">" og
> [L86] med "<a href=""links.asp?id=86"">86</a>"

Du skal have fat i regulære udtryk.

Function erstatBillede(tekst)
   Dim rgx
   Set rgx = New RegExp
   rgx.Pattern = "\[F(\d+)\]"
   rgx.Global = True
   rgx.IgnoreCase = True
   erstatBillede = rgx.replace(tekst, "<img src=""$1.jpg""
border=""0"">")
End Function

Function erstatLink(tekst)
   Dim rgx
   Set rgx = New RegExp
   rgx.Pattern = "\[L(\d+)\]"
   rgx.Global = True
   rgx.IgnoreCase = True
   erstatLink = rgx.replace(tekst, "<a
href=""links.asp?id=$1"">$1</a>")
End Function

(husk at rette linjeombrydningen i de to brudte linjer)

Du kan afprøve regex-erstatningerne her:
<http://gyros.dk/usenet/asp/regex.asp>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste