Member 12481118 Ответов: 0

Как подсчитать количество слогов в word с помощью приложения visual basic для windows


у графа полслова не написал заявление

Что я уже пробовал:

Imports System.Text.RegularExpressions
Public Class Form1
    Private Function SyllableCount(ByVal word As String) As Integer
        word = word.ToLower().Trim()
        Dim pattern As String = "[aeiouy]+"
        Dim count As Integer = Regex.Matches(word, pattern).Count
        If word.EndsWith("e") Then
            count -= 1
        End If
        If count < 1 Then
            count = 1
        End If
        Return count
    End Function
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub txtInput_TextChanged(sender As Object, e As EventArgs) Handles txtInput.TextChanged

        Dim inputText As String = txtInput.Text
        Dim ltr As String
        Dim wordCount As Integer
        Dim sentenceCount As Integer
        Dim syllableCount As Integer
        Dim i As Integer
        Dim inWord As Boolean = False
        Dim vowels As String = "aeiouy"

        ' Make the string case insensitive.
        inputText = inputText.ToLower()

        For i = 0 To inputText.Length() - 1
            ltr = inputText.Substring(i, 1).ToLower
            If ltr = "'" Then
                ' do nothing if apostrophe
            ElseIf (ltr >= "a" And ltr <= "z") Then ' check for alphabetic input
                If Not inWord Then ' new word
                    wordCount += 1 ' add 1 to count
                End If
                inWord = True
            Else                ' could be space, full stop, comma etc
                inWord = False ' no longer in word
                ' check if end of sentence
                If (ltr = "." Or ltr = ":" Or ltr = ";" Or ltr = "?" Or ltr = "!") Then
                    sentenceCount += 1 ' add 1 to count
                End If
            End If

        Next

        Dim input As String = inputText.Length() - 1
        Dim ch As Char
        Dim inVowel As Boolean = False

        ' syllable count is zero if no input
        If (input < 0) Then
            syllableCount = 0
        End If

        ' e at end of word doesn't count as a vowel
        ch = inputText.Substring(inputText.Length - 1)
        If (ch = "e") Then
            input -= 1
        End If

        For Each ch In inputText
            If (vowels.IndexOf(ch) >= 0) Then
                If Not inVowel Then
                    syllableCount += 1
                End If
                inVowel = True
            End If
        Next

        ' every word has at least one syllable
        If (syllableCount = 0) Then
            syllableCount += 1
        End If

        TextBox1.Text = wordCount
        TextBox2.Text = sentenceCount
        TextBox3.Text = syllableCount

    End Sub




End Class

Suvendu Shekhar Giri

Пожалуйста, добавьте больше описания вашей проблемы, чтобы мы могли вам помочь.

OriginalGriff

Что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?

Richard MacCutchan

Попробуйте некоторые из этих ритмов: 2 слога(вроде), гипербола: 4, Бриз: 1, красивый: 3 ...

Patrice T

Опишите, что делает ваш код и почему он ошибочен.

0 Ответов