1. Mener du et program der automatisk deler ord op i stavelser, altså:
"Me-ner du et pro-gram der au-to-ma-tisk de-ler ord op i sta-vel-ser"
Hvis du mener det, har jeg et par kommentarer at knytte til din ide ;o)
-o-
2. Eller mener du et program der der deler en string op i de ord den indeholder, og smider dem i et array?. Så er det Split-funktionen du har brug for:
det var et pro-gram der del-te ord i sta-vel-ser. men har fundet ud af det. det er fordi jeg selv er i gang med at lave det, så jeg tænkte at jeg måske kunne komme videre hvis jeg havde lidt at kigge efter!
Men har jo fundet ud af det så jeg lukker: ellers tak!
Public Function er_vokal(ByVal ordet, ByVal plads As Integer) As Boolean er_vokal = InStr("aeiouyæøå", Mid(ordet, plads, 1)) End Function Public Function find_næste_vokal(ByVal ordet, ByVal udgangspunkt As Integer) As Integer plads = udgangspunkt If plads > 0 Then Do Until er_vokal(ordet, plads) plads = plads - 1 If plads = 0 Then Exit Do Loop End If find_næste_vokal = plads End Function
Public Function spstsk(ByVal ordet As String, ByVal vvokal As Integer, ByVal hvokal As Integer) As Integer splads = InStr(vvokal, ordet, "s") If splads > 0 Then If splads < hvokal - 1 Then If InStr("ptk", Mid(ordet, splads + 1, 1)) > 0 Then spstsk = splads - 1 End If End If Else spstsk = 0 End If End Function
Public Function Dobbelt(ByVal ordet, ByVal vvokal As Integer, ByVal hvokal As Integer) As Integer Dobbelt = 0 For plads = vvokal + 1 To hvokal - 2 If Mid(ordet, plads, 1) = Mid(ordet, plads + 1, 1) Then Dobbelt = plads Exit For End If Next End Function
Public Function delepunkt(ByVal ordet As String, ByVal vvokal As Integer, ByVal hvokal As Integer) As Integer If hvokal - vvokal < 2 Then delepunkt = vvokal Else delepunkt = Dobbelt(ordet, vvokal, hvokal) If delepunkt = 0 Then delepunkt = spstsk(ordet, vvokal, hvokal) If delepunkt = 0 Then delepunkt = hvokal - 2 End If End Function
Public Function indsæt_delestreg(ByVal ordet, delepunkt) As String indsæt_delestreg = Mid(ordet, 1, delepunkt) & "-" & Mid(ordet, delepunkt + 1) End Function
Public Function del_ordet(ByVal ordet As String) vvokal = find_næste_vokal(ordet, Len(ordet)) Do While vvokal > 0 hvokal = vvokal vvokal = find_næste_vokal(ordet, hvokal - 1) If vvokal > 0 Then ordet = indsæt_delestreg(ordet, delepunkt(ordet, vvokal, hvokal)) End If Loop del_ordet = ordet End Function Private Sub deleknap_Click() Delt_ord = del_ordet(ordet) End Sub
men når nu jeg har jer her, har i så en ide til hvordan man kan gøre sådan at der kan skrives flere ord ad gangen? probemet ligenu er at den laver en bindestreg foran hver ord, hvordan skriver man at den skal fjerne en bindestreg hvis den står lige efter et mellemrum?
jeg giver selvfølgelig lidt point hvis i kan hjælpe!
Søg efter mellemrum. Tjek det efterfølgende tegn. Er det en - slettes tegnet...
Men InStr, Mid, Len osv skulle det være en smal sag :o)
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.