Jag hade gjort så här (finns kanske en bättre lösning):
Lägg in samtliga ord i en sträng.
Lägg in dem i en array genom att dela vid alla mellanslag ("").
Skriv sedan ut de tre hundra första värdena i arrayen.
Lägg till tre punkter.
:)
6 svar · 323 visningar · startad av SPinckney
Hejsan,
Hur slänger man ut 300 ord ur ett fält som innehåller tex en nyhet?
Jag vill alltså ha ut 300 ord på första sidan sen en läsmer knapp där man kan se hela nyheten. Men också att hela sista ordet ska följa med så den inte avbryter mitt i ett ord?
Jag hade gjort så här (finns kanske en bättre lösning):
Lägg in samtliga ord i en sträng.
Lägg in dem i en array genom att dela vid alla mellanslag ("").
Skriv sedan ut de tre hundra första värdena i arrayen.
Lägg till tre punkter.
:)
Hmm, detta kanske inte är så optimerat.
Dim arrWords, x, strText
arrWords = Split(RecSet("news"), " ")
x = 0
For Each word In arrWords
strText = strText & word & " "
x = x + 1
If x = 300 Then Exit For
Next
Response.Write strText
r) ändrade koden
Man tackar
Vet inte om detta är en Oracle lösning, men annars kan du skriva
select substr(table.field, 0, 300) as tjoho
0:an symboliserar att du startar på pos 0 och 300 att du slutar på 300... En substr(table.field, 100, 400) as tjoho ger alltså tecken 100 till 400... men som sagt, kanske oracle endast...
När jag kör den koden du skrev Gain
Dim arrWords, x, strText
arrWords = Split(RecSet("news"), " ")
x = 0
For Each word In arrWords
strText = strText & word & " "
x = x + 1
If x = 300 Then Exit For
Next
Response.Write strText
Och kör en Do Until Rs.news EOF
Så slänger den med Det första värdet i den andra posten och i den tredje posten slänger den med första och andra värdet.
TEx om jag har nyhet ett:
"Test av nyhet 1"
Sen har jag nyhet 2 som innehåller
"Test av nyhet 2"
Då blir Nyhet 2 såhär
"Test av nyhet 1 Test av nyhet 2"
och nyhet 3 blir
"Test av nyhet 1 Test av nyhet 2 Test av nyhet 3"
Jag måste alltså tömma strText varje gång den hoppar till nästa Recordset ?