Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VB]Поясните, пожалуйста, значние элементов в коде


Автор: novi4ek 8.10.2008, 17:46
Код

Sub Поиск()
K = ActiveDocument.Words.Count
ReDim Словарь(1 To K) As V
i = 1
For Each WW In ActiveDocument.Words
    w = LCase(WW)
    If Len(w) > 1 Then
      For j = 1 To i
        If w = Словарь(j).Слово Then Словарь(j).Число = Словарь(j).Число + 1: Exit For
        If "" = Словарь(j).Слово Then Словарь(i).Слово = w: Словарь(i).Число = 1: i = i + 1: Exit For
       Next j
    End If
Next WW
For ПГ = K To 1 Step -1
If Словарь(ПГ).Число <> 0 Then Exit For
Next ПГ
ReDim Preserve Словарь(1 To ПГ)
For M = 1 To 10
Индекс = 1: Макс = Словарь(1).Число
For i = 2 To ПГ
If Словарь(i).Число > Макс Then Индекс = i: Макс = Словарь(i).Число
Next i
S = S & Словарь(Индекс).Слово & " " & Round(Словарь(Индекс).Число / K, 2) & vbCrLf
Словарь(Индекс).Число = 0
Next M
MsgBox S
End Sub

Автор: CaptainNemo 9.10.2008, 02:36
Вы для начала объявте все переменные явно. 
Код

ReDim Словарь(1 To K) As Variable 

очевидно, а не V, как у Вас.
Я бегло глянул на код. Если я правильно понял, этот макрос проверяет все одинаковые подряд идущие символы во всех словах документа. Затем сверка со словарем – если слово с таким сочетанием букв есть в словаре – выход из саба и т.д…

Автор: Akina 9.10.2008, 08:06
CaptainNemo, Вы неправы. Судя по коду, V - это заданный ранее пользовательский тип, с компонентами V.Слово, V.Число (и, возможно, еще какими-то).

Модератору раздела: поправьте пост топикстартера, а то без [code] совсем тускло.
И вообще выбросить бы в ЦП.

Автор: mihanik 20.10.2008, 19:22
Модератор: 

Согласен с Akina.

Переношу в центр поддержки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)