Формат отображения дробный чисел
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7374
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Формат отображения дробный чисел
Привет всем !
Есть ли в Clarion возможность отображать (форматировать) десятичное число с дробной частью, в соответсвии
с установленными в настройке Windows "Язык и региональные стандарты" значениями разделителей:
- разделитель целой и дробной части
- разделитель групп разрядов ?
Зараннее спасибо ...
Есть ли в Clarion возможность отображать (форматировать) десятичное число с дробной частью, в соответсвии
с установленными в настройке Windows "Язык и региональные стандарты" значениями разделителей:
- разделитель целой и дробной части
- разделитель групп разрядов ?
Зараннее спасибо ...
За теми кто отстал - не возвращаться. (С) Кодекс
Re: Формат отображения дробный чисел
Надо видимо попробовать слазить в реестр (там наверняка вид по умолчанию в чем-то хранится) и потом разобрать его в нужый вариант. Другого в голову не приходит.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7374
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Формат отображения дробный чисел
Не знаю как в реестре, но есть функции WinAPI позволяющие получить значения разделителей тысяч разрядов, дробной и целой части частей числа.
С этим проблем нет. Вопрос в том, есть ли значения для форматирования чисел в Clarion с учетом этих настроек ...
Например для форматирования даты есть шаблон Format(ДАТА,@D17/@D18) ....
С этим проблем нет. Вопрос в том, есть ли значения для форматирования чисел в Clarion с учетом этих настроек ...
Например для форматирования даты есть шаблон Format(ДАТА,@D17/@D18) ....
За теми кто отстал - не возвращаться. (С) Кодекс
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Формат отображения дробный чисел
Добрый день!
Это Вы про это:
@N9.2 4,550.75 Two decimal places, period decimal separator
@N_9.2B 4550.75 Two decimal places, period decimal separator, no grouping, blank if zero
@N_9`2 4550,75 Two decimal places, comma decimal separator
@N9.`2 4.550,75 Comma decimal separator, group with periods
@N9_`2 4 550,75 Comma decimal separator, group with spaces
или я не въехал?
Алексей
Это Вы про это:
@N9.2 4,550.75 Two decimal places, period decimal separator
@N_9.2B 4550.75 Two decimal places, period decimal separator, no grouping, blank if zero
@N_9`2 4550,75 Two decimal places, comma decimal separator
@N9.`2 4.550,75 Comma decimal separator, group with periods
@N9_`2 4 550,75 Comma decimal separator, group with spaces
или я не въехал?
Алексей
- Игорь Столяров
- Ветеран движения
- Сообщения: 7374
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Формат отображения дробный чисел
Не совсем.
Эти форматы отображают число с установленным в самом формате разделителем.
И никак не реагируют на установку разделителей в настройке форматов отображения чисел Windows ....
Эти форматы отображают число с установленным в самом формате разделителем.
И никак не реагируют на установку разделителей в настройке форматов отображения чисел Windows ....
За теми кто отстал - не возвращаться. (С) Кодекс
Re: Формат отображения дробный чисел
Вот это
в шарпе напимер не работает в листе , всегда разряды запятая и точность точка , об этом видимо и вопрос.@N_9`2 4550,75 Two decimal places, comma decimal separator
@N9.`2 4.550,75 Comma decimal separator, group with periods
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Формат отображения дробный чисел
Добрый день!
Игорь: что мешает
1. Взять из реестра: HKEY_USERS\.DEFULT\Control Panel\International
с помощью GetReg
значение разделителя, например .(точка) или ,(запятая)
2. В зависимости от этого в переменную CSTRING записать формат, например : FF='@N9.2'
3. Выводить данные с FORMAT(xxx,FF) , так как
FORMAT(value,picture)
FORMAT Returns a formatted numeric string.
value A numeric expression for the value to be formatted.
picture A picture token or the label of a CSTRING variable containing a picture token.
Или я опять не вьехал?
Алексей
Игорь: что мешает
1. Взять из реестра: HKEY_USERS\.DEFULT\Control Panel\International
с помощью GetReg
значение разделителя, например .(точка) или ,(запятая)
2. В зависимости от этого в переменную CSTRING записать формат, например : FF='@N9.2'
3. Выводить данные с FORMAT(xxx,FF) , так как
FORMAT(value,picture)
FORMAT Returns a formatted numeric string.
value A numeric expression for the value to be formatted.
picture A picture token or the label of a CSTRING variable containing a picture token.
Или я опять не вьехал?
Алексей
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Re: Формат отображения дробный чисел
Я уверен, Игорю ничего не мешает, он просто спросил, нет ли встроенных picture tokens для десятичных чисел, типа @d17 для дат.
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7374
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Формат отображения дробный чисел
Вот теперь как раз-таки все правильно.Алексей- Софт-Центр писал(а):Или я опять не вьехал ? Алексей
Но фишка в том, что что если мы говорим юзеру, что "В прикладной программе разделители для тысячных и дробных разрядов чисел используются из настройки ОС Windows", то следует быть готовым к тому, что кроме точек и запятых там может оказать какая угодно хрень. Ситуация ухудшается если с программой работают пользователи из разных стран.
А дальше всетает вопрос о том, что нужно быть готовым анализировать все возможные варианты разделителей и на их основании формировать некий шаблон отображения числа в прикладной программе. Получить разделители и написать формирование такого шаблона конечно можно, но достаточно грустно.
Еще один пример из жизни кроликов. При экспорте чисел (именно чисел с возможностью расчета по формулам, а не строк с изображением числа !), через OLE в MS Excel - числом считается строка состоящая из цифр и разделителей по региональной настройке Windows. Другими словами, если у пользователя за каким то ... установлен разделитель десятичных разрядов "," (запятая), то "123.45" (c точкой) - не считается числом. Да, можно переключить эту настройку для экспортируемой таблицы - но будет только хуже. Нужно выводить число с таким форматом разделителей, с которым работает пользователь на каждом конкретном компьютере (с настройкой Windows на этом компьютере). Вот поэтому и возник вопрос. Но видимо ответа нет - нужно писать обработку формата ручками ...
За теми кто отстал - не возвращаться. (С) Кодекс
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Формат отображения дробный чисел
Добрый день!
1. В readme описания установки программы огромными буковками пишем, что необходимо установить в настройках панели управления в качестве разделителя точку.
(здесь возможно неудобство пользователя, постоянно переключая настройки, но мы "чисты перед законом" )
2. Допускаем, что в большенстве случаях разделителей всего два: точка или запятая. И в том же readme об этом пишем.
Алексей
Совершенно верно. Сколько раз с таким сталкиваемся! Но пока нашли два решения, Одно из которых с некоторым допущениемПри экспорте чисел (именно чисел с возможностью расчета по формулам, а не строк с изображением числа !), через OLE в MS Excel
1. В readme описания установки программы огромными буковками пишем, что необходимо установить в настройках панели управления в качестве разделителя точку.
(здесь возможно неудобство пользователя, постоянно переключая настройки, но мы "чисты перед законом" )
2. Допускаем, что в большенстве случаях разделителей всего два: точка или запятая. И в том же readme об этом пишем.
Алексей
- Игорь Столяров
- Ветеран движения
- Сообщения: 7374
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Формат отображения дробный чисел
Если считать, что лучше что-то, чем ничего - то это решение.
Как говорится "сколько ни пиши ReadMe - программа от этого лучше работать не станет" ...
К сожалению изменение напрямую в региональных настройках могут привести к проблемам работы с другим ПО, установленным на компьютере.
Предложения сделать это вручную - не всякий пользователь полезет их менять ...
Что касается указание используемых разделителей в настройках прикладной программы - то здесь сразу возникают проблемы использования программы на разных компьютерах, например в локальной сети, (на которых в общем случае могут быть разные региональные настройки Windows).
Нужно делать функцию форматирования числа с учетом региональных настроек Windows. Вот и все ...
Как говорится "сколько ни пиши ReadMe - программа от этого лучше работать не станет" ...
К сожалению изменение напрямую в региональных настройках могут привести к проблемам работы с другим ПО, установленным на компьютере.
Предложения сделать это вручную - не всякий пользователь полезет их менять ...
Что касается указание используемых разделителей в настройках прикладной программы - то здесь сразу возникают проблемы использования программы на разных компьютерах, например в локальной сети, (на которых в общем случае могут быть разные региональные настройки Windows).
Нужно делать функцию форматирования числа с учетом региональных настроек Windows. Вот и все ...
За теми кто отстал - не возвращаться. (С) Кодекс
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Формат отображения дробный чисел
Добрый день!
1. Считали настройку в переменную R string(1), используя Getreg.
2. В переменную CSTRIG FF='@N_-9'&R&'2'
3. Выводим Format(xxx,FF)
Как то так!
Алексей
Тем более, что это делается достаточно просто:Нужно делать функцию форматирования числа с учетом региональных настроек Windows. Вот и все ...
1. Считали настройку в переменную R string(1), используя Getreg.
2. В переменную CSTRIG FF='@N_-9'&R&'2'
3. Выводим Format(xxx,FF)
Как то так!
Алексей
- Игорь Столяров
- Ветеран движения
- Сообщения: 7374
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Формат отображения дробный чисел
В общем-то да, что-то вроде этого.
Только нужно предусмотреть еще:
- установку разделителя для тысяч;
- управлямое кол-во знаков после десятичной точки;
- получение разделителей через WinApi, а не из реестра (что бы избежать проблем совместимости версий Windows)
Только нужно предусмотреть еще:
- установку разделителя для тысяч;
- управлямое кол-во знаков после десятичной точки;
- получение разделителей через WinApi, а не из реестра (что бы избежать проблем совместимости версий Windows)
За теми кто отстал - не возвращаться. (С) Кодекс
Формат отображения дробный чисел
Из всех высказываний так и не получен ответ на вопрос Игоря Столярова:Игорь Столяров писал(а): ↑29 Май 2011, 12:37Привет всем !
Есть ли в Clarion возможность отображать (форматировать) десятичное число с дробной частью, в соответсвии
с установленными в настройке Windows "Язык и региональные стандарты" значениями разделителей:
- разделитель целой и дробной части
- разделитель групп разрядов ?
Зараннее спасибо ...
"Есть ли в Clarion возможность отображать (форматировать) десятичное число с дробной частью, в соответствии с установленными в настройке Windows "Язык и региональные стандарты" значениями разделителей" - есть ли штатное стандартное решение от SoftVelocity?
В настройке Windows "Язык и региональные стандарты" значениями разделителей" десятичный разделитель ',' (запятая) а в сгенерированном коде через шаблоны ABC '.' (точка)
- Дед Пахом правильно подметил
Вопрос: где в шаблонах ABC изменить код Clarion для формата десятичного дробного разделителя с '.' (точки) на разделитель ',' (запятая) или применить автоформат токенов (шаблона формата числа) в соответствии с региональными настройками Windows аналогичный picture tokens для десятичных чисел, типа @d17 для дат?
- Игорь, поделись информацией, решился ли у тебя этот вопрос?Игорь Столяров писал(а): ↑02 Июнь 2011, 12:17Если считать, что лучше что-то, чем ничего - то это решение.
Как говорится "сколько ни пиши ReadMe - программа от этого лучше работать не станет" ...
К сожалению изменение напрямую в региональных настройках могут привести к проблемам работы с другим ПО, установленным на компьютере.
Предложения сделать это вручную - не всякий пользователь полезет их менять ...
Что касается указание используемых разделителей в настройках прикладной программы - то здесь сразу возникают проблемы использования программы на разных компьютерах, например в локальной сети, (на которых в общем случае могут быть разные региональные настройки Windows).
Нужно делать функцию форматирования числа с учетом региональных настроек Windows. Вот и все ...
С Уважением, Developer
- Игорь Столяров
- Ветеран движения
- Сообщения: 7374
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Формат отображения дробный чисел
Ну это Вы опять какого-то трупака столетнего копнули … В том виде как вопрос задан - решения нет.
Но можно получить данные из WinAPI и сформировать формат с учётом региональных настроек
Windows, как описано в теме: viewtopic.php?f=1&t=471&hilit=GetLocaleInfo
За теми кто отстал - не возвращаться. (С) Кодекс