|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835
|
Разделитель целой и дробной части хранится в реестре, насколько мне помнится.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
В своей программе совсем не обязательно, чтобы автоматически учитывались региональные настройки. Это зависит от используемых компонентов и мозгов программиста. А с мозгами "в стране напряженка". Поэтому программисты часто уверены, что у всех DECIMAL_SEPARATOR должен быть установлен, как и у них.
В хороших программах это обязательно учитывается. В момент ввода данных и в моменты преобразования для вычислений и для вывода на экран. Хороший компонент также не даст ввести неправильный разделитель в момент ввода числа. Это у хорошего компонета "в мозги зашито". Если нет хорошего компонента, должны включаться мозги программиста для вставки в обработчик событий дополнительного кода по преобразованию данных. В реестр лазить не надо, необходимо обращаться к функциям API, так как место хранения сепаратора может изменяться. |
|||
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Думается мне, что дело тут не в мозгах, а всего лишь в отсутствии опыта.
А все, что подобает сделать опытному старшему товарищу - это привести короткий исчерпывающий пример кода, в котором грамотно "разруливается" подобная ситуация. Многим пригодилось бы (и мне в том числе).
__________________
...в шее моей жилы железные, и лоб мой - медный... |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Например, так (на Pascal):
Код:
DecimalSeparator - глобальная переменная Windows. Она временно переопределяется на точку, получаем правильное число штатной функцией. Возможно и противоположное применение, например Код:
Для вывода данных на печать используются подобные функции, только заменяющие разделитель на нужный. Хорошо, если в программе есть возможность для пользователя настроить, что использовать - "точку", "запятую" или "из региональных настроек". Тогда в могло бы быть наподобие Код:
В каждую программу это пихать не надо, это может быть в одном модуле, а в программе, вместо StrToFloat использовать MyStrToFloat. |
|||
|
||||
Регистрация: 17.10.2008
Саратов
Сообщений: 426
|
Невъехал как #24 применить в "гребаном" VBA.
Вот помогло это: Замена точки или запятой в строке на разделитель установленный в реестре. Код:
Последний раз редактировалось Baldares, 21.11.2008 в 12:05. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
У путёвого админа непременно стоит запрет на запуск Windows Script Host - распахнутых настежь ворот для атак на компьютер. Зачем из-за такой ерунды всё это запускать?
Одно из достоинств (самое большое) этого "гребаного" (по твоему выражению) в том, что из него можно вызывать функции обычных dll, в том числе WinAPI. Ну уж и реестр-то наверняка напрямую читать умеет, без всяких шеллов. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835
|
Что умеет без Shell - это да. Но "напрямую" - это вряд ли
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |
БРЕД СИВОЙ КОБЫЛЫ | Kryaker | Разное | 1876 | 29.12.2006 23:41 |