Hej, ja du... text som inte finns utan bara massa mellanslag " " <- en massa mellanslag. <code></code>Mid med mellanslag
Jag har en funktion som ser ut så här:
<code>
Function DelaRubrik(strDelText)
iPosD1 = 1
iPosD2 = 1
iWordLength = 0
strDelText = Trim(strDelText)
Do Until iPosD2 = Len(strDelText)
iPosD2 = iPosD2 + 1
iWordLength = iWordLength + 1
If Mid(strDelText,iPosD2,1) = " " Then
iWordLength = 0
End if
If iWordLength > 25 Then
strDelText = Mid(strDelText,1,iPosD1-1) & Mid(strDelText,iPosD1,iPosD2-iPosD1) & " " & Mid(strDelText,iPosD2,Len(strDelText)-iPosD2+1)
iPosD1 = iPosD2
iPosD2 = iPosD2 + 1
iWordLength = 0
End If
Loop
DelaRubrik = strDelText
End Function</code>
Men visa medlemar dä jag använder denna funktion vill jävlas med mig så dem trycker in massa mellan slag så att det hela går åt skogen och den klagar på Mid.
Körningsfel i Microsoft VBScript fel '800a0005'
Ogiltigt proceduranrop eller argument.: 'Mid'
/NoN/testmid.asp, rad 26
rad 26: strDelText = Mid(strDelText,1,iPosD1-1) & Mid(strDelText,iPosD1,iPosD2-iPosD1) & " " & Mid(strDelText,iPosD2,Len(strDelText)-iPosD2+1)
Hjälp mig snälla för att lösa problemet så att man kan ha en massa mellanslag också...Sv: Mid med mellanslag
Sv: Mid med mellanslag
Problemet är att du får en tom sträng. Därför kommer det bli en evighets loop. Eftersom den börjar på ett och räknar upp. Mid kommer retunera en tom sträng som inte är lika med ett mellanslag. Felet blir sedan i mid operationen.
Vill du infoga ett mellanslag i ord som är längre än 25 tecken? Du kan iså fall istället skriva:
<code>
Function DelaRubrik(strDelText)
Dim iPos
Dim iWordLength
strDelText = Trim(strDelText)
Do While iPos < Len(strDelText)
iPos = iPos + 1
If Mid(strDelText, iPos, 1) = " " Then
iWordLength = 0
Else
iWordLength = iWordLength + 1
If iWordLength > 25 Then
strDelText = Left(strDelText, iPos - 1) & " " & Mid(strDelText, iPos)
iPos = iPos + 1
iWordLength = 1
End If
End If
Loop
DelaRubrik = strDelText
End Function
</code>