![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Win.ini ; - СРОЧНО!! [D6, Win95/98]
Zorro © (2002-12-11 11:09:00)Мужики, помогите!! процедурка не сложная, суть: написал прогу на инглиш версии для рассчета дробных чисел... на русской винде по умолчанию разделитель ,(запятая)
Требуется изменить в win.ini строку sDecimal=, на sDecimal=.
при выходе из программы обратно...
Спасибо
han_malign (2002-12-11 11:33:00) [1]Anatoly Podgoretsky © (11.12.02 11:25)
- клиенту обычно положить какие у него региональный настройки(хочет точку ставит, хочет запятую, тем более, что у нас разделители тысяч не используются), если не работает, то неправ разработчик, так что приходится учитывать почти все что может взбрести в голову юзверю. (Защита от дурака - должна быть максимально полной, кроме, естественно, случая когда для этого приходится ИИ писать)
han_malign (2002-12-11 11:28:00) [2]это, если утрированно:
for i:=1 to Length(InStr)do
if(not(InStr[i] in["0".."9","E","e","+","-"," "])and(InStr[i]<>DecimalSeparator))
then InStr[i]:=DecimalSeparator;
- вообще по хорошему, нужно полную проверку формата числа делать
Anatoly Podgoretsky (2002-12-11 11:25:00) [3]Правильнее что бы программа не зависела от разделителя, а работала с региональными настройками и только в редких исключительных случаях можно на них плевать.
Программа написанная без извращений автоматически будет работать так.
FreeLancer (2002-12-11 11:24:00) [4]Я же написал:
Initialization
...
DecimalSeparator := ".";
Zorro (2002-12-11 11:24:00) [5]2FreeLancer: Спасибо!!
Zorro (2002-12-11 11:19:00) [6]может действительно win.ini не трогать - какие есть более мягкие методы? чтобы разделитель "." стал пониматься не переписывая кода?
TStringList+StringReplace хм...
FreeLancer (2002-12-11 11:14:00) [7]Song © (11.12.02 11:11)>
> Ну дык TStringList+StringReplace - первое что в голову пришло
Зачем же сразу Win.ini править? Есть куда более мягкие методы.
FreeLancer (2002-12-11 11:12:00) [8]Опять DecimalSeparator := "."; ?
Song (2002-12-11 11:11:00) [9]Ну дык TStringList+StringReplace - первое что в голову пришло