08. oktober 2004 - 21:31Der er
2 kommentarer og 1 løsning
split tekst på ord efter længde
skal bruge en function som spliter en tekst alt efter en bestemt længde
tekst = "fjkd kijie jfi i nosfn sfonf nfsf jdss qfdaf" hvis jeg split'er efter 20 tegn kommer den til at se sådan ud "fjkd kijie jfi i nos" og det går jo ikke at den split'er midt i et ord, så den skal bare split'e på mellemrummet før altså "fjkd kijie jfi i" og så gå videre output skulle så gerne se sådan ud "fjkd kijie jfi i nosfn sfonf nfsf jdss qfdaf"
Her er et eksempel som illusterer en teknik (den bruger bare 3 text boxe og en button - du skal rette til efter din kontekst).
Private Sub Command1_Click() Dim s() As String Dim ix1 As Integer Dim ix2 As Integer Dim i As Integer s = Split(Text1.Text, " ") ix1 = 0 ix2 = 1 While ix2 <= UBound(s) If Len(s(ix1)) + Len(s(ix2)) < CInt(Text2.Text) Then s(ix1) = s(ix1) & " " & s(ix2) Else ix1 = ix1 + 1 s(ix1) = s(ix2) End If ix2 = ix2 + 1 Wend ReDim Preserve s(ix1) Text3.Text = "" For i = 0 To UBound(s) Text3.Text = Text3.Text & s(i) & vbCrLf Next End Sub
Private Sub Form_Load() Dim strText As String strText = "Dette er en tekst som eksempel til at vise max ord." MsgBox OrdMin(strText, 20)
strText = "Dette er en tekst som eksempel til at vise min ord." MsgBox OrdMax(strText, 20) End Sub
Public Function OrdMax(strText As String, intLen As Integer) As String Dim intStart As Integer intStart = InStrRev(strText, " ", intLen) - 1 If intStart > 0 Then OrdMax = Left$(strText, intStart) & "..." End If End Function
Public Function OrdMin(strText As String, intLen As Integer) As String Dim intStart As Integer intStart = InStr(intLen, strText, " ") - 1 If intStart > 0 Then OrdMin = Left$(strText, intStart) & "..." End If End Function
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.