Toon posts:

[ASP] inkorten van teksten

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil dat teksten die ik uit een database haal niet langer dan een bepaald aantal karakters wordt. Dus als ie bijvoorbeeld langer dan 50 karakters is dat hij het dan inkort en dan er dan 2 puntjes achter zet.

Hoe moet dit? Met javascript?

Alvast bedankt voor al weet je het.

Verwijderd

Zoek en Gij zult vinden ;)

  • Mart!
  • Registratie: Februari 2000
  • Laatst online: 30-08 14:10
Met de Left functie inkorten tot 50 karakters en twee punten erachter in vbscript (asp): Left(str,50) & ".."

  • Dark
  • Registratie: September 1999
  • Laatst online: 22:58

Dark

who tweaked the light?

string=left(string,lengte-1)+"…"
vreemd
code:
1
string=left(string,lengte-1)+"…"

Verwijderd

Ik had even een vraag

Ik zit met dit zelfde probleem, maar ik weet nooit waar ik die string moet plaatsen in mijn script. Ik geef een voorbeeld


<%
db = "c:\inetpub\wwwroot\kiona.mdb"
Set conn = Server.CreateObject( "ADODB.Connection" )
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db & ";"

Dim MySQLstatement
MySQLstatement = "SELECT * FROM berichten"

Dim Myrecordset
Set Myrecordset = server.createobject ("ADODB.recordset")
Call Myrecordset.open (MySQLstatement, Conn)

%>

Nou is het de bedoeling dat uit de tabel berichten de kolom bericht gehaald wordt, en dat die tekst die eruit komt niet langer is als 20 tekens. Hoe verwerkt ik die string van hier boven dat weer in mijn asp script? Alvast bedankt.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Iets van
code:
1
Left(Myrecordset.Fields(0),10)

?

Maar dit is toch wel de basic (en moet je hier echt een topic uit 2000 voor kicken?)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Nou had het liever ook niet gedaan, maar ik kon het nergens vinden

Maar goed, nou heb ik dat, en waar moet ik het dan plaatsen? ik dacht het te snappen tot dat dit weer niet werkte..vandaar

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 25 oktober 2002 @ 23:13:
Nou had het liever ook niet gedaan, maar ik kon het nergens vinden
Nou, je hebt in ieder geval gezocht met de search.... :)
Maar kan je iets meer code posten, ook met het ophalen van gegevens. Want ik mis nog een stukje.. :) Kunnen we je hier iets concreter misschien nog helpen.

Owke.. Hier een tutorial over het ophalen van databasegegevens
http://www.asp101.com/sam...p.asp?file=database%2Easp

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

<%
db = "c:\inetpub\wwwroot\kiona.mdb"
Set conn = Server.CreateObject( "ADODB.Connection" )
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db & ";"

Dim MySQLstatement
MySQLstatement = "SELECT * FROM berichten"

Dim Myrecordset
Set Myrecordset = server.createobject ("ADODB.recordset")
Call Myrecordset.open (MySQLstatement, Conn)
%>

En dan komt in de tabel gewoon te staan

<%=myrecordset("bericht")%> en dan heb ik het bericht. Meer code heb ik niet..het is ff een begin, maar ik wilde die teksten gewoon niet langer hebben en als het kan na 20 tekens afsluiten met ..

Uhm het bericht komt wel uit de database hoor, alles doet het verder, alleen dat inkorten wil nie lukken...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Hmmm.... :)
Owke. Je moet een combinatie van Len en Left-functies.
Met Len ga je eerst de lengte bepalen; vervolgens ga je de left functie gebruiken indien deze langer is dan 20.
Dus je krijgt, in pseudo-code:
code:
1
2
3
4
5
6
Dim a
a = &quot;fdfds&quot;
If Len(a) &gt; 20 Then
    a = Left(a,20) &amp; &quot;..&quot;
End if
Response.Write a

Trouwens, je code gaat sowieso niet werken. Je moet
code:
1
&lt;%= myrecordset(&quot;bericht&quot;)%&gt;

er van maken. Immers; = staat voor Response.Write. Je output naar de browser is op dit moment niets.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

oke die code snap ik, en waar moet ik die in mijn code nou planten? want dat is het punt waar ik steeds mee zit

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 25 oktober 2002 @ 23:23:
oke die code snap ik, en waar moet ik die in mijn code nou planten? want dat is het punt waar ik steeds mee zit
Die vraag kan je zelf beantwoorden....
Je weet waar je:
code:
1
&lt;%= myrecordset(&quot;bericht&quot;)%&gt;

neerzet. myrecordset("bericht") bevat dus het bericht.<% zegt dat er een ASP script aankomt. = betekent hetzelfde als Response.Write en betekent dat er naar de browser geschreven moet worden. %> betekent dat het script eindigt.

Mijn voorbeeld zet een berichtje neer. De variabele a 'omvat' het bericht
code:
1
Response.Write a

