Консультация № 67584
18.12.2006, 21:01
0.00 руб.
0 2 1
Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, есть ли в VB6 уже готовая функция/константа, позволяющая узнать, как настроены "Язык и региональные стандарты" на компе, на котором выполняется откомпилированная программа? Хочется, чтобы программа не ругалась, если разделитель целой и дробной частей по умолчанию - запятая...
Извините, если вопрос выглядит сумбурным.

Обсуждение

Неизвестный
19.12.2006, 12:15
общий
это ответ
Здравствуйте, Мотя!
В приложении функция возвращающая user default decimal separator(взята и переделана из MSDN), используя WindowsAPI



Приложение:
Option Explicit Private Declare Function GetLocaleInfo Lib "kernel32" _ Alias "GetLocaleInfoA" (ByVal Locale As Long, _ ByVal LCType As Long, ByVal lpLCData As String, _ ByVal cchData As Long) As Long Private Declare Function GetUserDefaultLCID% Lib "kernel32" () Private Const LOCALE_SDECIMAL = &HEFunction GetDS() As String Dim Symbol As String Dim iRet As Long Dim lpLCDataVar As String Dim Pos As Integer Dim Locale As Long Locale = GetUserDefaultLCID() iRet = GetLocaleInfo(Locale, LOCALE_SDECIMAL, lpLCDataVar, 0) Symbol = String$(iRet, 0) iRet = GetLocaleInfo(Locale, LOCALE_SDECIMAL, Symbol, iRet) Pos = InStr(Symbol, Chr$(0)) If Pos > 0 Then Symbol = Left$(Symbol, Pos - 1) End If GetDS = SymbolEnd Function
давно
Профессионал
848
1596
19.12.2006, 12:44
общий
Если дело только в разделителе дробной и целой части, то можно перед использованием числа искать в строке запятые и заменять их на точки.
Форма ответа