манипулирование строками: вывод строки в обратном порядке, не касаясь чисел - PullRequest
0 голосов
/ 21 июля 2010

У меня есть строковый ввод

"abc def 50 ghi jhk lmn 63 op qrst"

Мне нужно вывести эту строку в обратном порядке, не касаясь цифр

"tsrq po 63 nml khj ihg 50 fed cba"

Я создал функцию vb

function strWords(s,length)
    strWords = ""
    s = replace(s,")"," ( ")
    s = replace(s,"("," ) ")
    s = replace(s,"-","- ")
    s = replace(s," ( "," ( ")
    s = replace(s," ) "," ) ")
    dim sArray
    sArray = split(s)
    counter = 0
    for i = 0 to ubound(sArray)
        tempStr = sArray(i)
        counter = counter + len(tempStr)
        if len(tempStr) => 1 then
            if Asc(left(tempStr,1)) => Asc("0") and Asc(left(tempStr,1)) <= Asc("9") then
                strWords = tempStr & " " & strWords
            else
                strWords = StrReverse(tempStr) & " " & strWords
            end if
        end if
        if counter > 20 then 
            strWords =  "<br>" & strWords 
            counter = 0
        end if
    next
end function

проблема в том, что мне нужно разбить строку на + -10 символов.как это

" 50 fed cba" 
"nml khj ihg " 
"tsrq po 63 "  

1 Ответ

0 голосов
/ 21 июля 2010
Function strWords(s)

    t = ""
    d = ""

    For i = Len(s) To 1 Step -1
        c = Mid(s, i, 1)
        If Asc(c) >= Asc(0) And Asc(c) <= Asc(9) Then
            d = c + d
        Else
            t = t + d + c
            d = ""
        End If
    Next

    strWords = t + d

End Function
...