Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: работа с предложениями Добавлено: 07.07.06 01:34  

Автор вопроса:  koljan
Дан файл, содержащий текст на русском языке. Найти слово, встречающееся в каждом предложении, или сообщить, что такого слова нет.



Public Sub lab5()
Dim str As String
Dim masSL(1 To 30) As String
Dim masSLREZ(1 To 30) As String
Documents.Open ("c:\temp\lab5.doc")
Documents(1).Select
Selection.Copy
Documents(2).Range.Paste
Documents(2).Activate
Documents(2).Select
For i = 1 To ActiveDocument.Sentences(1).Words.Count
   masSL(i) = ActiveDocument.Sentences(1).Words(i)
Next
k = 2
For j = LBound(masSL) To UBound(masSL)
   If Trim(masSL(j)) Like ActiveDocument.Sentences(2).Words(j) Then
      masSLREZ(j) = masSL(j)
   End If
Next
End Sub


не получается проверить присутствует ли слово из массива в каждом предложении

Ответить

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

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 07.07.06 01:44
Private Sub Form_Load()
s1 = "лялялял ляля слово. траляляля тополя слово."
s2 = "слово"
If Right$(s1, 1) = "." Then s1 = Left$(s1, Len(s1) - 1)
Dim tmpArr() As String: tmpArr = Split(s1, ".";)
For i = 0 To UBound(tmpArr)
    If InStr(1, tmpArr(i), s2) > 0 Then c = c + 1
Next
If c = UBound(tmpArr) + 1 Then MsgBox Chr$(34) & s2 & Chr$(34) & " встречается в каждом предложении"
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 koljan



Вопросов: 2
Ответов: 4
 Профиль | | #2 Добавлено: 07.07.06 02:32
а конкретнее для моей задачи

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 07.07.06 02:53
ну содержимое *.doc загрузи в текстовую переменную и будет тебе для твоей задачи

Ответить

Номер ответа: 4
Автор ответа:
 koljan



Вопросов: 2
Ответов: 4
 Профиль | | #4 Добавлено: 07.07.06 16:02
Вопрос решён

Public Sub lab5()
Dim str As String
Dim stroka As String
Dim masSL(1 To 20) As String
Dim masSLREZ(1 To 20) As String
Documents.Open ("c:\temp\lab5.doc";)
Documents(1).Select
Selection.Copy
Documents(2).Range.Paste
Documents(2).Activate
'Documents(2).Select
For i = 1 To ActiveDocument.Sentences(1).Words.Count
   masSL(i) = ActiveDocument.Sentences(1).Words(i)
Next
k = 2
For i = 2 To ActiveDocument.Sentences.Count
   For j = LBound(masSL) To UBound(masSL)
     For Each w In ActiveDocument.Sentences(i).Words
     
      If Trim(masSL(j)) Like Trim(CStr(w)) Then
        masSLREZ(j) = masSL(j)
      End If
      Next
   Next j
   For k = 1 To 20
        masSL(k) = ""
   Next
   For k = 1 To 20
        masSL(k) = masSLREZ(k)
   Next
   For k = 1 To 20
        masSLREZ(k) = ""
   Next
   
   
Next
For p = 1 To 20
   If (Trim(masSL(p)) = ".";) Or (Trim(masSL(p)) = ",";) Then
      masSL(p) = ""
   End If
Next p

For y = 1 To 20
       stroka = stroka + " " + masSL(y)
Next y
If Trim(stroka) = "" Then
   MsgBox "íåò òàêèõ ñëîâ"
   Else
MsgBox Trim(stroka)
End If
End Sub







Rem îôîðìëåíèå öèêëîâ for äëÿ basic

Sub basic()
Dim ot As Integer

Documents.Open ("c:\temp\vba.doc";)
Documents(1).Select
Selection.Copy
Documents(2).Range.Paste
Documents(2).Activate


ot = 0
For i = 1 To ActiveDocument.Paragraphs.Count
ActiveDocument.Paragraphs(i).Range.Words(1).Select
  If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "For" Then
     ot = ot + 1
     End If
  
  If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "Next" Then
    ot = ot - 1
    'ActiveDocument.Paragraphs(i + 1).Range.Text = String(ot, Chr(9)) + ActiveDocument.Paragraphs(i + 1).Range.Text
    If ot < 0 Then
    ot = 0
    End If
   End If
   If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "For" Then
      ActiveDocument.Paragraphs(i).Range.Text = String(ot - 1, Chr(9)) + ActiveDocument.Paragraphs(i).Range.Text
      Else
      ActiveDocument.Paragraphs(i).Range.Text = String(ot, Chr(9)) + ActiveDocument.Paragraphs(i).Range.Text
   End If
   
   If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "Next" Then
      ActiveDocument.Paragraphs(i - 1).Range.Text = String(ot, Chr(9)) + ActiveDocument.Paragraphs(i - 1).Range.Text
   End If
 Next
 
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 koljan



Вопросов: 2
Ответов: 4
 Профиль | | #5 Добавлено: 07.07.06 16:04


Public Sub lab5()
Dim str As String
Dim stroka As String
Dim masSL(1 To 20) As String
Dim masSLREZ(1 To 20) As String
Documents.Open ("c:\temp\lab5.doc";)
Documents(1).Select
Selection.Copy
Documents(2).Range.Paste
Documents(2).Activate
'Documents(2).Select
For i = 1 To ActiveDocument.Sentences(1).Words.Count
   masSL(i) = ActiveDocument.Sentences(1).Words(i)
Next
k = 2
For i = 2 To ActiveDocument.Sentences.Count
   For j = LBound(masSL) To UBound(masSL)
     For Each w In ActiveDocument.Sentences(i).Words
     
      If Trim(masSL(j)) Like Trim(CStr(w)) Then
        masSLREZ(j) = masSL(j)
      End If
      Next
   Next j
   For k = 1 To 20
        masSL(k) = ""
   Next
   For k = 1 To 20
        masSL(k) = masSLREZ(k)
   Next
   For k = 1 To 20
        masSLREZ(k) = ""
   Next
   
   
Next
For p = 1 To 20
   If (Trim(masSL(p)) = ".";) Or (Trim(masSL(p)) = ",";) Then
      masSL(p) = ""
   End If
Next p

For y = 1 To 20
       stroka = stroka + " " + masSL(y)
Next y
If Trim(stroka) = "" Then
   MsgBox "&#237;&#229;&#242; &#242;&#224;&#234;&#232;&#245; &#241;&#235;&#238;&#226;"
   Else
MsgBox Trim(stroka)
End If
End Sub


вот такой. код я немного поспешил


P.S.
можно ли здесь свои сообщения редактировать

Ответить

Страница: 1 |

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



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