Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
ВнизРазделитель целой и дробной части Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c