Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.21;
Скачать: CL | DM;

Вниз

Разделитель целой и дробной части   Найти похожие ветки 

 
Oleg   (2003-08-06 18:39) [0]

Для определения сабжа использую:

DecimalSeparator:=",";

и дальше уже перевожу стринги с , в веществ. числа.
всегда это работало без проблем, но сегодня попался мне слабенький аппарат с вин2000, так вот на нем разделитель подменялся не всегда, а со 2 - 3-го раза.


 
clickmaker ©   (2003-08-06 18:45) [1]

слабенький аппарат с вин2000

Процессор разгонять не пробовал? Или винт пошустрее поставить?


 
Oleg   (2003-08-06 19:32) [2]

не пробовал, поскольку это аппарат клиента, да вобщем-то и программа должна быть вездеходной.


 
dataMaster ©   (2003-08-06 19:48) [3]

Идея бредовая, но все же... Может системе нужна задержка во времени, чтобы успеть в себе переключить значение DecimalSeparator"а? Или хотя бы выполнить ProcessMessages после DecimalSeparator:=",";


 
ZrenBy ©   (2003-08-06 19:52) [4]

Для вездеходности вообще нужно избегать
использования перевода стринги с , в веществ. числа

Например, число, при желании,
можно представлять в виде 123456E-4
или вообще использовать ф-ии DoubleToHex и HexToDouble или
DoubleToInt64 и Int64ToDouble

А если какая-нибудь прога меняет мой любимый
DecimalSeparator (не точка и не запятая) - дольше минуты
она не проживет


 
Anatoly Podgoretsky ©   (2003-08-06 20:03) [5]

Oleg (06.08.03 19:32)
Вездеходный говоришь, а сам творишь беспредел на машине пользователя, ему виднее какой разделитель использовать.
Да пользователь давно тебе должен кое что начистить, что бы было неповадно и близко тебя не подпускать к компьютеру, а то машинка виновата, лучше в зеркало посмотри.


 
Vladymir   (2003-08-07 00:36) [6]

А вот так, что нельзя:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key in [".", ","]) then Key:= DecimalSeparator;
end;
Здесь о сепараторах несколько лет возня поднимается на ровном месте...


 
Bel ©   (2003-08-07 09:26) [7]

Ты не должен подменять разделитель, ты должен использовать использующийся системой разделитель. Вот это будет правильно.


 
Reindeer Moss Eater   (2003-08-07 09:38) [8]

Vladymir
Не все так просто. Попадись тебе строка с разделителем тысяч - и привет.


 
Е-моё имя ©   (2003-08-07 09:40) [9]

иногда нужно использовать свой разделитель
пример
с сервера приезжают строки, там числа с точками
на клиенте надо эти числа обработать как числа


 
Anatoly Podgoretsky ©   (2003-08-07 09:57) [10]

Е-моё имя © (07.08.03 09:40)
Не надо использовать свой разделитель, надо просто привести строку к должному формату. Не следует забывать, что DecimalSeparator не Thread Safе (до версии 7)


 
Сергеич   (2003-08-07 11:28) [11]

Могу предложить компоненты, которые автоматически отслеживают эти пробл-ы
abc@aeroflot.ru


 
Oleg.   (2003-08-07 15:56) [12]

Anatoly Podgoretsky © (06.08.03 20:03)
Для выплеска эмоций лучше по чатам пройди, а в форуме они не украшают.
А вот реальная задача: сохранять и считывать вещественные числа на разных компьютерах в обычном текстовом файле, чтобы можно было легко увидеть и оценить параметры даже без программы.
Конечно можно при записи в файл всегда вместо системного разделителя подставлять свой символ(хотя бы и точку) и затем его при чтении заменять этот символ на системный разделитель, но как-то коряво это выглядит.


 
Anatoly Podgoretsky ©   (2003-08-07 16:43) [13]

Oleg. (07.08.03 15:56)
Никаких реальных проблем твоя реальная ситуация не представляет. Но руки требуется прикладывать, конечно можно играться разделителем, но только так, что бы это не затрагивало пользователя и при этом не нарваться на проблемы, из его глобальности.



Страницы: 1 вся ветка

Текущий архив: 2003.08.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-68182
Beginner3000
2003-07-25 23:59
2003.08.21
Lookup поле


1-68282
Evg12
2003-07-30 16:30
2003.08.21
Помогите решить проблему с ProgressBar


4-68578
Igor__
2003-06-15 23:04
2003.08.21
Иконки в XP


14-68530
Сергеич
2003-08-05 11:56
2003.08.21
Столкнулся с любопытной пробл.


3-68198
ray_w
2003-07-25 19:40
2003.08.21
DBGrid?