создание моей собственной оболочки Word для строки - PullRequest
0 голосов
/ 14 сентября 2009

Как мне сделать собственную функцию переноса слов для строк? Я хочу, чтобы каждая строка не превышала 50 символов и учитывала существующие CRLF.

Ответы [ 2 ]

1 голос
/ 14 сентября 2009

Как-то так, это поможет вам начать (просто быстрый пример, который я разобрал):

Private Sub Doit()     
    Dim Source As String = ""
    Source &= "How to make my own word wrap function for string, I want each line to be no longer than 50chars and take respect existing CRLFs" & vbCrLf & vbCrLf
    Source &= "So this will be a new row."
    Dim wrappedtext As String = wrap(Source, 20, vbNewLine)
    MsgBox(wrappedtext)
End Sub

Function wrap(ByVal text As String, ByVal maxlength As Integer, ByVal newline As String) As String

    Dim tmp() As String = Split(text.Replace(vbCrLf, " | "), " ")
    Dim ret As String = ""
    Dim wrk As String = ""
    For Each word As String In tmp
        If word = "|" Then
            ret &= newline
            wrk = ""
        ElseIf word = "" Then

        Else

            If Len(wrk & word) <= maxlength Then
                wrk &= " " & word
            Else
                ret &= wrk & newline
                wrk = word & " "
            End If

        End If
    Next
    If wrk <> "" Then ret &= wrk
    Return ret
End Function
0 голосов
/ 14 сентября 2009

С какой точки зрения? Архитектура SW?

Взгляните на образец декоратора. Если вам нравится работать с потоками, в книге «Heads First: Design Patterns» предлагается модификатор строки. Это на Java, но общая концепция программирования хорошо описана. Некоторые страницы отсутствуют, но вы можете найти много информации здесь .

Сам алгоритм тривиален, не так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...