Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 184

/ вопрос открыт /

Здравствуйте! Как изменить тип данных, записываемых в атрибуты тега XML-документа с помощью компонента XMLDocument. Если присваивать значение XMLDocument1.ChildNodes.Nodes['Файл'].Attributes['НаличиеОборота']:=true, то записывается значение типа строка. Если присваивать значение так:
b:=true;
XMLDocument1.ChildNodes.Nodes['Файл'].Attributes['НаличиеОборота']:=b, то записывается значение типа строка, а хочется записать значение булевого типа...

lexus Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: lexus (статус: Посетитель)
Вопрос отправлен: 9 июня 2012, 09:30
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 13 июня 2012, 21:44; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 9 июня 2012, 09:49 [#1]:

А как должно выглядеть логическое значение в текстовом файле? НаличиеОборота="0" или НаличиеОборота="1"? А у тебя в итоге что там получается?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
lexus

lexus (статус: Посетитель), 9 июня 2012, 10:06 [#2]:

Вообще значение должно быть либо НаличиеОборота="True" либо НаличиеОборота="False"
min@y™

min@y™ (статус: Доктор наук), 9 июня 2012, 10:13 [#3]:

Цитата (lexus):

Вообще значение должно быть либо НаличиеОборота="True" либо НаличиеОборота="False"

А чем тебя "0" и "1" не устраивает? Ну, допустим, есть функции BoolToStr() и StrToBool(), можешь ими воспользоваться.

З.Ы. По причине использования типа OleVariant и большого количества лишних наворотов я отказался от TXMLDocument и много лет юзаю другой компонент для работы с XML. Для упрощения работы с ним я написал пару десятков дополнительных функций и не парюсь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
lexus

lexus (статус: Посетитель), 9 июня 2012, 11:52 [#4]:

Пользовался StrToBool, все-равно пишется значение типа строка. Есть xsd-схема, согласно которой проверяется файл. Вообще есть образец файла и там указано именно НаличиеОборота="True". Попробовал поставить НаличиеОборота=1, проверка прошла успешно. Спасибо!
min@y™

min@y™ (статус: Доктор наук), 9 июня 2012, 12:04 [#5]:

Цитата (lexus):

Спасибо!

Да пожалуйста. Заходите истчо!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
lexus

lexus (статус: Посетитель), 9 июня 2012, 12:36 [#6]:

Добрался до следующей проблемы. Как сохранить в xml-файле число типа decimal(5 знаков после запятой), чтобы разделителем разрядов была точка? И какой это тип данных в delphi? Данные беру из поля таблицы dbase IV(поле типа float)
min@y™

min@y™ (статус: Доктор наук), 9 июня 2012, 12:42 [#7]:

Цитата (lexus):

Как сохранить в xml-файле число типа decimal(5 знаков после запятой), чтобы разделителем разрядов была точка?

Как это сделать с помощью TXMLDocument - не знаю, я им не пользуюсь. Поэкспериментируй.

Цитата (lexus):

И какой это тип данных в delphi? Данные беру из поля таблицы dbase IV(поле типа float)

Типы данных с плавающей точкой (различной степени точности): Single (4 байта), Double (8 байт), Extended (10 байт).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
lexus

lexus (статус: Посетитель), 13 июня 2012, 21:44 [#8]:

может кому-то поможет
var
//следующие переменные нужны для установки разделителя разрядов
TempSeparator:char;
FS:TFormatSettings;
begin
//устанавливаем разделителем разрядов точку
TempSeparator := DecimalSeparator;
FS.DecimalSeparator := '.';
//собственно запись числа с разделителем точка и 5 знаками после
FormatFloat('0.00000',значение типа extended,FS);

20 июня 2012, 21:22: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.02 сек.