![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разделитель в числах real [D5, Win95/98, WinXP]
GEN++ © (2006-04-25 23:09:00)Как программно узнать: какой символ в системе используется
в качестве разделителя целой и дробной части "." или ","
для вывод в виде строки текста чисел в формате
"с плавающей точкой"
Германн (2006-05-08 02:43:00) [1]
> GanibalLector © (28.04.06 00:31) [7]
>
> Вообще-то, не обязательно ее принудительно ставить. Ведь
> можно и просто считать :
Имхо, в пользовательской программе как правило, её и нужно только читать!
biejo (2006-05-08 01:23:00) [2]Пример. Просто, надежно.
пустая форма, одна кнопка.
...
procedure TForm1.Button1Click(Sender : TObject);
Begin
Button1.Caption:=copy(floattostr(1.1),2,1);
End;
....
нажми кнопку - получишь результат
antonn (2006-04-28 10:04:00) [3]
function GetNormalize_text(s:string):string;
var i:integer; _b:boolean;
begin
_b:=false;
for i:=length(s) downto 1 do begin
if not(s[i] in ['0'..'9']) then
if (s[i] in [',','.']) then begin
if _b then delete(s,i,1) else begin
_b:=true;
s[i]:=DecimalSeparator;
end;
end else delete(s,i,1);
end;
if s='' then s:='0';
result:=s;
end;
нормализует текст, удаляет буквы и лишние знаки препинания:)
GanibalLector (2006-04-28 00:31:00) [4]Вообще-то, не обязательно ее принудительно ставить. Ведь можно и просто считать :
case Byte(DecimalSeparator) of
44: Caption:='Preved' ;
46: Caption:='Medved';
else Caption:='Fignya';
end;
GEN++ (2006-04-27 08:58:00) [5]Спасиюо всем. Все получилось
Моя пограмма генерит файл фрмата *.csv который далее
читает XL. В файле создаются числа целые и с плавющей
точкой.
zaqwsx (2006-04-26 14:15:00) [6]
> Ага, а если пользователь привык, что целую и дробную часть
> разделяет запятая и её-родимую и жмёт? Станешь объяснять,
> что кульные хацкеры используют для разделения целой и дробной
> частей исключительно точку?
при нажатии запятой программно ставить точку.
Lamer@fools.ua (2006-04-26 09:36:00) [7]> Пишешь DecimalSeparator:='.', например, в FormCreate и проблем с точкой не будет
Этого мало. Во-первых, ещё надо:
Application.UpdateFormatSettings := False;
А во-вторых, см. [3].
Чапаев (2006-04-26 09:30:00) [8]
> проблем с точкой не будет, даже если в системе в качестве
> разделителя установлена запятая
Ага, а если пользователь привык, что целую и дробную часть разделяет запятая и её-родимую и жмёт? Станешь объяснять, что кульные хацкеры используют для разделения целой и дробной частей исключительно точку?
AbrosimovA (2006-04-26 08:29:00) [9]Пишешь
DecimalSeparator:='.', например, в FormCreateи проблем с точкой не будет, даже если в системе в качестве разделителя установлена запятая.
Lamer@fools.ua (2006-04-26 00:46:00) [10]GetLocaleInfo() + LOCALE_SDECIMAL