webForumDet fria alternativet

Korta ner mening med func?

ASPur ASP

17 svar · 948 visningar · startad av jlee

Medlem sedan dec. 2002378 inlägg
Frågan#1

Vill korta ner texten i detta rs med en funktion eller nåt

<%=rs("start")%>

.
Jag vill alltså inte korta ner för långt ord - jag vill korta ner en mening till tex 50 tecken och därefter kommer resten på nästa rad.
Kanske detta går att fixa redan i sql frågan?

sql = "SELECT start FROM start ORDER BY ID DESC"
Medlem sedan dec. 19996 721 inlägg
Medlem sedan dec. 2002378 inlägg
#3

Får inte till det med den informationen. Testade denna

<%
novellText = rs("novellText") 

If Len(novellText) > 50 Then
    Response.Write Left(novellText, 50) & "..."
Else
    Response.Write novellText
End If
%>

och det andra sättet men får inte det att funka

Medlem sedan juni 2000974 inlägg
#4

Du har inte glömt att ändra ditt RS novellText till start?

<%
novellText = rs("start")

If Len(novellText) > 50 Then
Response.Write Left(novellText, 50) & "..."
Else
Response.Write novellText
End If
%>

novellText kan du ändra till något mer passande namn i ditt fall.

Medlem sedan dec. 2002378 inlägg
#5

jo jag ändrade det innan jag testade

Medlem sedan dec. 19996 721 inlägg
#6

Det vore ju lite intressant att få veta vad som inte fungerar, vad som händer eller inte händer....

Medlem sedan dec. 2002378 inlägg
#7

Den kapar inte texten och den gillar inte min function som jag har lagt till heller.

<%
texten = start(rs("start")) 

If Len(texten) > 50 Then
Response.Write Left(texten, 50) & "..."
Else
Response.Write texten
End If
%>
Medlem sedan dec. 19996 721 inlägg
#8

Kapar den inte texten? Är den verkligen längre än 50 tecken? Vad menar du med "gillar inte min function"?

Medlem sedan apr. 20031 660 inlägg
#9

HEJ!

Vad gör funktionen start, start(rs("start"))?

Medlem sedan apr. 20003 174 inlägg
#10
Function fCropText(strValue,intLength)
	If Len(trim(strValue)) > intLength Then
		fCropText = Left(strValue, intLength) &" .."
	Else
		fCropText = strValue
	End If
End Function

...

<%= fCropText(rs("start"), 50) %>
Medlem sedan dec. 2002378 inlägg
#11

Denna typ av funktion är ju vad jag letat efter men jag får felmess =(

**Microsoft VBScript runtime error '800a000d'

Type mismatch: 'fCropText'**

Testat med slutparanteser både innan ,50 och efter

<%=enter(start(fCropText(rs("start"), 50))) %>
Medlem sedan dec. 19996 721 inlägg
#12

Har du verkligen lagt in funktionen också?

Medlem sedan juli 200543 inlägg
#13

jlee, visa all din kod så man kan se hur du tänkt osv..

Medlem sedan dec. 2002378 inlägg
#14

Först databas anslutn sen--->

 <% Do While Not rs.EOF %>

              <%=enter(start(fCropText(rs("start"), 50))) %> 
              <% Rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing
%>

Har inkluderat funktionen från ett annan sida med bara funktioner - men den ser ut som den jag fick av Palle:

<%
Function fCropText(strValue,intLength)
	If Len(trim(strValue)) > intLength Then
		fCropText = Left(strValue, intLength) &" .."
	Else
		fCropText = strValue
	End If
End Function
%>

Märkligt va?!

Medlem sedan juli 200543 inlägg
#15

Hur ser dina enter och start functioner ut ?

Jag skulle köra nånting sånt här:

fCropText(enter(start(rs("start"), 50)))

Istället..

Medlem sedan dec. 2002378 inlägg
#16

Testade som du skrev men med alla står det:
Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment: 'start'

Och om jag utelämnar start och enter så blir det två punkter bara.. istället för texten.

Funktionerna:

<%
	Function enter(str)
	enter = Replace(str, vbCrLf, "<BR>" & vbCrLf)
	End function
%>
<%
Function start(strText)
  Set objRX = New Regexp  
  
  objRX.Global = True
  objRX.IgnoreCase = True
  objRX.Pattern = "start(\d+)"
 
 start = objRX.Replace(strText, "<img src=""$1.jpg"" >")
  End Function
%>
Medlem sedan dec. 19996 721 inlägg
#17

Det är inte så lyckat att kapa av texten om det finns en risk att den innehåller HTML (som start-funktionen gör). Det kan ju resultera i att man kapar mitt i en img-tagg, till exempel.

Medlem sedan jan. 2002992 inlägg
#18

vet att de finns ett mycket enkelt sätt men hittar inte kodsnutten..
Denna funkar iof också.

Text = Mid(RS("Text"),1,50)
response.write Text
134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)