Имя: Пароль:
1C
1C 7.7
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) ну или создать СписокЗначений со всем что надо не учитывать.В цикле сделать СтрЗаменить()
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.