Деление строки на равные куски с заданным лимитом - Visual Basic .NET/.NET 4.x

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, подскажите пожалуйста как решить следующий вопрос. Имеется строка, в виде обычного предложения, длина изменяется, иногда она может быть около 100 символов, иногда около 130, а иногда около 90, есть 3 текстовых поля, задача состоит в следующем: распределить куски строки(предложения) по текстбоксам так, чтобы эти куски не превышали заданного максимального лимита текстбокса и обрезались по последнему целому слову, при этом остаток строки независимо от длины будет записан в последний текстбокс Например строка:

"Павел купил баян, но баян оказался нерабочим и Павел вернул его обратно в магазин."

На каждый текстбокс в этом случае поставлен лимит не более 30 символов, в конечном итоге должно получится нечто, следующее:

Текстбокс1 = "Павел купил баян, но баян " Текстбокс2 = "оказался нерабочим и Павел " Текстбокс3 = "вернул его обратно в магазин."

Решение задачи: «Деление строки на равные куски с заданным лимитом»

textual
Листинг программы
Structure StringPhrases
    Public FirstEntry As String
    Public SecondEntry As String
    Public TrailingEntry As String
End Structure
 
Function SplitToPhrases(ByVal StringToSplit As String, ByVal MaxStringLength As Integer) As StringPhrases
    Dim Chars As Char() = StringToSplit.ToCharArray
 
    Dim FirstEntryEnd As Integer = MaxStringLength
    Do
        FirstEntryEnd -= 1
    Loop While Chars(FirstEntryEnd) <> " "c
 
    Dim SecondEntryEnd As Integer = MaxStringLength + FirstEntryEnd
    Do
        SecondEntryEnd -= 1
    Loop While Chars(SecondEntryEnd) <> " "c
 
 
    Dim Result As StringPhrases
    With Result
        .FirstEntry = New String(Chars, 0, FirstEntryEnd)
        .SecondEntry = New String(Chars, FirstEntryEnd + 1, SecondEntryEnd - FirstEntryEnd - 1)
        .TrailingEntry = New String(Chars, SecondEntryEnd + 1, StringToSplit.Length - SecondEntryEnd - 1)
    End With
    Return Result
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы