С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 28
1

Определить количество чисел в тексте

26.06.2015, 18:47. Показов 2991. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать макрос, который по произвольному тексту определяет, имеет ли этот текст определенные свойства (зависящие от варианта - Назовем числом последовательность из цифр (0,1,…,9). При этом число должно быть словом (см. примечание). Определить, сколько в тексте чисел.).
Макрос должен вызываться какой-то комбинацией клавиш из документа с исходным текстом (создать его самостоятельно).
Результат работы макроса должен выводиться в виде сообщения Windows (используйте команду MsgBox(“Текст”) ).

Примечание.
Словом называется часть (подслово) какой-то строки, перед которой и после которой в этой строке либо ничего нет, либо стоит символ, отличный от буквы.

Помогите, пожалуйста(
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2015, 18:47
Ответы с готовыми решениями:

Определить количество предложений в тексте
Ввести текст. Определить количество предложений в тексте.

Определить количество предложений в тексте
как это можно осуществитьНе поленитесь в следующий раз перепечатать задание. В противном случае...

Ввести текст. Определить количество букв в тексте
Ввести текст. Определить количество букв в тексте.

Как с помощью макроса определить в тексте таблицу, и узнать количество строк/столбцов?
как с помощью макроса определить в тексте таблицу и узнать...количество строк...столбцов Заранее...

12
Модератор
Эксперт .NET
4314 / 3388 / 507
Регистрация: 27.01.2014
Сообщений: 6,186
26.06.2015, 19:13 2
что-то не совсем понятно...
Нужно в имеющемся тексте найти количество знаков, которые относятся к численным значениям?

Типа: Пр6ив1ет, 4как т5в5ои д0ел1а?7

Или нет?

Добавлено через 2 минуты
Или же определить количество слов, которые являются названиями самих чисел? от 0 до 9?

Тоесть: Ноль, Один, Два, ..., Девять? Так, тоесть определить кол-во этих слов?
0
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 28
26.06.2015, 19:28  [ТС] 3
Я сама толком не понимаю... Так сформулировано задание.
0
Модератор
Эксперт .NET
4314 / 3388 / 507
Регистрация: 27.01.2014
Сообщений: 6,186
26.06.2015, 19:38 4
Цитата Сообщение от Alex13889 Посмотреть сообщение
При этом число должно быть словом
Цитата Сообщение от Alex13889 Посмотреть сообщение
Определить, сколько в тексте чисел
Тоесть искать названия чисел от нуля до девяти
Цитата Сообщение от Yury Komar Посмотреть сообщение
Ноль, Один, Два, ..., Девять?
Добавлено через 2 минуты
Цитата Сообщение от Alex13889 Посмотреть сообщение
перед которой и после которой в этой строке либо ничего нет, либо стоит символ, отличный от буквы.
тоесть пробел, запятая. точка и так далее... разделитель кароче.

Добавлено через 1 минуту
Ну вот и ищи... а в чем писать то? Точнее для Excel или Word?

Добавлено через 2 минуты
разбиваешь строку на массив из слов, используя РАЗДЕЛИТЕЛЬ, который описывался в задании, и перебираешь каждый элемент массива на совпадение с названием числа, и так каждую строку текста.

Цикл в цикле сделай.
0
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 28
26.06.2015, 19:57  [ТС] 5
Yury Komar, в Word. И мы массивы еще не изучали. Нужно как-то обычным методом, наверно. Или может с помощью макрорекордера как-то.
0
Модератор
Эксперт .NET
4314 / 3388 / 507
Регистрация: 27.01.2014
Сообщений: 6,186
26.06.2015, 19:59 6
Alex13889, nen рекордер тебе не поможет, тебе ведь нужно по условию отбирать названия чисел и выдать результат об их количестве или что в результате должно быть сообщено,?.
0
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 28
26.06.2015, 20:18  [ТС] 7
Yury Komar, да....сколько в тексте чисел....

Добавлено через 7 минут
Yury Komar, вот у меня есть задание из этого блока, но с другим условием Определить, сколько в тексте невидимых слов. Невидимое слово – это “” .
С таким вот кодом.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Test2()
    
Dim c As Integer
Dim i As Integer
 
'ActiveWindow.ActivePane.View.ShowAll = True
 
 Dim r As Range
 
 
c = 0
For i = 1 To ActiveDocument.Words.Count
    Set r = ActiveDocument.Words(i)
    If r.Font.Hidden = True Then c = c + 1
Next i
 
 
MsgBox "Невидимых слов - " + Str(c)
MsgBox "Невидимых слов - " + Str(ActiveDocument.Words.Count)
End Sub
0
Модератор
Эксперт .NET
4314 / 3388 / 507
Регистрация: 27.01.2014
Сообщений: 6,186
27.06.2015, 04:48 8
Alex13889, ну и на примере этого сделай тоже самое и для нового задания

Добавлено через 7 минут
Alex13889,
Вобщем вот ответ тебе, только я тут сделал поиск числа\слова "один", доделай под все девять через например Select Case или добавление остальных уловий в обработчик IF...THEN...END IF

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Test1()
 
Dim c As Integer
Dim i As Integer
Dim r As Range
c = 0
 
For i = 1 To ActiveDocument.Words.Count
   Set r = ActiveDocument.Words(i)
      If r.Text = "один" Then c = c + 1
Next i
 
MsgBox "Числел в тексте: " & Str(c) & " из " & Str(ActiveDocument.Words.Count)
End Sub

Считаю этот ответ - ОТВЕТОМ НА ВОПРОС,! БЕЗ ИСПОЛЬЗОВАНИЯ МАССИВОВ.
Миниатюры
Определить количество чисел в тексте  
1
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 28
28.06.2015, 11:10  [ТС] 9
Yury Komar, что-то как-то криво у меня работает программа. Он даже не правильно считает.
Определить количество чисел в тексте
0
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 28
28.06.2015, 21:10  [ТС] 10
Yury Komar, помогите...
0
6172 / 937 / 310
Регистрация: 25.02.2011
Сообщений: 1,367
Записей в блоге: 1
28.06.2015, 22:56 11
Лучший ответ Сообщение было отмечено Alex13889 как решение

Решение

Цитата Сообщение от Alex13889 Посмотреть сообщение
Назовем числом последовательность из цифр (0,1,…,9). При этом число должно быть словом
Цитата Сообщение от Alex13889 Посмотреть сообщение
Словом называется часть (подслово) какой-то строки, перед которой и после которой в этой строке либо ничего нет, либо стоит символ, отличный от буквы.
Сдается мне, что нужно искать не названия чисел (а их все же не 10 а существенно больше, мы же не цифры ищем), а подсчитывать сами числа.

Исходя из описания задания, числом называется последовательность знаков, состоящая из цифр, т.е. не содержащая букв и др. знаков. В качестве разделителей слов (в том числе и чисел) используются любые небуквенные символы/разделители.

Т.к. не написано, где все это нужно сделать, предположу, что в Word, но т.к. я его объектную модель не знаю, то попробую написать функцию, которая подсчитывает кол-во чисел в тексте, которые подходят под определение "слово", т.е. последовательность символов разделенная пробелом либо др. небуквенными разделителями.

Добавлено через 28 минут
Учитывая, что нужно
Цитата Сообщение от Alex13889 Посмотреть сообщение
Определить, сколько в тексте чисел.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function kNum(ByVal txt As String) As Long
    Dim i As Long, w As String, m As String, k As Long
    txt = txt & " "
    For i = 1 To Len(txt)
        m = Mid$(txt, i, 1)
        If m Like "[0-9A-zА-яЁё]" Then
            w = w & m
        Else
            If IsNumeric(w) Then k = k + 1
            w = ""
        End If
    Next i
    kNum = k
End Function
 
Sub www()
    Dim txt As String
    txt = "Сколько получится если к 125 прибавить 569, затем вычесть 56, и все это умножить на 12? Должно получиться 7656."
    MsgBox "В тексте :" & vbLf & txt & vbLf & vbLf & "Содержится чисел - " & kNum(txt)
End Sub
1
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 28
29.06.2015, 21:00  [ТС] 12
m-ch, А как сделать, чтобы макрос текст видел в документе. А не в самом макросе пришлось бы вводить.
Цитата Сообщение от m-ch Посмотреть сообщение
"[0-9A-zА-яЁё]"
и откуда Вы знаете, что нужно именно так вводить?
И что означает оператор Like. Расскажите, пожалуйста. Меня очень интересуют эти вопросы.
0
Заблокирован
30.06.2015, 07:23 13
Цитата Сообщение от Alex13889 Посмотреть сообщение
что означает оператор Like
Поиском пользоваться не пробовали?
http://www.firststeps.ru/vba/vbahelp/r.php?89
1
30.06.2015, 07:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2015, 07:23
Помогаю со студенческими работами здесь

В массиве целых чисел определить количество противоположных по знаку одинаковых по модулю чисел
Сформируйте массив целых чисел и определите количество противоположных по знаку одинаковых по...

Макрос: определить количество двоек в массиве чисел
Создать макрос,определяющий количество двоек в массиве чисел и выводящий результат

Определить в массиве А (Н) количество последовательных непересекающихся пар чисел
Определить в массиве А(Н) количество последовательных непересекающихся пар чисел, в которых первое...

Дан массив целых чисел. Определить количество элементов, кратных a
Sub one() Dim B(20) As Integer Dim i, a, k As Integer For i = 20 To 1 Step -1 B(i) = Rnd * 20...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru