|
v7: Количество слов в строке. | ☑ | ||
---|---|---|---|---|
0
susik_haram
17.11.14
✎
14:03
|
А можно ли посчитать кол-во слов в строке ??
|
|||
1
Мигало
17.11.14
✎
14:04
|
(0) я не возражаю
|
|||
2
sergey198
17.11.14
✎
14:04
|
нафига?
|
|||
3
susik_haram
17.11.14
✎
14:06
|
Цена должна ставиться за количество слов...
|
|||
4
butterbean
17.11.14
✎
14:07
|
(3) 1С:Издательство ??
|
|||
5
Мигало
17.11.14
✎
14:08
|
(3) Предлоги тарифицируются ?
|
|||
6
butterbean
17.11.14
✎
14:08
|
(0) убери двойные/тройные пробелы, посчитай пробелы +1
|
|||
7
Галахад
гуру
17.11.14
✎
14:10
|
(6) Что делать с четверными/пятерными проблами?
|
|||
8
Мигало
17.11.14
✎
14:10
|
(7) Тоже убрать
Пока |
|||
9
vcv
17.11.14
✎
14:11
|
Что считаем словом?
"Петров-Водкин" одно слово или два? "100пудов" одно слово или два? "2*2=4" одно слово или несколько? Или совсем не слово? |
|||
10
Мигало
17.11.14
✎
14:11
|
Стр = "Фигня фсякая"
Пока Найти(Стр, " ") > 0 Цикл Стр = СтрЗаменить(Стр, " ", " "); КонецЦикла; |
|||
11
фобка
17.11.14
✎
14:12
|
(7) пока найти(Текст, " ") >0 цикл
Стрзамен |
|||
12
фобка
17.11.14
✎
14:13
|
(10) опередил
|
|||
13
dk
17.11.14
✎
14:17
|
если не заморачиваться с двойными пробелами см (10)
то просто Текст = СтрЗаменить(Строка1, " ", разделительстрок) Количествослов = стрколичествостро(текст) |
|||
14
butterbean
17.11.14
✎
14:20
|
(13) есть прекрасная функция СтрЧислоВхождений(Стр," ")
|
|||
15
an-korot
17.11.14
✎
14:20
|
для издательства что-ли? ))) оплата за слова.
|
|||
16
18_plus
17.11.14
✎
14:26
|
а если после запятой пробела нет?
|
|||
17
vcv
17.11.14
✎
14:30
|
ТекстСтроки = СтрЗаменить(ТекстСтроки,""""," ");
ТекстСтроки = СтрЗаменить(ТекстСтроки,","," "); ТекстСтроки = СтрЗаменить(ТекстСтроки,"."," "); ТекстСтроки = СтрЗаменить(ТекстСтроки,":"," "); ТекстСтроки = СтрЗаменить(ТекстСтроки,"-"," "); ТекстСтроки = СтрЗаменить(ТекстСтроки,"/"," "); ... еще куча каких надо ... Пока Найти(ТекстСтроки, " ") > 0 Цикл ТекстСтроки = СтрЗаменить(ТекстСтроки, " ", " "); КонецЦикла; Сообщить(СтрЧислоВхождений(ТекстСтроки," ")); |
|||
18
susik_haram
17.11.14
✎
14:30
|
Да, кста предлоги не учитываются....
|
|||
19
butterbean
17.11.14
✎
14:31
|
(18) ты специально ждал 18 постов чтоб это сказать??
|
|||
20
18_plus
17.11.14
✎
14:32
|
(19) супер. задача стала интереснее :)
|
|||
21
dk
17.11.14
✎
14:33
|
(18) см (17)
ТекстСтроки = СтрЗаменить(ТекстСтроки," из "," "); ТекстСтроки = СтрЗаменить(ТекстСтроки," под "," "); ТекстСтроки = СтрЗаменить(ТекстСтроки," на "," "); ... |
|||
22
vcv
17.11.14
✎
14:34
|
(18)
Тогда добавить ТекстСтроки = " "+НРег(ТекстСтроки)+" "; ТекстСтроки = СтрЗаменить(ТекстСтроки," в "," "); ТекстСтроки = СтрЗаменить(ТекстСтроки," без "," "); ТекстСтроки = СтрЗаменить(ТекстСтроки," до "," "); ТекстСтроки = СтрЗаменить(ТекстСтроки," из "," "); ТекстСтроки = СтрЗаменить(ТекстСтроки," к "," "); ТекстСтроки = СтрЗаменить(ТекстСтроки," на "," "); и еще сотня-другая подобных строк :) :) :) |
|||
23
18_plus
17.11.14
✎
14:34
|
как учитывать весь этот зоопарк?
http://ru.wiktionary.org/wiki/Категория:Русские_предлоги или не учитывать только В и НА ? |
|||
24
vcv
17.11.14
✎
14:35
|
(21) забыл перевести к нижнему регистру и добавить пробелы в конце и начале. А то фраза "Без пробела посчитает неправильно" неправильно посчитается.
|
|||
25
susik_haram
17.11.14
✎
14:36
|
спс, извиняюсь, что поздно отписал про предлоги, пришлось отойти от компа...
|
|||
26
vcv
17.11.14
✎
14:37
|
Если текст большой или его много и часто, быстрее будет резать строку на слова и проверять из на исключения. Чем бесконечные СтрЗаменить()
|
|||
27
18_plus
17.11.14
✎
14:37
|
нужно больше конкретики, иначе тут придётся ИИ писать.
союзы считать за слова? междометия? |
|||
28
wertyu
17.11.14
✎
14:37
|
(21)(22) лучше словарь исключений, туда пихать всё, что не оплачивается, в т.ч. предлоги
|
|||
29
18_plus
17.11.14
✎
14:39
|
проще всего регэкспом заменить все небуквы на пробел и принять, что слова короче 4-х букв не оплачиваются.
|
|||
30
vcv
17.11.14
✎
14:39
|
(27) Самое главное, не считать неопределенный артикль "*ля".
А то у некоторых писателей гонорар сразу в два раза вырастет. |
|||
31
butterbean
17.11.14
✎
14:39
|
(25) вот, думаю тебе хватит:
Сч = 0; Стр = СтрЗаменить(Стр , " ", Символы.ПС); Для а = 1 по СтрЧислоСтрок(Стр) Цикл Если СтрДлина(СтрПолучитьСтроку(Стр,а)) > 2 Тогда Сч = Сч + 1; КонецЕсли; КонецЦикла; |
|||
32
vcv
17.11.14
✎
14:41
|
(29)
>> слова короче 4-х букв не оплачиваются С предлогами не всё так просто: ------------------------------------- Простые (состоят из одного слова): в, с, к, у, над, на, перед, при и другие сложные (состоят из двух простых, соединённых дефисом): из-под, из-за, по-над и другие составные (состоят из нескольких слов): несмотря на, в отличие от, в связи с и другие ------------------------------------- |
|||
33
18_plus
17.11.14
✎
14:42
|
(32) я в (23) это и имел в виду
|
|||
34
dk
17.11.14
✎
14:42
|
короче грузим все в ворд и смотрим там статистику ))
|
|||
35
18_plus
17.11.14
✎
14:51
|
беглый поиск по онлайн сервисам подсчёта слов показал, что предлоги учитываются преимущественно простые, и те, что через дефис. так что можно просто забить в код.
|
|||
36
varelchik
17.11.14
✎
15:36
|
(18) ну или создать СписокЗначений со всем что надо не учитывать.В цикле сделать СтрЗаменить()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |