webForumDet fria alternativet

Hjälp Med Function snälla :(

ASP

10 svar · 614 visningar · startad av akke

Medlem sedan aug. 200827 inlägg
Frågan#1

hej varje gång man skickar ett tomt inlägg med mellanslag så kmr den här felet

Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument: 'Mid'

D:\WEBUSERS\32060\TURKWEB.SE\WWW\INSIDE\../includes/andratext.asp, line 200

men om ja tar bort mellanslaget på line 190 så kmr inte automatisk br i inlägget

hur ja kan lösa det här problemet.

Function delaText(strText)

iPos1 = 1    
iPos2 = 1
iWordLength = 0

strText = Trim(strText) 

Do Until iPos2 = Len(strText)

    iPos2 = iPos2 + 1

    iWordLength = iWordLength + 1

    If Mid(strText,iPos2,1) = " " Then
        iWordLength = 0
    End if

    If iWordLength \> 50 Then
        
        strText = Mid(strText,1,iPos1-1)\_
        & Mid(strText,iPos1,iPos2-iPos1)\_
        & " " & Mid(strText,iPos2,Len(strText)-iPos2+1) **Line 190...!!!!**            
        iPos1 = iPos2
        iPos2 = iPos2 + 1
        iWordLength = 0

    End If

Loop

strText = Replace(strText ,vbCrlf,"\<br\>")  **Line 200 Här.....!!!!!!!!!!!!!!**

delaText=strText

End Function

Medlem sedan dec. 20025 483 inlägg
#2

Det här:

Do Until iPos2 = Len(strText)

...är ingen höjdare, eftersom det förutsätts att strText innehåller någonting.

Ett enkelt sätt att komma runt problemet är att wrappa loopen i en if-sats som endast äntras om längden på strText är större än iPos2.

Medlem sedan aug. 200827 inlägg
#3

Peter S skrev:

Det här:

Do Until iPos2 = Len(strText)

...är ingen höjdare, eftersom det förutsätts att strText innehåller någonting.

Ett enkelt sätt att komma runt problemet är att wrappa loopen i en if-sats som endast äntras om längden på strText är större än iPos2.

ja förstår inte vad du menar.

Medlem sedan dec. 20025 483 inlägg
#4

Loopen stannar när villkoret iPos2 = Len(strText) är sant. Men det kommer aldrig att bli sant om strText inte innehåller något. Så en enkel fix är alltså att se till att loopen ej körs om längden på strText är <= iPos2:

if len(strText) > iPos2 then
  Do Until iPos2 = Len(strText)
    ...
  Loop
end if
Medlem sedan juli 20003 825 inlägg
#5

IF strText <> "" THEN strText = Replace(strText ,vbCrlf,"<br>")

Medlem sedan dec. 20025 483 inlägg
#6

Eclipse skrev:

IF strText <> "" THEN strText = Replace(strText ,vbCrlf,"<br>")

Fast den delen är det ju inga problem med. En Replace() på en tom sträng resulterar inte i något fel :)

Medlem sedan aug. 200827 inlägg
#7

Peter S skrev:

Fast den delen är det ju inga problem med. En Replace() på en tom sträng resulterar inte i något fel :)

ja tror att problemet här

& " " & Mid(strText,iPos2,Len(strText)-iPos2+1)

Medlem sedan juli 20003 825 inlägg
#8

Peter S skrev:

Fast den delen är det ju inga problem med. En Replace() på en tom sträng resulterar inte i något fel :)

Jag brukar få felmeddelanden då, men det kanske är i andra sammanhang.

Medlem sedan dec. 20025 483 inlägg
#9

akke skrev:

ja tror att problemet här

& " " & Mid(strText,iPos2,Len(strText)-iPos2+1)

Har du läst inlägg #4?

Medlem sedan aug. 200827 inlägg
#10

Peter S skrev:

Har du läst inlägg #4?

Har löst problemet.

Medlem sedan dec. 20014 239 inlägg
#11

Kanske markera inlägget som lösningen på ditt problem ;) ?

260 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)