24.01.2007, 22:16
общий
это ответ
Здравствуйте, Alexburzak!
Не знаю как насчет VB.Net, но думаю не многое поменялось. в VB6 (и VBA) я бы использовал функцию типа нежеприведенной. Честно говоря, только накидал и не тестировал, но суть, я думаю, важней. Исходная строка последовательно разбивается на "слова", разделенные пробелами. Слова последовательно записываются в строку-результат. Когда длина строки становится больше заданной, добавляются символы перехода на другую строку (константой vbCrLf).
Приложение:
Function RazbitStroku(St As String, MaxStLen As Integer) As String‘St - введенная строка‘MaxLenSt - максимальная длина строки‘результат - срока, разбитая на абзацы, каждый длиной не более MaxLenStDim Res As StringDim St1 As StringDim St2 As StringDim n As IntegerSt = St & " "Res = ""St2 = ""Do While St <> "" n = InStr(St, " ") If n >= MaxStLen Then n = MaxStLen St1 = Left(St, n) St = LTrim(Right(St, Len(St) - n)) If Len(Res & St2) > MaxStLen Then Res = Res & St2 & vbCrLf St2 = "" End If St2 = St2 & " " & St1LoopRes = Res & St2RazbitStroku = ResEnd Function