iQXML

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
seawolf
Старожил
Сообщения: 213
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

iQXML

Сообщение seawolf »

Вот сто лет не работал c iQXML. Стало нужно пару таблиц скинуть в xml. Поставил 63 под 9059 версию (кла 63) и не могу - все русские буквы в кракозябры! Строку заголовка сформировал
<?xml version="1.0" encoding="windows-1251" ?> и все ... Как лечить ???
seawolf
Старожил
Сообщения: 213
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: iQXML

Сообщение seawolf »

Отвечу сам себе, исходный данные лежали в dos кодировке пришлось их крутнуть в win1251 и потом заслать с iqxml. Проблем нет - русский язык понимается!
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Re: iQXML

Сообщение StillZero »

если только начинаешь пользоваться, то не надо, это ГОВНО
Все сайты закрыты...
seawolf
Старожил
Сообщения: 213
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: iQXML

Сообщение seawolf »

Да просто надо по быстрому выгрузить, а для этого лень работать с xml как с Ascii
Савченко Геннадий
Посетитель
Сообщения: 27
Зарегистрирован: 07 Июль 2005, 18:42

Re: iQXML

Сообщение Савченко Геннадий »

А чем посоветуешь разбирать XML В CLARION?
Савченко Геннадий
Посетитель
Сообщения: 27
Зарегистрирован: 07 Июль 2005, 18:42

Re: iQXML

Сообщение Савченко Геннадий »

А чем посоветуешь разбирать XML в clarion?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: iQXML

Сообщение Игорь Столяров »

StillZero писал(а):если только начинаешь пользоваться, то не надо, это ГОВНО
Не согласен. Да, в IQ-XML, точнее в некоторых его релизах бывают приколы, в основном связанные с русской кодировкой,
но в целом прекрасный продукт и другой альтернативы для быстрого написания XML парсера в Clarion нет.
К тому же полностью бесплатный. Работаем много лет - в целом весьма довольны.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Re: iQXML

Сообщение Дед Пахом »

Можно заюзать Cla#.
Процедура экспорта таблицы:

Код: Выделить всё

Utils.ExportToXml    PROCEDURE(FILE pFile, STRING pRootName, STRING pTableName, STRING pPath)
da                        ClaFileDataAdapter
dt                        ClaDataTable
ds                        DataSet
  CODE
  da &= new ClaFileDataAdapter(pFile)
  dt &= new ClaDataTable(pTableName)
  ds &= NEW DataSet(pRootName)

  OPEN(pFile)
  da.Fill(dt)
  CLOSE(pFile)

  ds.Tables.Add(dt)

  TRY
    ds.WriteXml(pPath)
  CATCH Exception ex
    MESSAGE(ex.Message)
  END
Файл:

Код: Выделить всё

fTeachers FILE,DRIVER('TOPSPEED'),PRE(TEA),CREATE,BINDABLE,THREAD,NAME('TEACHERS.TPS')
KeyTeacherNumber      KEY(TEA:Number),NOCASE,OPT,PRIMARY
KeyLastName           KEY(TEA:LastName),DUP,NOCASE
KeyDepartment         KEY(TEA:Department),DUP,NOCASE,OPT
Record                RECORD,PRE()
Number                  SIGNED, NAME('Number')
FirstName               CLASTRING(20), NAME('FirstName')
LastName                CLASTRING(20), NAME('LastName')
Address                 CLASTRING(20), NAME('Address')
City                    CLASTRING(20), NAME('City')
State                   CLASTRING(2), NAME('State')
Zip                     SIGNED, NAME('Zip')
Telephone               CLASTRING(12), NAME('Telephone')
Department              SIGNED, NAME('Department')
                      END
                    END
Вызов:

Код: Выделить всё

  Utils.ExportToXml(fTeachers, 'TestDB', 'Teachers', 'teachers.xml')
Результат работы (''teachers.xml'):

Код: Выделить всё

<?xml version="1.0" standalone="yes"?>
<TestDB>
  <Teachers>
    <Number>227332673</Number>
    <FirstName>Neal E</FirstName>
    <LastName>Ackerman</LastName>
    <Address>348 Tidd Dr</Address>
    <City>Lighthouse Point</City>
    <State>FL</State>
    <Zip>33243</Zip>
    <Telephone>305-555-9156</Telephone>
    <Department>2</Department>
  </Teachers>
  <Teachers>
    <Number>361830604</Number>
    <FirstName>Dean E</FirstName>
    <LastName>Adams</LastName>
    <Address>2813 Park Ave</Address>
    <City>Lighthouse Point</City>
    <State>FL</State>
    <Zip>33338</Zip>
    <Telephone>305-555-1372</Telephone>
    <Department>3</Department>
  </Teachers>

.......................
и так далее.
С уважением, ДП
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Re: iQXML

Сообщение StillZero »

Савченко Геннадий писал(а):А чем посоветуешь разбирать XML в clarion?
не могу дать совет...
Все сайты закрыты...
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: iQXML

Сообщение Yufil »

Встроенным парсером CW6, он рабочий (ну, почти...)
Савченко Геннадий
Посетитель
Сообщения: 27
Зарегистрирован: 07 Июль 2005, 18:42

Re: iQXML

Сообщение Савченко Геннадий »

Встроенным парсером CW6, он рабочий (ну, почти...)

пять лет назад разбирал. Пробую сейчас создать процедуру , а не подключаются xml библиотеки clarion.
Не могу вспомнить как их подключить.
Подскажет кто?
Савченко Геннадий
Посетитель
Сообщения: 27
Зарегистрирован: 07 Июль 2005, 18:42

Re: iQXML

Сообщение Савченко Геннадий »

Да clarion 6.3
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: iQXML

Сообщение Yufil »

Самый простой способ - сделать скрытую кнопочку и повесить на неё шаблон XML View или что-то в этом виде.
Или в начало вставить (After Global Includes)

PROGRAM

INCLUDE('CPXML.INC'),ONCE
INCLUDE('XMLCLASS.INC'),ONCE

Кстати, в XMLView есть полезная функция FillDOMQueue, которая загружает XML-файл в очередь, собственно, и показываемая шаблоном.
Савченко Геннадий
Посетитель
Сообщения: 27
Зарегистрирован: 07 Июль 2005, 18:42

Re: iQXML

Сообщение Савченко Геннадий »

Спасибо , про XML View сам еле допер, ну забыл. А про FillDOMQueue попробую.
Савченко Геннадий
Посетитель
Сообщения: 27
Зарегистрирован: 07 Июль 2005, 18:42

Re: iQXML

Сообщение Савченко Геннадий »

Самый простой способ - сделать скрытую кнопочку и повесить на неё шаблон XML View или что-то в этом виде.
Или в начало вставить (After Global Includes)

PROGRAM

INCLUDE('CPXML.INC'),ONCE
INCLUDE('XMLCLASS.INC'),ONCE

Кстати, в XMLView есть полезная функция FillDOMQueue, которая загружает XML-файл в очередь, собственно, и показываемая шаблоном.

Просьба. не мог бы на майл new0707@mail.ru кинуть пример реального разбора XML и как воспользоваться функцией FillDOMQueue.
Ответить