|
Парсер форматной строки хочу |
☑ |
0
Garykom
гуру
22.03.20
✎
22:21
|
Понадобился сабж для анализа/парсинга форматной строки.
В смысле на входе есть форматная строка (которая как в функции "Формат" и "Конструктор форматной строки").
И надо разобрать программно сколько в ней указано знаков после запятой, какой разделитель и т.д.
Самому ваять гм, может уже готовая функция есть где?
Которая структуру возвращает по входящей форматной строке.
|
|
1
NcSteel
22.03.20
✎
22:27
|
А через выполнить не проще?
|
|
2
Garykom
гуру
22.03.20
✎
22:31
|
(1) Думаю ты не понял.
Мне надо редкостный изврат сделать в плане показывать числа целые без нулей сзади, а вот если дробные то с нужным числом знаков после запятой до последнего значащего.
1,000 надо показать как 1
1,0100000 надо показать как 1,01
1,0000000 надо показать как 1
1,1000000 как 1,1
и т.д.
|
|
3
Garykom
гуру
22.03.20
✎
22:32
|
(2)+ И не просто показать а свой диалог ввода наваять в т.ч. дробных чисел
|
|
4
NcSteel
22.03.20
✎
22:37
|
(2) Ты говоришь, что есть форматная строка, которую надо разобрать. Но зачем непонятно.
И зачем разбирать, если просто возьми число и по форматной строке получи число строкой. И показывай пользователю
|
|
5
Garykom
гуру
22.03.20
✎
22:42
|
(4) Есть форматная строка "ЧДЦ=3; ЧРД=,"
Мне надо узнать что КоличествоЗнаков=3 и что РазделительДробной="," остальное не важно.
Парсер готовый есть?
|
|
6
Garykom
гуру
22.03.20
✎
22:43
|
(5)+ Потому что я буду динамически менять ФорматРедактирования для поля, сам конструируя форматную строку по нужным параметрам.
|
|
7
Сияющий в темноте
22.03.20
✎
23:04
|
Я делал проще,везде,где числа использовал тип Число:Целая.Дробная
и писал преобразование в конструктор описания типа и обратно-остальное,нафиг не нужно,в принципе,так как форматная строка задает много чего лишнего,например,как выводить ноль.
|
|
8
takefive
22.03.20
✎
23:12
|
НСтр("ЧДЦ=3; ЧРД=,", "ЧРД")
|
|
9
RomanYS
22.03.20
✎
23:48
|
(8) красиво
|
|
10
Garykom
гуру
22.03.20
✎
23:54
|
(8) Грязный хак.
Но надо проверить что возвращает если нет такого "кода языка".
И очень некрасиво если все "коды языков" = параметрам в форматной строке пробовать получить.
|
|
11
RomanYS
23.03.20
✎
00:00
|
(10)
1. Возвращает пустую строку
2. Не понял
|
|
12
Garykom
гуру
23.03.20
✎
00:07
|
(11) 2. Я не знаю сколько там параметров в форматной строке, мне надо все получить.
с НСтр придется все перепробовать:
ЧРД = НСтр("ЧДЦ=3; ЧРД=,", "ЧРД");
ЧДЦ = НСтр("ЧДЦ=3; ЧРД=,", "ЧДЦ");
//и т.д.
|
|
13
D_E_S_131
23.03.20
✎
11:27
|
(10) СтрРазделить() вроде бы не хак, а как раз для этого.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший