[asp.net] smiley converteren

Pagina: 1
Acties:

  • Dikkie
  • Registratie: Oktober 2000
  • Laatst online: 13:23
Ik ben op dit moment bezig met een eigen forum, en nu heb ik een probleem met de smilies :(
Voordat de tekst in de database wordt gezet, worden de bekende smiley tekens omgezet naar [img]"urlvansmily.gif"[/img]. Die tekens worden ook weer uit een database gehaald en in een dataset gegooid.

de tabel heeft 2 kolommen, code en url. (code is natuurlijk de smiley code en url het adres van het smileyplaatje)

Het probleem is nu, dat alleen het allereerste smiley dat in de db voorkomt, namelijk deze: :(, pakt, en de rest niet.

Hier is de code dat van belang is:

code:
1
2
3
4
5
6
7
8
9
10
11
OleDbDataAdapter oledbsmile = new OleDbDataAdapter();
oledbsmile.SelectCommand = new OleDbCommand("SELECT * FROM smiley", myConnection);
DataSet dsSmile = new DataSet();
oledbsmile.Fill(dsSmile, "smiley");
        
DataTable dTable = dsSmile.Tables["smiley"];
DataRow[] currRows = dTable.Select();
for( int i = 0; i <= currRows.Length - 1; ++i)
{
    message = message.Replace(currRows[i][0].ToString(), currRows[i][1].ToString());
}


Zal vast wel iets onbenulligs zijn, maar ik kom er echt niet meer uit.

Eventueel kan ik het ook met een gewone array doen, maar omdat het ook mogelijk moet zijn om smileys door gebruikers toe te laten voegen, wil het via de database doen.

  • Arjan A
  • Registratie: November 2000
  • Laatst online: 12:56

Arjan A

Cenosillicafoob

Met ++i hoog je i toch al op voordat je de lus ingaaat??? Dan komt-ie dus nooit op 0.

Canon EOS | DJI M2P
Fotoblog · Mijn werk aan jouw muur


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Nee 't maakt hier helemaal niets uit of je ++i of i++ gebruikt, omdat dat het statement is dat voor elke lus uitgevoerd wordt, en het dus niet uitmaakt of i in het statement zelf al verhoogd is of niet.

offtopic:
Mag i++ / ++i ineens in VBS :?

  • Dikkie
  • Registratie: Oktober 2000
  • Laatst online: 13:23
offtopic:
Mag i++ / ++i ineens in VBS :?
Dit is C# hoor :)

  • alley
  • Registratie: Mei 2002
  • Laatst online: 18-08 20:40

alley

ahuh

Je een extra loop eromheen kunnen bouwen ('while (message.Indexof......) ') of (wat ik zou doen) de RegEx gebruiken.
Het wordt dan iets van :
C:
1
2
RegEx smile = (currRows[i][0].ToString());
message = RegEx.Replace(message, currRows[i][1].ToString());


(n.b. uit het hoofd, dus ongetest...)

I am always doing that which I can not do, in order that I may learn how to do it. (Pablo Picasso)


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Het was gisteren ook veel te laat om dat nog te kunnen zien :P

  • Dikkie
  • Registratie: Oktober 2000
  • Laatst online: 13:23
alley schreef op 12 oktober 2002 @ 08:12:
Je een extra loop eromheen kunnen bouwen ('while (message.Indexof......) ') of (wat ik zou doen) de RegEx gebruiken.
Het wordt dan iets van :
C:
1
2
RegEx smile = (currRows[i][0].ToString());
message = RegEx.Replace(message, currRows[i][1].ToString());


(n.b. uit het hoofd, dus ongetest...)
Nopes werkt niet :(

  • Dikkie
  • Registratie: Oktober 2000
  • Laatst online: 13:23
WHAAAA, sorry.
Duizend maal excuses dat ik jullie lastig heb gevallen met mijn stommiteiten (of hoe je dat ook schrijft)

Ik heb steeds een smiley gebruikt om te testen die niet in de database stond. Het werkte dus wel.


Zal wel de tijd egweest zijn :P
Pagina: 1