Avatar billede hirayz Nybegynder
08. oktober 2004 - 21:31 Der 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"


håber i forstår !
Avatar billede arne_v Ekspert
08. oktober 2004 - 21:56 #1
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
Avatar billede hirayz Nybegynder
08. oktober 2004 - 22:06 #2
tak det virker jo som det skal :D
Avatar billede sjh Nybegynder
08. oktober 2004 - 22:08 #3
Du kunne også gøre sådan..

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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester