Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Разделитель в числах 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо