I want to, in vbScript (Classic ASP), parse a string to a specified length without cutting words. The final string may be less than the specified length (to avoid cutting words), but should not exceed it..
                
                A: 
                
                
              
            Assuming you're break words on a space.
startIndex = 0
index = 1
do while len(inputString) - startIndex > desiredLength
    tmp = mid(inputString, 0, desiredLength)
    outputStrings[index] = left(tmp, instrrev(tmp, " ")-1)
    startIndex = startIndex + len(outputStrings[index]) + 1
    index = index + 1
loop 
                  Andrew Cooper
                   2010-09-17 04:05:18
                
              
                
                A: 
                
                
              
            @Caveatrob: Also assuming you break on spaces:
<%  
Option Explicit  
Function TrimIt(sInput, iLength)  
    Dim aWords, iCounter, sOutput, sTmp  
    sOutput = sInput  
    If InStr(sInput, " ") > 0 Then  
        aWords = Split(sInput, " ")  
        For iCounter = 0 To UBound(aWords)  
            If Len(aWords(iCounter) & " ") + Len(sTmp) <= iLength Then  
                sTmp = sTmp & " " & aWords(iCounter)  
            Else  
                Exit For  
            End If  
        Next  
        sOutput = sTmp  
    End If  
    TrimIt = sOutput  
End Function  
Response.Write TrimIt("This works slightly better", 11)  
%>  
                  stealthyninja
                   2010-09-30 19:21:52