PaceMedlem sedan juni 20019 024 inlägg Här!
WordLeft - Denna funktionen visar exempelvis de tio första orden i en sträng och lägger på tre punkter (...) om strängen är längre.
Diskussion kring fel och dylikt i denna tråden!
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
[Redigerat av Pace den 02 nov 2001]
GimboMedlem sedan dec. 20001 626 inlägg Om man vill hämt de tio första orden från en databas, hur går man till väga då??
PaceMedlem sedan juni 20019 024 inlägg De tio första orden går inte, bara de tio första bokstäverna (LEFT(fält, 10) i SQL frågan).
Men du kan ju ta ut hela texten, och sedan köra WordLeft funktionen på texten, så får du exempelvis enbart tio ord.
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
LarsGMedlem sedan dec. 200012 464 inlägg Då anropar du bara funktionen så här
response.write WordLeft(rs("NewsColumn"),10)
Om man vill få till det direkt med select så får man skriva en egen sql-funktion för det. Alla dbms har inte stöd för det (t.ex. Access och Mysql).
red: 10 var det
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 02 nov 2001]
PaceMedlem sedan juni 20019 024 inlägg En annan sak jag vill påpeka är att ni gärna kan betygsätta fler script! På så vis får ju alla en vägledning om scriptets användarfunktionalitet.
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
icaaqMedlem sedan okt. 20005 273 inlägg Perfa, precis vad jag vill ha :e
------------------
Icaaq, mannen med korven. (!)
RinaldoMedlem sedan mars 20014 214 inlägg Du får en femma av mig sörru :)
------------------
Den som inte vet att tiga vet inte att tala
cascaMedlem sedan feb. 20005 891 inlägg Är det bara jag som är dum, eller varför inte bara använda den inbyggda funktionen LEFT()? ;)
------------------
Nu undrar du kanske varför jag skrev sådär..
M@rtinMedlem sedan dec. 19992 085 inlägg För att det gäller ord och inte bokstäver ;)
------------------
//M@rtin || Peachy.nu\\
ni taLar Bra laTiN
PaceMedlem sedan juni 20019 024 inlägg
Du får en femma av mig sörru
Nää, det var inte så jag menade mig. ;) Visst uppskattar jag en femma, men betygsätt allt annat också, på så vis får vi alla vägledning! :)
Är det bara jag som är dum
Ja.
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
SkarreMedlem sedan apr. 20012 427 inlägg Kan man inte göra en liknande funktion där man kan bestämma högsta antal tecken, men om gränsen går mitt i ett ord fortsätter det till ordets slut. Jag hoppas ni förstår vad jag menar. Annars kan det bli ganska stora skillnader i texternas längd (om någon text har många långa ord).
------------------
// Skarre
LarsGMedlem sedan dec. 200012 464 inlägg function wordEnd(Str,maxLength)
wordEnd = left(str,instr(mid(str,maxLength)," ")+maxLength-1)
end function
------------------
essentitia preter non sans multiplicandum
RinaldoMedlem sedan mars 20014 214 inlägg Jag tycker scriptet är värt en femma eftersom det funkar jättebra till det de ska användas till...
------------------
Den som inte vet att tiga vet inte att tala
PercyMedlem sedan mars 2000187 inlägg Är jag den enda som inte får det att fungera?
använder mig av följande kodsnytt för att få ut texten, men jag få inte ut ett enda tecken!
<%=WordLeft(rs("content"),10)%>
men om jag använder följande kodrad fungerar det alldeles utmärkt med undantaget att den visar hela texten.
<%=rs("content")%>
någon som har någon lösning på varför den inte visar någon text? sidan genererar ej heller något felmeddelande.
tack på förhand!
PaceMedlem sedan juni 20019 024 inlägg Det måste vara någon global variabel som spökar. Hur ser resten av koden ut?
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
PercyMedlem sedan mars 2000187 inlägg koder ser ut enligt följande:
<%
Function WordLeft(strText, intNoOfWords)
Dim arrText, strippedText, I
arrText = Split(strText, " ")
If UBound(arrText) => intNoOfWords Then
For I = 0 To (intNoOfWords - 1)
If i = (intNoOfWords - 1) Then
strippedText = strippedText & arrText(i) & "..."
Else
strippedText = strippedText & arrText(i) & " "
End if
Next
Else
strippedText = strText
End If
WordLeft = strippedTextEnd
End Function
%>
<html>
<head>
<title>Nyheter</title>
</head>
<body bgcolor="#FFFFFF">
<link rel="stylesheet" href="../style1.css">
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\databas.mdb"
%>
<% If (Request.QueryString("id") = "") Then
SQLStmt = "SELECT *, Format$([time],'hh:mm') AS FormTime FROM news ORDER BY id DESC"
Set rs = Connection.Execute(SQLStmt)
%>
<table align="center" border="0" width="400">
<tr><td colspan="2"><b>Nyheter <%=Date%></b></td></tr>
<tr><td background="../images/dots.gif" height="3" width="90%" colspan="2"></td></tr>
<tr><td> </td></tr>
<%Do Until rs.EOF%>
<tr><td align="left"><b><%=rs("header")%></b> [<%=rs("datum")%> <i><%=rs("formtime")%></i>]<br><%=WordLeft(rs("content"),10)%> <b><a href="news.asp?id=<%=rs("id")%>"><b>Läs mer</b></a></td></tr><%
RS.MoveNext
Loop
RS.Close
Connection.Close
%>
<tr><td> </td></tr>
<tr><td background="../images/dots.gif" height="3" width="90%" colspan="2"></td></tr>
<tr><td colspan="2"><!--#include virtual="copyright.inc"--></td></tr>
<% Else
SQLStmt = "SELECT *, Format$([time],'hh:mm') AS FormTime FROM news WHERE id = " & Request.QueryString("id") & ""
Set RS = Connection.Execute(SQLStmt)
%>
<table align="center" border="0" width="400" cellpadding="2" cellspacing="0">
<tr><td><b><%=rs("header")%></b> <%=rs("datum")%>, <i><%=rs("formtime")%></i></td></tr>
<tr><td background="../images/dots.gif" height="3" width="90%"></td></tr>
<tr><td><%=rs("content")%></td></tr>
<tr><td> </td></tr>
<tr><td><%=rs("author")%></td></tr>
<tr><td> <br><a href="news.asp">« Tillbaka</a></td></tr>
<tr><td background="../images/dots.gif" height="3" width="90%"></td></tr>
<tr><td><!--#include virtual="copyright.inc"--></td></tr>
<%
rs.Close
Connection.Close
End If
%>
</table>
</body>
</html>
PaceMedlem sedan juni 20019 024 inlägg Du har råkat lägga till 'End' på slutet av variabeln. Det ska bara vara strippedText.
Function WordLeft(strText, intNoOfWords)
Dim arrText, strippedText, I
arrText = Split(strText, " ")
If UBound(arrText) => intNoOfWords Then
For I = 0 To (intNoOfWords - 1)
If i = (intNoOfWords - 1) Then
strippedText = strippedText & arrText(i) & "..."
Else
strippedText = strippedText & arrText(i) & " "
End if
Next
Else
strippedText = strText
End If
WordLeft = strippedText[b]End[/b]
End Function
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
PercyMedlem sedan mars 2000187 inlägg tackar så mkt för hjälpsamheten!
PaceMedlem sedan juni 20019 024 inlägg Ingen fara. ;)
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
CactuzMedlem sedan okt. 2001670 inlägg mkt användarbar o kulig grej :e :e :e