|
Поиск года в строке | ☑ | ||
---|---|---|---|---|
0
NikolayNiko
23.10.17
✎
14:08
|
НЕ могу найти алгоритм. Подскажите пожалуйста, как сделать.
Пример: "2 квартал 2015 г." или "2013-2014". |
|||
1
Лефмихалыч
23.10.17
✎
14:11
|
vbscript.regexp
\d\d\d\d |
|||
2
Лефмихалыч
23.10.17
✎
14:11
|
или \d{4,4}
|
|||
3
NikolayNiko
23.10.17
✎
14:15
|
(2) Не cилен в VB, к сожалению. Можно как-то ближе к 1с?
|
|||
4
Масянька
23.10.17
✎
14:16
|
(3) Откуда берется "2 квартал 2015 г." или "2013-2014"?
|
|||
5
vfire1000
23.10.17
✎
14:17
|
(3) RegExp = Новый COMОбъект("VBScript.RegExp");
|
|||
6
1dvd
23.10.17
✎
14:17
|
(3) ПОДОБНО
|
|||
7
Lexey_
23.10.17
✎
14:18
|
(3) Лев(), Прав(), Сред()
|
|||
8
NikolayNiko
23.10.17
✎
14:18
|
(4) Строка, забивается в ручную. Реквизит ТЧ документа
|
|||
9
Масянька
23.10.17
✎
14:19
|
(8) Не понял... Это ручками забивают "2 квартал 2015 г."?
|
|||
10
NikolayNiko
23.10.17
✎
14:21
|
(9) да
|
|||
11
igork1966
23.10.17
✎
14:21
|
(8) Сделал бы ты там ввод стандартного периода периода, а хранил как две даты
|
|||
12
Лефмихалыч
23.10.17
✎
14:21
|
(3) можно
RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.IgnoreCase = истина; RegExp.Global = истина; RegExp.MultiLine = Истина; RegExp.Pattern = "\d{4,4}"; Matches= RegExp.Execute("Пример: 2 квартал 2015 г. или 2013-2014"); Для Сч = 0 по Matches.Count()-1 Цикл Match = Matches.Item(Сч); Сообщить("""" + Match.Value+ """"); КонецЦикла; |
|||
13
Масянька
23.10.17
✎
14:21
|
(10) А если забьют "2 кв. 15 г." - чего делать будешь?
|
|||
14
NikolayNiko
23.10.17
✎
14:22
|
(7) Не догадываюсь как это можно использовать в данном случае
|
|||
15
NikolayNiko
23.10.17
✎
14:23
|
(13) такого не должно быть. Если встретиться - исправлять в ручную
|
|||
16
Масянька
23.10.17
✎
14:24
|
(15) Зашибись...
Рекомендую внимательно прочитать (11). |
|||
17
NikolayNiko
23.10.17
✎
14:24
|
(12) что-то новенькое
|
|||
18
NikolayNiko
23.10.17
✎
14:26
|
(16) Что есть - то есть. Моя задача получить год в формате ГГГГ.
|
|||
19
Лефмихалыч
23.10.17
✎
14:26
|
(16) +100500
и еще по рукам себя линейкой шлёпнуть рекомендую и больше так (8) не делать |
|||
20
igork1966
23.10.17
✎
14:26
|
(15) Никогда не говори никогда. Рано или поздно это дело забудут и пользователь введет как ему захочется. B c претензией к прогу.
Может сразу нормально сделать не текстовым полем? |
|||
21
Масянька
23.10.17
✎
14:27
|
(18) Автоматизация бардака приводит к автоматизированному бардаку (С)
|
|||
22
1dvd
23.10.17
✎
14:27
|
Для Идн = 1700 По 2200 Цикл
Если Найти(СтрокаСГодом, "" + Идн)>0 Тогда НайденГод = Идн; КонецЕсли; КонецЦикла; |
|||
23
igork1966
23.10.17
✎
14:30
|
(22) неразрывные пробелы пользователь как введет? ;-)
|
|||
24
NikolayNiko
23.10.17
✎
14:31
|
(20) Вы не поняли. У меня есть база, куда долгие годы в реквизит ТЧ документа(строкового типа) вносили эти данные. Теперь создан реквизит документа с типом дата. Мне нужно написать обработку, которая перелопатит все документы, отберет самую свежую дату из ТЧ каждого документа и присвоит её реквизиту документа. Как-то так
|
|||
25
NikolayNiko
23.10.17
✎
14:31
|
В реквизит тч уже никто ничего больше вбивать не будет
|
|||
26
Лефмихалыч
23.10.17
✎
14:33
|
(24) а много документов?
|
|||
27
igork1966
23.10.17
✎
14:33
|
(24) если у тебя одна дата, то "2013-2014" как год преобразовывать хочешь? В 2013?
|
|||
28
NikolayNiko
23.10.17
✎
14:33
|
(26) довольно таки да
|
|||
29
igork1966
23.10.17
✎
14:34
|
(24) варианты только указанные в (0)?
|
|||
30
1dvd
23.10.17
✎
14:34
|
(23) пардон
Для Идн = 1700 По 2200 Цикл Если Найти(СтрокаСГодом, Формат(Идн, "ЧГ=0"))>0 Тогда НайденГод = Идн; КонецЕсли; КонецЦикла; |
|||
31
NikolayNiko
23.10.17
✎
14:34
|
В самую свежую, то есть в 2014. А ТЧ может быть несколько строк с датой. Там то же самое - берем самую свежую
|
|||
32
NikolayNiko
23.10.17
✎
14:35
|
(29) НЕт, варианты могут быть разные. Главное что дата в формате ГГГГ
|
|||
33
perester
23.10.17
✎
14:39
|
(0) короче парсишь строку в цифры и готово, или как подсказал (30) , если это разовая акция то изящество решения это не главное
|
|||
34
Масянька
23.10.17
✎
14:41
|
(31) А что за документ? Смысловая нагрузка его какова?
|
|||
35
NikolayNiko
23.10.17
✎
14:45
|
(34) Да обычный документ. Самописная конфа.
|
|||
36
NikolayNiko
23.10.17
✎
14:46
|
(30) Попробуем. Спасибо всем кто отозвался!
|
|||
37
Масянька
23.10.17
✎
14:48
|
(35) У обычного документа есть дата. Смысл даты (периода) в ТЧ?
|
|||
38
NikolayNiko
23.10.17
✎
14:51
|
(37) Говорю же самописка. Был какой-то умысел видимо у создателя. Но сейчас это уже не нужно. Нужна просто одна самая свежая дата
|
|||
39
igork1966
23.10.17
✎
14:52
|
(38) еще нечто такое:
Год = 0; сч = 1; Пока сч <= СтрДлина(СтрокаСГодом) Цикл год = ""; Пока сч <= СтрДлина(СтрокаСГодом) и СтрНайти("0123456789", Сред(СтрокаСГодом,cч,1)) > 0 Цикл год = год + Сред(СтрокаСГодом,cч,1); сч = сч + 1; КонецЦикла; Если СтрДлина(год) = 4 Тогда Год = Макс(Год,Число(год)); КонецЕсли; сч = сч + 1; КонецЦикла; |
|||
40
Масянька
23.10.17
✎
14:52
|
(38) Так... Пойдем длинным путём...
Дата документа и дата из ТЧ чем отличаются? А вообще, если "умысел" не понятен - снеси и не выноси мозг. |
|||
41
X Leshiy
23.10.17
✎
14:56
|
(40) Может он сам разберется?
|
|||
42
NikolayNiko
23.10.17
✎
14:57
|
(40) Дата документа не причем! Есть реквизит "Дата бла-бла", отличный от даты документа. Что значит Снеси?
|
|||
43
NikolayNiko
23.10.17
✎
14:59
|
(39) Всё же я думал есть какие-то менее "творческие" пути) Не уж то придется так извращаться?
|
|||
44
igork1966
23.10.17
✎
14:59
|
(42) в переменную Год нужно как-то отлично от год назвать...
|
|||
45
Масянька
23.10.17
✎
14:59
|
(42) В (38) написано: "Был какой-то умысел видимо у создателя. Но сейчас это уже не нужно." Если "не нужно" - снеси.
А что нужно? Смысл этой "Дата бла-бла"? |
|||
46
igork1966
23.10.17
✎
15:01
|
(45) Он уже выбросил, хочет в старых документах заполнить новое поле по этому полю, чтобы заставить пользователей исправить только немного документов где год не сумеет вычислить из этого текста.
|
|||
47
NikolayNiko
23.10.17
✎
15:03
|
(46) именно!
|
|||
48
Масянька
23.10.17
✎
15:04
|
(46) Подожди...
"Дата бла-бла" снес, значит, на фиг не нужно. А год зачем тогда? |
|||
49
Масянька
23.10.17
✎
15:05
|
(47) Что "именно"? Top secret - что за док-т, и что за дата (период)?
|
|||
50
RomaH
naïve
23.10.17
✎
15:05
|
(43) см (3)
|
|||
51
RomaH
naïve
23.10.17
✎
15:06
|
ну если не хочешь (3) см ВК в БСП - в поиске и удалении дублей используется fuzzy чего-то там
|
|||
52
RomaH
naïve
23.10.17
✎
15:07
|
(43) см не (3), а (12)
|
|||
53
Масянька
23.10.17
✎
15:07
|
(46) Кстати, если это акт сверки - период есть в ТЧ. Так, к слову.
|
|||
54
NikolayNiko
23.10.17
✎
15:24
|
(12) Спасибо большое! Все работает!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |