Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как считать буквы построчно? Добавлено: 29.03.11 11:54  

Автор вопроса:  A.Khorevich
Здравствуйте! У меня такой вопрос - можно ли в textbox считать слоги, или гласные буквы построчно?
То есть например в Label1 отображается количество слогов в первой строчке, в Label2 отображается количество слогов во второй и тд.
Или там в listbox'е. В общем можно ли как то это осуществить. Заранее спасибо.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #1
Добавлено: 29.03.11 12:07
Осуществить можно. регулярные выражения в помощь.

Ответить

Номер ответа: 2
Автор ответа:
 A.Khorevich



Вопросов: 2
Ответов: 4
 Профиль | | #2 Добавлено: 29.03.11 12:17
А по конкретней можно про регулярные выражения? Читаю статейки об этом, но как это применить пока не знаю.

Ответить

Номер ответа: 3
Автор ответа:
 СанСаныч



Вопросов: 3
Ответов: 118
 Профиль | | #3 Добавлено: 29.03.11 15:53
Пользуйся:
  1.  
  2. Dim I, J, K, M, Pg, Ns, Ks, re
  3. Dim text As String ' текст
  4. Dim MasT() As String ' массив предложений
  5. Dim MasS() As String ' массив слов
  6. Dim SL '  текущее слово
  7. Dim G As String ' вспомогательная строка
  8. Dim GL() ' массив порядковых номеров гласных в слове
  9. Dim SLOG As String ' текущий слог
  10.                Список1.Clear ' очищаем список
  11.  
  12. text = Текст1.text ' считываем тект в переменную
  13. G = "`1234567890-=[]\';/.,~!@#$%^&*()_+{}|?><-;:«»" ' перечень символов от которых избавляемся
  14. For I = 1 To 45 ' цикл  по количеству символов. меняем на пробелы. если просто удалять два слова в одно могут
  15. text = Replace(text, Mid(G, I, 1), " ")
  16. text = Replace(text, "  ", " ") ' заодно меняем два пробела на один
  17. Next I
  18. G = "ауоыиэяюёе" ' список гласных. Можно добавить заглавные
  19. MasT = Split(text, vbNewLine) ' разбиваем весь тект на предложения
  20. For I = 0 To UBound(MasT) ' до конца массива предложний
  21. MasS = Split(MasT(I), " ") ' разбиваем каждое предложение на слова
  22.         For J = 0 To UBound(MasS) ' до конца массива слов в каждом предложении
  23.         Erase GL 'очищаем массив гласных
  24.   SLOG = "" 'очищаем текущий слог
  25.   ReDim GL(0) ' изменяем размерность массива
  26.                         For K = 1 To Len(MasS(J)) ' цыкл с позиции начала поиска ищем гласную из списка G
  27.                                     If InStr(1, G, Mid(MasS(J), K, 1)) > 0 Then ' если нашли гласную
  28.                                     ReDim Preserve GL(UBound(GL) + 1) ' увеличиваем размер массива позиций гласных в слове
  29.                                                 GL(UBound(GL)) = K ' назначаем позицию
  30.                                    End If '
  31.                         Next K ' следующая буква
  32.                         Ns = 1 'Певый слог начинается с первой буквы
  33.                                     If UBound(GL) > 0 Then ' если в слове есть гласная
  34.                                For M = 1 To UBound(GL) - 1 ' цыкл по всем позициям гласных
  35.                                ' и назначение конца слога
  36.                                                         Select Case (GL(M + 1) - GL(M)) ' выбрать разницу позиций гласных в слове
  37.                                                         Case 1 ' если гласные стоят рядом
  38.                                                     Ks = Ns + 1 '
  39.                                                         Case 2 'если между гласными одна буква
  40.                                                           Ks = GL(M)
  41.                                                         Case 3, 4, 5 'если между гласными 3, 4, ,5  букв
  42.                                                         'проверяем на наличие после согласной знаков разной мягкости
  43.                                                                   Ks = IIf((Mid(MasS(J), GL(M) + 2, 1) = "ь" Or Mid(MasS(J), GL(M) + 2, 1) = "ъ"), GL(M) + 2, GL(M) + 1) '
  44.                                                                End Select '
  45.                                                           SLOG = Mid(MasS(J), Ns, Ks - Ns + 1) ' выбираем слог из слова по его началу и концу
  46.                                                              Список1.AddItem SLOG 'заносим в список
  47. '                                                          Debug.Print M, GL(M), SLOG ' или печатаем в отладчике
  48.  
  49.                                                         Ns = Ks + 1 'назначеам начало следующего слова
  50.                             Next M '
  51.                                  SLOG = Mid(MasS(J), Ns, Len(MasS(J)) - Ns + 1) ' записывае последний слог слова
  52.                                  Список1.AddItem SLOG
  53. '                                  Debug.Print M, GL(M), SLOG
  54.                                     End If '
  55.         Next J ' следующее слово
  56. Next I ' следующее предложение

Ответить

Номер ответа: 4
Автор ответа:
 A.Khorevich



Вопросов: 2
Ответов: 4
 Профиль | | #4 Добавлено: 29.03.11 22:33
Спасибо большое :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам