Avatar billede musti776 Nybegynder
23. oktober 2003 - 19:38 Der er 22 kommentarer og
2 løsninger

maks. ord eller tegn skal vises

Hej.

Jeg har en side hvor jeg viser de sidste 5 nyheder og jeg vil gerne have det sådan at siden kun fungere som intro side hvor man kan se intro af nyhederne, f.eks 15 ord af hele nyheden, så skal man klikke på den for at læse det hele.

Kan i fortælle mig mig hvordan jeg definere sådan en "maks ord funktion" på min nyheds side?

Musti
Avatar billede fun22 Nybegynder
23. oktober 2003 - 19:40 #1
<%= left(rs("Kolonne"),ANTAL ORD)%>
Avatar billede musti776 Nybegynder
23. oktober 2003 - 19:42 #2
Nu har jeg denne her, hvordan ændre jeg den?
<%=(Recordset1.Fields.Item("tekst").Value)%>
Avatar billede medions Nybegynder
23. oktober 2003 - 19:42 #3
Fx.

<%
  arrTxt = Split(objRs("feltnavn"), " ")

  For i = LBound(arrTxt) To UBound(arrTxt)
    strTxt = strTxt & " " & arrTxt(i)
  Next

  Response.Write(strTxt)
%>

//>Rune
Avatar billede medions Nybegynder
23. oktober 2003 - 19:43 #4
<%
  arrTxt = Split(Recordset1.Fields.Item("tekst").Value, " ")

  For i = LBound(arrTxt) To UBound(arrTxt)
    strTxt = strTxt & " " & arrTxt(i)
  Next

  Response.Write(strTxt)
%>

//>Rune
Avatar billede fun22 Nybegynder
23. oktober 2003 - 19:44 #5
<%= left(Recordset1("tekst"),150)%>

150 = antal tegn der skal vises
Avatar billede musti776 Nybegynder
23. oktober 2003 - 19:45 #6
medions>>undskyld hvis det lyder dumt men hvor definere jeg "maks antal ord" ?
Avatar billede medions Nybegynder
23. oktober 2003 - 19:45 #7
Fun22> Læs nu hvad han spørger om, det er HELE ORD han vil ha', ikke kun 15 tegn!!

//>Rune
Avatar billede soes Nybegynder
23. oktober 2003 - 19:45 #8
du kan måske lave noget i denne stil.

Function cutNews(strIn, words)
arr = split(strIn, " ")
for i = 0 To words - 1
  strOut = strOut & arr(i) & " "
next
cutNews = strOut
End Function

du kalder så function sådan her:
her vil jeg gerne have min nyhed <%= cutNews(Recordset1.Fields.Item("tekst").Value, 5)%>
Avatar billede medions Nybegynder
23. oktober 2003 - 19:46 #9
Hov, undskyld, det er her:

<%
  intMax = 15
  arrTxt = Split(Recordset1.Fields.Item("tekst").Value, " ")

  For i = LBound(arrTxt) To intMax
    strTxt = strTxt & " " & arrTxt(i)
  Next

  Response.Write(strTxt)
%>

//>Rune
Avatar billede fun22 Nybegynder
23. oktober 2003 - 19:49 #10
medions> så kan han jo skrive 200 tegn, eller hvor manger der skal til 15 ord.
Avatar billede netro Nybegynder
23. oktober 2003 - 19:53 #11
Det er åbenlyst også det, der er spørgers hensigt!
Avatar billede soes Nybegynder
23. oktober 2003 - 19:57 #12
Function cutNews(strIn, words)
arr = split(strIn, " ")
for i = 0 To (words - 1)
  strOut = strOut & arr(i) & " "
next
cutNews = strOut
End Function
Avatar billede medions Nybegynder
23. oktober 2003 - 20:00 #13
netro> Hvad mener du?

fun22> Hvis nu det er en forskellig tekst der er der, så kan du jo aldrig vide hvor mange tegn 15 ord indeholder!

//>Rune
Avatar billede fun22 Nybegynder
23. oktober 2003 - 20:03 #14
nej, men om det er lige 15 ord eller 14 et halvt...

Så kan han jo bare sætte '... læs mere' efter, og lave det til et link.
Avatar billede fun22 Nybegynder
23. oktober 2003 - 20:03 #15
men nok om det. Nu gider jeg ikke diskutere det mere, da det jo er op til musti776 at vælge...
Avatar billede musti776 Nybegynder
23. oktober 2003 - 20:05 #16
medions jeg får denne fejl
Error Type:
Microsoft VBScript runtime (0x800A0009)
Subscript out of range: 'i'
/opgave/default.asp, line 159
Avatar billede musti776 Nybegynder
23. oktober 2003 - 20:06 #17
fun22, jeg kan bruge begge to, har fået din til at virke men vil også lige have medions
Avatar billede netro Nybegynder
23. oktober 2003 - 20:08 #18
medions -> Jeg mener, at spørgsmålet er ret éntydigt, og derfor forstår jeg ikke, hvorfor fun22 bliver ved med at fable om tegn i stedet for ord.
Avatar billede medions Nybegynder
23. oktober 2003 - 20:11 #19
Det er fordi der er mindre end 15 ord i den streng der kom ud...

Så skal du gøre sådan her:

  intMax = 15
  strTxt = "Dette er en test hvor jeg tester et par ord eller to"
  arrTxt = Split(strTxt, " ")
 
  If UBound(arrTxt) <= 15 Then
        For i = LBound(arrTxt) To UBound(arrTxt)
            strTxt = strTxt & " " & arrTxt(i)
        Next
  Else
        For i = LBound(arrTxt) To intMax
            strTxt = strTxt & " " & arrTxt(i)
        Next
  End If

  Response.Write(strTxt)

//>Rune
Avatar billede medions Nybegynder
23. oktober 2003 - 20:11 #20
netro> Ahh okay, jeg skulle lige se hører hvem din kommentar var til ;o)

//>Rune
Avatar billede medions Nybegynder
23. oktober 2003 - 20:12 #21
Altså alt i alt sådan her:

  intMax = 15
  strTxt = Recordset1.Fields.Item("tekst").Value
  arrTxt = Split(strTxt, " ")
 
  If UBound(arrTxt) <= 15 Then
        For i = LBound(arrTxt) To UBound(arrTxt)
            strTxt = strTxt & " " & arrTxt(i)
        Next
  Else
        For i = LBound(arrTxt) To intMax
            strTxt = strTxt & " " & arrTxt(i)
        Next
  End If

  Response.Write(strTxt)

//>Rune
Avatar billede thb Nybegynder
23. oktober 2003 - 20:16 #22
medions > Jeg fatter ikke at du skriver: "Læs nu hvad han spørger om, det er HELE ORD han vil ha', ikke kun 15 tegn!!"

Prøv engang at læs overskriftet på dette spm.(maks. ord eller tegn skal vises), før du slynger skøre ting ud.

Thomas
Avatar billede netro Nybegynder
23. oktober 2003 - 20:25 #23
For mig at se er det underordnet, da vi er nødt til at splitte strengen op ord for ord, for at undgå halve ord i slutningen. Af samme grund kan vi ikke nøjes med en Left(x, n).
Avatar billede musti776 Nybegynder
23. oktober 2003 - 20:26 #24
nu virker det

jeg takker mange gange :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester