|
| Opdeling af lange ord Fra : Jimmy |
Dato : 15-09-01 13:15 |
|
Hej
Der var for et par uger siden et spørgsmål omkring hvordan man deler lange
ord fra user input op i mindre.
Jeg kan nu ikke finde tråden.
Det ærgelige er jo at en bruger taster xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx og på
den måde smadrer layoutet af en side.
Hvad var løsningen?
Hilsen Jimmy
| |
Anders Holbøll (15-09-2001)
| Kommentar Fra : Anders Holbøll |
Dato : 15-09-01 16:08 |
|
Jimmy wrote:
>
> Der var for et par uger siden et spørgsmål omkring hvordan man
> deler lange ord fra user input op i mindre.
Det kunne vel se ca. sådan ud:
Function WordBreak(ByVal S, ByVal MaxLength)
Dim i, Ch, StartPos
For i = 1 To Len(S)
Ch = Mid(S, i, 1)
If (Ch = " ") Or (Ch = vbCr) Or (Ch = vbLf) or (Ch = vbTab) Then
StartPos = i
End If
If (i - StartPos > MaxLength + 1) Then
S = Left(S, i - 1) & " " & Mid(S, i)
End If
Next
WordBreak = S
End Function
> Jeg kan nu ikke finde tråden.
http://groups.google.com/
--
Anders
| |
Jimmy (16-09-2001)
| Kommentar Fra : Jimmy |
Dato : 16-09-01 08:50 |
|
> Det kunne vel se ca. sådan ud:
>
> Function WordBreak(ByVal S, ByVal MaxLength)
> Dim i, Ch, StartPos
> For i = 1 To Len(S)
> Ch = Mid(S, i, 1)
> If (Ch = " ") Or (Ch = vbCr) Or (Ch = vbLf) or (Ch = vbTab) Then
> StartPos = i
> End If
> If (i - StartPos > MaxLength + 1) Then
> S = Left(S, i - 1) & " " & Mid(S, i)
> End If
> Next
> WordBreak = S
> End Function
Både og - sætningen "hej med dig jeg hedder kaj og jeg er
søøøøøøøøøøøøøøøøøøøøøøøød" bliver til "hej med dig jeg hedder kaj og jeg er
søøøøøø øøøøøøøøøøøøøøøøøød"
Den mangler rekursivitet, hvilket jeg desværre ikke er den store mester i
> http://groups.google.com/
Ja tak :-/
Hilsen Jimmy
| |
Anders Holbøll (16-09-2001)
| Kommentar Fra : Anders Holbøll |
Dato : 16-09-01 10:42 |
|
Jimmy wrote:
>
> > Det kunne vel se ca. sådan ud:
> > [kode]
>
> Både og - sætningen "hej med dig jeg hedder kaj og jeg er
> søøøøøøøøøøøøøøøøøøøøøøøød" bliver til "hej med dig jeg hedder kaj
> og jeg er søøøøøø øøøøøøøøøøøøøøøøøød"
>
> Den mangler rekursivitet, hvilket jeg desværre ikke er den store
> mester i
Der er ikke brug for noget rekursivitet, man skal bare skriver det
rigtige. Prøv at skifte sidte if-sætning ud med denne:
If (i - StartPos > MaxLength) Then
S = Left(S, i - 1) & " " & Mid(S, i)
StartPos = i
End If
--
Anders
| |
Jimmy (17-09-2001)
| Kommentar Fra : Jimmy |
Dato : 17-09-01 07:51 |
|
> Der er ikke brug for noget rekursivitet, man skal bare skriver det
> rigtige. Prøv at skifte sidte if-sætning ud med denne:
Fantastisk!
Det virker jo
Koden er her:
Function WordBreak(ByVal S, ByVal MaxLength)
Dim i, Ch, StartPos
For i = 1 To Len(S)
Ch = Mid(S, i, 1)
If (Ch = " ") Or (Ch = vbCr) Or (Ch = vbLf) or (Ch = vbTab) Then
StartPos = i
End If
If (i - StartPos > MaxLength) Then
S = Left(S, i - 1) & " " & Mid(S, i)
StartPos = i
End If
Next
WordBreak = S
End Function
Jeg takker - Hilsen JImmy
| |
|
|