| 
| 
 | Вопрос # 5 074/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Для хранения данных использую ini-файлы (класс TMemIniFile)
 в основном использую методы для записи/загрузки чисел (ReadFloat)
 в основном все дробные данные записывались в файл через запятую (Value= 0,0105)
 Возникла такая проблема:
 На некоторых ПК стоит аглийкий вариант ввода, и все данные записываются через точку(Value= 0.0105)
 Соответственно, возникает проблема переносимости данных.
 
 Что можно сделать, если нельзя изменить настройки ОС Windows (пользователь использует так настроеную систему для других программ)??
 
 Очень нужен ваш совет. Спасибо
 
|  |   Вопрос задал: Aндрей (статус: 1-ый класс)Вопрос отправлен: 8 марта 2011, 16:38
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 9; последнее сообщение — 12 марта 2011, 11:50; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 8 марта 2011, 18:34 [#1]:В любом случае числа - это набор байтов. Вот так его и храни. Для extended будет 10 байт. Очень поможет директива absolute. Научить или сам справишься? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | bugmenot (статус: 3-ий класс), 8 марта 2011, 20:34 [#2]:Вздор, INI придумали для того, чтобы не хранить по 80 бит двоичных данных (и кстати, ReadBinaryStream, а не absolute) 
 А решается выбором "кошерного" десятичного разделителя, и использованием StrToFloatDef с параметром FormatSettings, где он установлен
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | Aндрей (статус: 1-ый класс), 9 марта 2011, 09:27 [#3]:min@y™: лучше научить bugmenot: где почитать - я темный в этом вопроосе?
 |  
|   | min@y™ (статус: Доктор наук), 9 марта 2011, 10:02 [#4]: Цитата (Aндрей): лучше научить Может не надо?
 Пиши в файл методом WriteFloat(), а читай методом ReadString() и приводи разделитель к нужному виду. Есть ещё процедура Val(), которой по барабану региональные настройки, она принимает только точку в качестве разделителя.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Aндрей (статус: 1-ый класс), 9 марта 2011, 10:42 [#5]:min@y™: хотелось бы, или может можно красиво переопределить ReadFloat? |  
|   | Вадим К (статус: Академик), 9 марта 2011, 10:51 [#6]:Ну так кто мешает? пишем свой класс-наследник и всех делов то. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 9 марта 2011, 10:53 [#7]: Цитата (Вадим К): Ну так кто мешает? пишем свой класс-наследник и всех делов то.  Присоединяюсь.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 9 марта 2011, 11:10 [#8]:а если делфи с последних, то можно написать хелпер. То есть, такой небольшой класс, который расширит функциональность основного TIniFiles и добавит ему пару новых методов, типа TrueReadFloat.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | bugmenot (статус: 3-ий класс), 12 марта 2011, 11:50 [#9]:> bugmenot: где почитать - я темный в этом вопроосе? F1? десятичный разделитель внезапно называется DecimalSeparator
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |