webForumDet fria alternativet
Logga in / Bli medlem

Tvinga fram radbyte

ASP

13 svar · 285 visningar · startad av Bj

Medlem sedan sep. 2000314 inlägg
Trådstart#1

Hur skall man "stoppa" de som har kul och t.ex. bara skriver en lång jäkla rad utan mellanslag i textfältet. Detta fördärvar ju utseendet på en gästbok. Jag har satt tabellen till width 500 men den fortsätter i sidled tills "ordet" tar slut.

Medlem sedan aug. 20003 575 inlägg
#2

<TextArea WRAP="Virtual"> Kanske fungerar...
eller så kan du bara ta bort de orden som är över 30 characters långa

Medlem sedan mars 20007 896 inlägg
#3
sText = "här kommer ett jääääättelångt ord"
arrText = split(sText, " ");

for i = 0 To uBound(arrText)
     if Len(arrText(i)) > 50 then
          newText = newText & " " & Left(arrText(i), 25)
          newText = newText & " " & Right(arrText(i), Len(arrText(i))-25)
     else
          newText = newText & " " & arrText(i)
     end if
next

Något sådant borde funka... Strängen med den formaterade texten finns nu i variabeln newText.

Medlem sedan dec. 2000557 inlägg
#4

Först en liten funktion:

<%
function fixatecken(str)
fixatecken = Replace(str, vbCrLf, "<BR>" & vbCrLf, 1, -1, 1)
End function
%>

Sedan plockar du ut informationen ur databasen eller formuläret:

<%=fixatecken(RecSet("FÄLT"))%>
alt.
<%=fixatecken(Request.Form("FÄLT"))%>

Lycka till! :)

Medlem sedan sep. 2000314 inlägg
#5

Jag får det inte att funka. Kanske ngn kan visa på medföljande kod.

&nbsp;&nbsp;&nbsp;&nbsp;<b><%=rsRubrik("titel")%></b></td>
    </tr>
    <tr>
      <td width="100%">Inlagt av:&nbsp;<%=rsRubrik("namn")%></td>
    </tr>
    <tr>
      <td width="100%"><% response.write(rsRubrik("mess"))%><br>
	&nbsp;&nbsp;&nbsp;&nbsp;<a href="admin/raderarubrik.asp?ID=<%=rsRubrik("rubrikID")%>"><i>Radera Ditt inlägg</i></a></td>
    </tr>
    <tr>
      <td width="100%"></td>
    </tr>
  </table>
  </center>
</div>
Medlem sedan mars 20007 896 inlägg
#6

Okey, typ nåt sånt här kanske:

<%
'### Min funktion
function doIt(textSomSkaFixas) {
     arrText = split(textSomSkaFixas, " ")
     for i = 0 To uBound(arrText)
          if Len(arrText(i)) > 50 then
               newText = newText & " " & Left(arrText(i), 25)
               newText = newText & " " & Right(arrText(i), Len(arrText(i)-25)
          else
               newText = newText & " " & arrText(i)
          end if
     next

     doIt = newText
end function

'### Fixa till det
%>
<b><%=rsRubrik("titel")%></b></td>
</tr>
<tr>
<td width="100%">Inlagt av: <%=rsRubrik("namn")%></td>
</tr>
<tr>
<td width="100%"><% =doIt(rsRubrik("mess"))%><br>
<a href="admin/raderarubrik.asp?ID=<%=rsRubrik("rubrikID")%>"><i>Radera Ditt inlägg</i></a></td>
</tr>
<tr>
<td width="100%"></td>
</tr>
</table>
</center>
</div>

Då fixas rsRubrik("mess") till, men inga andra poster. Lägg till doIt()-funktionen på de poster du vill göra nåt åt.

Medlem sedan sep. 2000314 inlägg
#7

Tack.
Men nu får jag följande fel.

Ogiltigt tecken
function doIt(textSomSkaFixas) {
-------------------------------^

Om jag tar bort det sista tecknet där blir det följande felmeddelande:

')' förväntas.
newText = newText & " " & Right(arrText(i), Len(arrText(i)-25)
--------------------------------------------------------------^

Hmmm?

Medlem sedan mars 20007 896 inlägg
#8

Hehe ooops för mycket Java i hjärnan ;)

Ta bort { och lägg till en ) på raden du får felmeddelande :)

Medlem sedan sep. 2000314 inlägg
#9

Jag gjorde allt den testen innan jag skrev sist, ;)
Jag får då detta meddelande:

Programsats förväntas.
function doIt(textSomSkaFixas) )
-------------------------------^

Medlem sedan mars 20007 896 inlägg
#10

[redigerat]Hmmm trodde jag kom på det, men det gjorde jag juh inte...
Hur som helst ska det inte vara ett ) där :)
Ta bort det genast ;)[/redigerat]

Men jag insåg just att om ett ord är längre än 75 tecken kommer ordet bara brytas efter de första 25 tecknen... Resten av ordet kommer att skrivas utan mellanslag.

Återkommer när jag löst det... Eller om nån annan kommer på någon lösning :)

Medlem sedan dec. 19998 577 inlägg
#11

Antalet ( skall ju matcha antalet )... :)

Medlem sedan mars 20007 896 inlägg
#12

Din rad verkar se ut så här:

newText = newText & " " & Right(arrText(i), Len(arrText(i)-25)

När den borde se ut så här:

newText = newText & " " & Right(arrText(i), Len(arrText(i))-25)

Medlem sedan sep. 2000314 inlägg
#13

Jajamen Spin.
Det funkar exakt som du säger! Gör man bara som man blir tillsagd så... ;)
Jepp den bryter rader vid 25 tecken för tillfället. Men det finns ju en hel del tecken att öka på denna då tabellen är på widht 550.
Vi får se om du löser den biten också. Tack så länge.

Medlem sedan jan. 2002286 inlägg
#14

knepigt

Jag kikade lite på den modulen...

Men om den långa raden är över 100, så bryter den ju vid 25. fast den raden som kommer blir ju 75..

den ska ju bryta den oxå!

375 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
118 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)