zet het bericht op de browser neer.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

ja oke..zover was ik ook al..maar nu krijg ik de hele tijd de melding dat de tekenreeds niet goed is afgesloten.
<%
Dim a
a = "<%=myrecordset("bericht")%>"
If Len(a) > 20 Then
a = Left(a,20) & ".."
End if
Response.Write a
%>
Dus er zal nog wel iets fout zitten met de " of niet dan?!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Bijna goed....
code:
1
2
3
&lt;%
a = &quot;&lt;%=myrecordset(&quot;bericht&quot;)%&gt;&quot;
%&gt;

Hier zit de fout... Wat doe je precies? We gaan het even regel voor regel aflopen.
Regel 1: <%
Hier start een ASP Script
Regel 2: a = "<%=myrecordset("bericht")%>"
Vul variabele a met een string "<%=myrecordset("
(quotes betekent in VBScript dat je een tekst / string begint)
En dan komt er nog wat achter.. En hier kan hij niets mee. Je wilt alleen niet variabele a vullen met deze tekst, maar met de inhoud van
code:
1
myrecordset(&quot;bericht&quot;)

Om verder te gaan: je maakt de denkfout dat je 2x een scripttag gebruikt (je wilt 2x maal de <% tag). Dit is krom gezegd, maar maakt wel de gedachtengang duidelijk. Je hebt immers al gezegd dat je in ASP bezig bent (zie regel 1) Waarom wil je dan nog een keer <% gebruiken om hem te openen?

regel 3: %>
Sluit het asp-script.

Maar erhm.. Sowieso denk ik dat je binnenkort wel meerdere problemen krijgt, omdat je de basis nog niet goed beheerst. Ik kan je aanraden om eerst enkele eenvoudige tutorials door te nemen van het type
code:
1
2
3
4
5
6
&lt;%
Response.Write &quot;Hello World&quot;
Dim a
a = &quot;blaat&quot;
Response.write &quot;Hallo &quot; &amp; a
%&gt;

Daarna kan je eens kijken naar database connecties. Een goede site is onder andere www.asp101.com

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

aha...goed snap ik..maar dan kan het dus ook niet myrecordset("bericht") zijn, want dan zit je toch hiermee?

a = " myrecordset("bericht") " dan heeft ie toch ook teveel? dan ziet ie toch alleen "myrecordset(" of niet?

Nou ik snap nu wel aardig hoe dat werkt met response.write, maar ik zit nu nog alleen met de " en de ' snap je?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 25 oktober 2002 @ 23:43:
a = " myrecordset("bericht") " dan heeft ie toch ook teveel? dan ziet ie toch alleen "myrecordset(" of niet?
Ah, we zijn er bijna.... Lees het stukje van strings nog even...
Zoek eens naar het volgende verschil:

code:
1
2
3
4
5
6
7
8
9
Dim myRecordName
myRecordName = &quot;Hallo Wereld!&quot;

Dim a
a = &quot;MyrecordName&quot;
Response.Write a

a = MyRecordName
Response.Write a
Nou ik snap nu wel aardig hoe dat werkt met response.write, maar ik zit nu nog alleen met de " en de ' snap je?
Dat betwijfel, want dat mag hier namelijk geen enkel probleem spelen, maar goed.
Volledig offtopic dus (Je hebt deze oplossing NIET nodig voor dit probleem, maar om je wel enigszins nog te helpen:
Om je probleem heel simpel te illustreren:
code:
1
2
3
&lt;%
Response.Write &quot;Dit stukje &quot;&quot;is&quot;&quot; gequoted&quot;
%&gt;

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

aha nou zie ik het!! hij doet het!! he bedankt voor alle moeite!! Meestal wordt je gelijk gedumpt op een site, maar dit werkt veel beter, ik zal zeker die site van jou ff goed doornemen, begin het nu wel interesant te vinden!!! Nogmaals bedankt, en een goede nachtrust toegewenst

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 25 oktober 2002 @ 23:49:
aha nou zie ik het!! hij doet het!! he bedankt voor alle moeite!! Meestal wordt je gelijk gedumpt op een site, maar dit werkt veel beter, ik zal zeker die site van jou ff goed doornemen, begin het nu wel interesant te vinden!!! Nogmaals bedankt, en een goede nachtrust toegewenst
Nou erhm.. Het is dat je aangaf dat je gezocht had en ook enigszins dingen probeerde (en buiten dit is * gorgi_19 buitengewoon happy op dit moment..:P). Je probleem is en blijft echter wel ontzettend basaal en ik denk dat andere topics van dit niveau hier gesloten worden.

Daarom het advies: Kijk eens rustig naar een aantal tutorials; in de stickies van dit topic staan ook een aantal sites met tutorials. Niet dat we je niet willen helpen, maar je hebt er zelf gewoon veel meer aan als je de basiskennis hebt; we kunnen niet alles voor je oplossen namelijk.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1