Avatar billede johannielsen Nybegynder
04. november 2001 - 22:21 Der er 24 kommentarer og
3 løsninger

Lange ord smadrer min tagwall

Jeg har en hilsenside bygget op som en tagwall. når nogle skriver nogle lange ord, sådan bare for sjov, så fucker den af.

http://www.friserverplads.dk/fenderfreak/default.asp?vis=tagwall

Hvad kan man gøre for at hindre det?
Avatar billede keysersoze Ekspert
04. november 2001 - 22:23 #1
ikke noget... det kan du jo fx heller ikke på eksperten vel??

HEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJ!!!
Avatar billede medions Nybegynder
04. november 2001 - 22:24 #2
if len(Request.Form(\"din_form\") < 30 Then
Response.Write \"forlang tekst\"
End If
Avatar billede slinky Nybegynder
04. november 2001 - 22:25 #3
burde man ikke kunne lave etellerander med:
efter x antal bogstaver=skift linie
Avatar billede johannielsen Nybegynder
04. november 2001 - 22:26 #4
->Medions

Det der ødelægger jo alt det andet man måtte have skrevet. Kan man ikke få den til at dele ordet?
Avatar billede medions Nybegynder
04. november 2001 - 22:26 #5
ups...
if len(Request.Form(\"din_form\")) < 30 Then
Response.Write \"alert\"
End If
Avatar billede medions Nybegynder
04. november 2001 - 22:27 #6
jov.. så skal du bruge det der Replace... og så skære den ned på den måde...
Avatar billede medions Nybegynder
04. november 2001 - 22:29 #7
Avatar billede johannielsen Nybegynder
04. november 2001 - 22:30 #8
->Medions

Jeg er lidt i tidsnød. Kan du ikke fixe det?
Avatar billede medions Nybegynder
04. november 2001 - 22:31 #9
Avatar billede medions Nybegynder
04. november 2001 - 22:32 #10
har jeg desvære heller ikke tid til... :-(

men prøv dig frem med det link jeg lige gav dig... det skulle gerne være forklaringen på dit problem... ;-)
Avatar billede eagleeye Praktikant
04. november 2001 - 22:34 #11
medions>> det jo enkelt ord der ikke må være for lange. Men den løsning kan man kan skrive 30 tegn.
Avatar billede medions Nybegynder
04. november 2001 - 22:37 #12
så kan jeg vidst ikke hjælpe... :-(
Avatar billede jimmidreng Nybegynder
04. november 2001 - 22:39 #13
Ok, en god løsning er at hive alt output igennem en lille split funktion:

Function CutWords(Teksten)
Dim Splittet, TempText, Result
Splittet = Split(Teksten,\" \")
For F = 0 to Ubound(Splittet)
If Len(Splittet(F)) > 30 then
TempText = Splittet(F)
Splittet(F) = left(TempText,30) & right(TempText,Len(TempText)-30)
end if
Result = Splittet(F) & \" \"
Next
Cutwords = Result
End Function

Ok, den er ikke helt super, da den kun splitter ord over 30 karaktere én gang, men jeg har lige skrevet den i vinduet her, jeg fixer en bedre version lidt senere, hvis det har interesse.

/Jimmi
Avatar billede netsrac Praktikant
04. november 2001 - 22:42 #14
medions >> Hvad f***** skal han bruge det til ?

Her er din løsning:

<%
tekst = \"as as as as heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeej fdfd df df\"
max = 30
tekstArr = Split(tekst, \" \")
For i = 0 to Ubound(tekstArr)
  If Len(tekstArr(i)) > max Then
      Counter = 1
      Do while (counter) < Len(tekstArr(i))
          Response.write(mid(tekstArr(i), counter, max) & \"<BR>\")
      counter = counter + max
      Loop
  Else
      Response.write(tekstArr(i) & \" \")
  End if
Next
%>
Avatar billede medions Nybegynder
04. november 2001 - 22:44 #15
hmm...
Avatar billede webbe Nybegynder
05. november 2001 - 14:45 #16
Hvad med:

response.write(left(rs(\"felt_navn\"),50 &\"<br>\")

Det er ikke testet, men blot en idé! ;0)
Avatar billede netsrac Praktikant
05. november 2001 - 16:59 #17
webbe >> Hvad så med resten af teksten efter de 50 tegn ?
Avatar billede medions Nybegynder
05. november 2001 - 20:33 #18
-> *G* det samme som jeg glemte at tænke på *G*
Avatar billede ulrich Novice
05. november 2001 - 20:36 #19
Function FixTag(strTag, lngMaxLength)
    Replace strTag, \"<br>\", \"<BR>\"
    strArr = Split(strTag, \"<BR>\")
   
    For lngCount = LBound(strArr) To UBound(strArr)
        If Len(strArr(lngCount)) > lngMaxLength Then
          strArr(lngCount) = FixRow(strArr(lngCount), lngMaxLength)
        End If
    Next 

    For lngCount = LBound(strArr) To UBound(strArr)
        strOut = strOut & strArr(lngCount) & \"<BR>\"
    Next
    FixTag = Left(strOut, Len(strOut))
End Function


Function FixRow(strText, lngMaxLength)   
    If Len(strText) > (2 * lngMaxLength) Then
        strRest = FixRow(Mid(strText, lngMaxLength), lngMaxLength)
        strText = Left(strText, lngMaxLength - 1)
    End If
   
    For lngCount = (lngMaxLength) To 1 Step -1
        If Mid(strText, lngCount, 1) = \" \" Then
            FixRow = Left(strText, lngCount) & \"<BR>\" & Mid(strText, lngCount + 1) & strRest
            Exit Function
        End If
    Next
    FixRow = Left(strText, lngMaxLength-1) & \"<BR>\" & Mid(strText, lngMaxLength) & strRest
End Function


Skriv tag med:

Response.write FixTag(rs(\"tag\"), 75)
Avatar billede ulrich Novice
05. november 2001 - 20:37 #20
75 kan erstattes af et andet tal. Det er det tal der afgør hvor langt et ord må være :>
Avatar billede webbe Nybegynder
06. november 2001 - 07:42 #21
netsrac:

Hmmm - tjah.....godt spørgsmål! *GG*

Men som sagt.....det var ikke testet....kun en hurtig idé! ;0)
Avatar billede johannielsen Nybegynder
06. november 2001 - 18:37 #22
->Netsrac

Din virker fint og logisk, kan du flette noget. Eneste menté er at jeg før skrev min tekstvariabel som følgende:

<%=Replace(RS(\"besked\"), vbCrLf, \"<BR>\")%>

Kan du flette det ind?
Avatar billede johannielsen Nybegynder
06. november 2001 - 18:38 #23
Hov, det lyder lidt tåbeligt, min fejl. Håber du forstår! :-)
Avatar billede jimmidreng Nybegynder
06. november 2001 - 18:43 #24
Lige en enkelt ting mere, du skal IKKE fortolke på de lange ord når du udskriver tag wallen, der er jo ingen grund til at belaste serveren mere end nødvendigt. Fortolk når du ligger i basen.

Function CutWords(Teksten)
Dim Splittet, TempText, Result
Splittet = Split(Teksten,\" \")
For F = 0 to Ubound(Splittet)
If Len(Splittet(F)) > 30 then
Splittet(F) = left(TempText,10) & \".. \"
end if
Result = Splittet(F) & \" \"
Next
Cutwords = Result
End Function

Og hvem er egentlig intereseret i at få resten af Heeeeeeeeeeeee*30 med? Derfor ovenstående funktion, som er ændret lidt, så den bare cutter og smider .. på.
Avatar billede johannielsen Nybegynder
06. november 2001 - 18:51 #25
->Jimmidreng

Nu er det jo kun et site med ca. 10 besøgende om dagen, og det tal vil nok max. stige til 20-30. Derfor er det lidt ligemeget om serveren skal tænke 1 * 10^-77 gange, inden det kommer frem. Jeg vil helst ikke ændre på det folk har skrevet.

->Netsrac

Er du der?
Avatar billede netsrac Praktikant
06. november 2001 - 19:41 #26
Hov var da vist faldet lidt i søvn, sorry :)

<%
tekst = \"as as as as heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeej fdfd df df\"
tekst = Replace(tekst, vbcrlf, \"<br>\")
max = 30
tekstArr = Split(tekst, \" \")
For i = 0 to Ubound(tekstArr)
  If Len(tekstArr(i)) > max Then
      Counter = 1
      Do while (counter) < Len(tekstArr(i))
          Response.write(mid(tekstArr(i), counter, max) & \"<BR>\")
      counter = counter + max
      Loop
  Else
      Response.write(tekstArr(i) & \" \")
  End if
Next
%>
Avatar billede johannielsen Nybegynder
06. november 2001 - 19:50 #27
Nåja...jeg forsøgte at sætte det ind for neden...DOW! - min fejl. TAKKER!
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