Toon posts:

[ASP] Het "replacen" van een string

Pagina: 1
Acties:

Verwijderd

Topicstarter
Eej,

Ik moet hier op mn werk een forum bouwen voor ons intranet.
Een collega van mij is hier reeds mee begonnen en heeft in ASP een behoorlijk aantrekkelijk forum draaien.
Enigste wat er aan ontbreekt, zijn de smileys.

Nou zijn wij alletwee Coldfusion-minded, dus we komen er even niet uit.

wat we nu hebben is
<%
string= "Hallo smiley ;) ;0"
hallo1=Replace(string, ";)", "IMAGE1.gif")
response.write hallo1
%>
Deze zal wel een smiley replacen, maar niet meerdere.
Hoe krijgen we dat voor elkaar??

bvd.

Verwijderd

Topicstarter
solly... ik bedenk me nu pas dat ik nog in W&G zat... wie wil em ff moven?

Verwijderd

Zoiets:
code:
1
2
3
4
5
6
7
8
9
<%
String = "Hallo smiley  ;0"

Do While InStr(String, ";)")
   String = Replace(String, ";)", "IMAGE1.gif")
Loop

Response.Write String
%>

Verwijderd

Topicstarter
Op maandag 05 november 2001 15:53 schreef Kyori het volgende:
Zoiets:
code:
1
2
3
4
5
6
7
8
9
<%
String = "Hallo smiley  ;0"

Do While InStr(String, ";)")
   String = Replace(String, ";)", "IMAGE1.gif")
Loop

Response.Write String
%>
nou wat ik eigenlijk bedoel is dat ik meerder combo's wil replacen door meerdere smilies...
dus : ) word :)
en ; ) word ;)

In Coldfusion heb ik het al voor elkaar,
alleen in ASP wil het nie vlotten!

  • Tom
  • Registratie: Juni 1999
  • Niet online

Tom

>> move: WS

Verwijderd

<%
string= "Hallo smiley ;0"
hallo1=Replace(string, ";)", "<img src = ""IMAGE1.gif"">")
hallo1=Replace(string, ":)", "<img src = ""IMAGE2.gif"">")
hallo1=Replace(string, ":P", "<img src = ""IMAGE3.gif"">")
response.write hallo1
%>

Verwijderd

Op maandag 05 november 2001 16:02 schreef BlaZe_8 het volgende:

nou wat ik eigenlijk bedoel is dat ik meerder combo's wil replacen door meerdere smilies...
dus : ) word :)
en ; ) word ;)

In Coldfusion heb ik het al voor elkaar,
alleen in ASP wil het nie vlotten!
Hmm. Dan maar zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<% SmileArray = ":)$;)$:($;("  'Enzovoorts
   PlaatArray = "SMILE.GIF$WINK.GIF$SAD.GIF$CRY.GIF"
   Smilies = Split(SmileArray, "$")
   Plaatje = Split(PlaatArray, "$")
   isKlaar = False
   String  = "Leuk :)"
   I     = I + 1
   Totaal  = SmileArray.Count

   Do While Not isKlaar And I < Totaal

    If InStr(1, Smilies(I), String) Then
       isKlaar = False
       String = Replace(String, Smilies(I), Plaatje(I))
    Else
       isKlaar = True
       I = I + 1
    End If

   Loop

   Response.Write String
%>

Ik heb dit niet getest, maar het principe werkt wel zo. Ik heb namelijk zelf op deze manier een ASP script gemaakt wat hyperlinks maakte van alles wat met http:// begon.

Verwijderd

Bovenste code doet precies het zelfde, (tenminste als ik je goed begrijp) en het is wat makkelijker als je er later nog het een en ander aan wilt toevoegen.

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
code:
1
2
3
4
5
6
7
Function smiley(string)
  on error resume next
  string = Replace(string,":)","<img src = 'smile.gif'>")
  string = Replace(string,";)","<img src = 'wink.gif'>")
  string = Replace(string,":(","<img src = 'mad.gif'>")
  smiley = string
End Function

Het beste is smileys te vervangen voordat je de text wegschrijft in de database, anders moet hij bij iedere view de smileys vervangen, nu maar 1x. :)

Aanroepen gaat met smiley("stukje text met smiley").

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 23:07
Je moet je regexpses global maken :)

In ASP/Jscript gaat dat ong. zo:
code:
1
var lach = /:\)/g;

maar goed das ASP icm Jscript, ik geloof dat jij ASP/VBscript gebruikt :)

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


Verwijderd

Topicstarter
Op maandag 05 november 2001 17:01 schreef Gert het volgende:
code:
1
2
3
4
5
6
7
Function smiley(string)
  on error resume next
  string = Replace(string,":)","<img src = 'smile.gif'>")
  string = Replace(string,";)","<img src = 'wink.gif'>")
  string = Replace(string,":(","<img src = 'mad.gif'>")
  smiley = string
End Function

Het beste is smileys te vervangen voordat je de text wegschrijft in de database, anders moet hij bij iedere view de smileys vervangen, nu maar 1x. :)

Aanroepen gaat met smiley("stukje text met smiley").
yeah, zover waren wij ook al :D
Deze code werkt inderdaad en draait als een zonnetje!


Thnx iedereen!

Verwijderd

Er moet wel even opgemerkt worden dat met elke Replace de hele string gekopieerd wordt. Dus als je string lang is en/of dit vaak moet gebeuren, dit veel performance kost.

Maar aan de andere kant, als dit niet zo is, dan werkt het mooi, simpel en eenvoudig ;)

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 12:17

Basszje

Reisvaap!]

Nog een opmerking :

Replace is meestal niet zo'n goede oplossing, omdat er nogal eens de neiging bestaat dat 'vage' chars aan de string worden vastgeplakt ( zoals enter codes etc ) en soms wil dan de replace niet helemaal lekker werken.

Je kan volgens mij veel beter RegExp gebruiken ( lijkt me betrouwbaarder ) .

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 14:12

Exterazzo

Qeasy

Op maandag 05 november 2001 21:27 schreef BaSSzje het volgende:
Nog een opmerking :

Replace is meestal niet zo'n goede oplossing, omdat er nogal eens de neiging bestaat dat 'vage' chars aan de string worden vastgeplakt ( zoals enter codes etc ) en soms wil dan de replace niet helemaal lekker werken.

Je kan volgens mij veel beter RegExp gebruiken ( lijkt me betrouwbaarder ) .
Geef daarover eens uitleg.

Audentia


Verwijderd

Op maandag 05 november 2001 21:39 schreef Exterazzo het volgende:

[..]

Geef daarover eens uitleg.
Zijn icon klopt in ieder geval >:)

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 12:17

Basszje

Reisvaap!]

Op maandag 05 november 2001 21:39 schreef Exterazzo het volgende:
Geef daarover eens uitleg.
Euh, soms pakt ie ze gewoon niet. Tenminste dat is mijn ervaring ( ja ik ben een prutser ja :( :P ) .

Bv als je textbox wil nogwel zoiets terugggeven (vb! ) chr(15)chr(14):)chr(14) .

Waar die chr dingetjes codes zijn voor bv returns en spaces.

Duidelijk krijg ik het niet verwoord voor de ochtend :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Op dinsdag 06 november 2001 09:53 schreef BaSSzje het volgende:
Duidelijk krijg ik het niet verwoord voor de ochtend :)
:D

Zoek ff op de problemen met regexpr's die GoT gehad heeft, zoals mailto:Dirkje@blah.nl waarbij in dit geval :D niet vervangen moet worden, maar als je 'm zo los intiept wel.
In veel gevallen gaat het trouwens wel goed hoor, in m'n ouwe guestboekje deed ik het ook gewoon met replace, en meestal replace-de het wel goed, maar soms kreeg je URL's en zo met smiley erin...

Exact expert nodig?

Pagina: 1