| 
| 
 | Вопрос # 6 184/ вопрос открыт / | 
 |  Здравствуйте! Как изменить тип данных, записываемых в атрибуты тега XML-документа с помощью компонента XMLDocument. Если присваивать значение XMLDocument1.ChildNodes.Nodes['Файл'].Attributes['НаличиеОборота']:=true, то записывается значение типа строка. Если присваивать значение так:b:=true;
 XMLDocument1.ChildNodes.Nodes['Файл'].Attributes['НаличиеОборота']:=b, то записывается значение типа строка, а хочется записать значение булевого типа...
 
|  |   Вопрос задал: lexus (статус: Посетитель)Вопрос отправлен: 9 июня 2012, 09:30
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 8; последнее сообщение — 13 июня 2012, 21:44; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 9 июня 2012, 09:49 [#1]:А как должно выглядеть логическое значение в текстовом файле? НаличиеОборота="0" или НаличиеОборота="1"? А у тебя в итоге что там получается? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | lexus (статус: Посетитель), 9 июня 2012, 10:06 [#2]:Вообще значение должно быть либо НаличиеОборота="True" либо НаличиеОборота="False" |  
|   | min@y™ (статус: Доктор наук), 9 июня 2012, 10:13 [#3]: Цитата (lexus): Вообще значение должно быть либо НаличиеОборота="True" либо НаличиеОборота="False"  А чем тебя "0" и "1" не устраивает? Ну, допустим, есть функции BoolToStr() и StrToBool(), можешь ими воспользоваться.
 
 З.Ы. По причине использования типа OleVariant и большого количества лишних наворотов я отказался от TXMLDocument и много лет юзаю другой компонент для работы с XML. Для упрощения работы с ним я написал пару десятков дополнительных функций и не парюсь.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | lexus (статус: Посетитель), 9 июня 2012, 11:52 [#4]:Пользовался StrToBool, все-равно пишется значение типа строка. Есть xsd-схема, согласно которой проверяется файл. Вообще есть образец файла и там указано именно НаличиеОборота="True". Попробовал поставить НаличиеОборота=1, проверка прошла успешно. Спасибо! |  
|   | min@y™ (статус: Доктор наук), 9 июня 2012, 12:04 [#5]: Цитата (lexus): Спасибо! Да пожалуйста. Заходите истчо!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | lexus (статус: Посетитель), 9 июня 2012, 12:36 [#6]:Добрался до следующей проблемы. Как сохранить в xml-файле число типа decimal(5 знаков после запятой), чтобы разделителем разрядов была точка? И какой это тип данных в delphi? Данные беру из поля таблицы dbase IV(поле типа float) |  
|   | 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 (статус: Посетитель), 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 » Алгоритмы, преобразования модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |