Деление строки на равные куски с заданным лимитом - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д