文字列のために自分自身でワードラップ関数を作成するにはどうすればよいですか?私は各行を50文字以内にし、既存のCRLFを尊重したい。文字列用に独自のワードラッパーを作成する
0
A
答えて
1
このような何かを、それはあなたが(私は一緒にマッシュポテトだけ迅速samle)始めます:
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
どのような観点からですか? SWアーキテクチャ?
デコレータのパターンを見てください。ストリームで作業したい場合は、 "Heads First:Design Patterns"という本の中で文字列修飾子が提案されています。それはJavaで書かれていますが、一般的なプログラミングのコンセプトは良い方法で記述されています。いくつかのページがありませんが、多くの情報が見つかりますhere。
アルゴリズム自体は簡単ですね。
あなたは1がすでに存在しない場合は、改行を追加したいすべての50個の文字を意味しますか? – RichardOD