[ASP] Het vervangen van tekens in recordset door images *

Pagina: 1
Acties:

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Ik probeer het volgende te bereiken in ASP. Ik wil het standaard lettertype vervangen door een font wat uit afbeeldingen bestaat. Dus de letter a wordt a.gif, b wordt b.gif, etc.

Nou had ik zelf de volgende code verzonnen
code:
1
2
3
4
5
6
7
8
9
10
<%
tekst = (RStes.Fields.Item("bericht").Value)
tekst = Replace(tekst,"f","[img]images/f.gif>")
tekst[/img]")
tekst = Replace(tekst,"k","[img]""images/k.gif"">")
tekst[/img]")
tekst = Replace(tekst,"r","[img]""images/r.gif"">")
tekst[/img]")
response.Write tekst
%>


En dat werkt bijna goed, behalve dat de html ook vervangen wordt..
Het resultaat is te vergelijken met het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
rc="image/r.gif">c="image/e.gif">
vrc="image/r.gif">c="image/e.gif">rc="image/r.gif">rc="image/r.gif">c="imagr
c="image/r.gif">c="image/e.gif">/k.gif">oop van
wrc="image/r.gif">c="image/e.gif">bcam i drc="image/r.gif">c="image/e.gif">
rc="image/r.gif">c="image/e.gif">rc="image/r.gif">c="image/e.gif">rc="image/
r.gif">trc="image/r.gif">c="image/e.gif">
rc="image/r.gif">c="imagrc="image/r.gif">c="image/e.gif">/h.gif">rc="image/r
.gif">c="image/e.gif">lrc="image/r.gif">c=imagrc="image/r.gif">c="image/e.gi
f">/f.gif>t van dit jaarc="image/r.gif">
vrc="image/r.gif">c="image/e.gif">rc="image/r.gif">dubbrc="image/r.gif">c="i
mage/e.gif">ld. Drc="image/r.gif">c="image/e.gif">


Iemand een idee hoe ik dit tegen kan gaan?

[ Voor 30% gewijzigd door Dennis013 op 12-10-2004 11:29 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kun je al je acces problemen niet een beetje centraal in 1 topic houden? (En vergeet de taal de volgende keer niet te vermelden in de topictitel)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Ooeps. Ik bedoel ASP ipv Access!
Tiepfoutje, ik zat nog zo met dat vorige probleem in mijn hoofd wat dus wel een acces probleem was! Enkele regels verder lezen en dat was wel duidelijk geweest lijkt me?

Dit is dus geen access probleem!
Kun je svp de titel weer veranderen want dit klopt zo niet

[ Voor 40% gewijzigd door Dennis013 op 12-10-2004 11:33 ]


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Waarom sla je dit soort gui dingen op in je database?
Je zou een regular expression kunnen gebruiken die alleen f vervangt en niet f.gif bijvoorbeeld. Maar misschiend dat iets als een string tokenizer handiger is.
code:
1
2
3
4
5
6
7
foreach c in text {
  if c in 'abfghe' {
    plaatje
  } else {
    tekst
  }
}

[ Voor 36% gewijzigd door Gert op 12-10-2004 11:34 ]


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Sorry, maar ik vind deze uitleg een beetje moeilijk om te begrijpen.
UIteraard waardeer ik het zeer! :) Alleen ik volg de gebruikte termen niet

[ Voor 37% gewijzigd door Dennis013 op 12-10-2004 11:42 ]


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

Haal je je HTML ook uit je database?

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
nee, het is enkel tekst die in de database staat

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:48

crisp

Devver

Pixelated

Ik zou gewoon een reguliere expressie gebruiken en /([fhkers])/ vervangen door <img src="images/$1.gif" alt="" /> ;)

Intentionally left blank


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
sorry, maar ik ben nog niet helemaal bekend met 'reguliere expressie' ik verwacht dat het een soort zoekterm/wildcard achtig ding is?

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 09:10
want je hebt al gezocht op regular expressions?

url: http://www.aspfaqs.com/aspfaqs/ShowCategory.asp?CatID=16

Everyday's an endless stream, of cigarettes and magazines...


Verwijderd

Waarom zou je het zo in je DB op willen slaan?

Je kunt beter op het moment dat je het naar je scherm schrijft de letters door plaatjes veranderen. Nu sla je allemaal extra informatie op die overigens ook nog eens lastig is terug te draaien zou je het weer als tekst willen opslaan.

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
jimmy, dat is precies wat ik probeer te bereiken :7

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:50

gorgi_19

Kruimeltjes zijn weer op :9

Dennis013 schreef op 13 oktober 2004 @ 09:28:
jimmy, dat is precies wat ik probeer te bereiken :7
Dan heb je aan de link van party42 voldoende :) Deze processing moet je dan alleen gebruiken in de weergave, niet bij het opslaan :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • I
  • Registratie: Augustus 2001
  • Laatst online: 14-02 15:01

I

ik was op zoek naar ongeveer het zelfde.
Met beetje zoeken op GoT vond ik dit topic.

Dit is mijn uiteindelijke code geworden.
C#:
1
2
3
4
5
6
7
8
9
static public string HighLightWords(string strMessage, string strWord)
    {
      string strExpression = "(?i:" + strWord + ")(?![^<]*>)";
      string strReplaceMent = "<SPAN class=forumHighLight>" + strWord + "</SPAN>";

      strMessage = Regex.Replace(strMessage, strExpression, strReplaceMent);

      return strMessage;
    }

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Je zou 'm toevallig niet in ASP hebben he? :P


In tegenstelling tot wat gorgi_19 beweert, ben ik er tot op heden nog niet uit gekomen. Het blijft een bijzonder frustrerend vraagstuk voor ogenschijnlijk simpel probleem. 8)7

Verwijderd

Het probleem komt doordat de vervangende tekst ook weer te vervangen tekst bevat. De tekst "img src=""images/h.gif"">" bevat zelf ook weer een "e" en een "s", en die zullen vervangen worden.

Ik denk dat dit probleem niet is op te lossen met een replace of regexp. Je kunt volgens mij beter ieder karakter stuk voor stuk afgaan, en in een nieuwe string de uitslag opslaan.

code:
1
2
3
4
5
Resultaat = ""
Bericht = RStes.Fields.Item("bericht").Value & "" ' <- zorgt ervoor dat een null een lege string wordt
for i = 1 to len(bericht)
  resultaat = resultaat & "[img]""images/"[/img]"
next

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Dennis013 schreef op 15 oktober 2004 @ 11:24:
Je zou 'm toevallig niet in ASP hebben he? :P
Ehm, ASP is geen taal... C# kun je prima gebruiken in ASP. Jij bedoelt waarschijnlijk dat je de code in VBScript wil zien...maar die is gewoon letterlijk te vertalen.

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
Public Function HighLightWords(strMessage, strWord)
      Dim strExpression, strReplaceMent

      strExpression = "(?i:" + strWord + ")(?![^<]*>)"
      strReplaceMent = "<SPAN class=forumHighLight>" + strWord + "</SPAN>"

      strMessage = Regex.Replace(strMessage, strExpression, strReplaceMent)

      HighLightWords = strMessage
End Function

Omdat ik in een goede bui ben. :P
Dennis013 schreef op 15 oktober 2004 @ 11:24:
In tegenstelling tot wat gorgi_19 beweert, ben ik er tot op heden nog niet uit gekomen. Het blijft een bijzonder frustrerend vraagstuk voor ogenschijnlijk simpel probleem. 8)7
Sorry hoor, maar als je dit met de gegeven link niet begrijpt, dan ben je of nog niet toe aan dit soort dingen, of je hebt je er gewoon niet genoeg in verdiept. In beide gevallen betekent dat: studeren, studeren, studeren. :P
Verwijderd schreef op 15 oktober 2004 @ 11:54:
Het probleem komt doordat de vervangende tekst ook weer te vervangen tekst bevat. De tekst "img src=""images/h.gif"">" bevat zelf ook weer een "e" en een "s", en die zullen vervangen worden.

Ik denk dat dit probleem niet is op te lossen met een replace of regexp. Je kunt volgens mij beter ieder karakter stuk voor stuk afgaan, en in een nieuwe string de uitslag opslaan.
Een regexp kan anders prima. Eentje zoals die van crisp hierboven werkt prima, en vervangt alles in één keer.

[ Voor 22% gewijzigd door NMe op 15-10-2004 13:15 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1