Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Закрытая тема icpp 3.2.4.x (число прочтений - 27156 )
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
icpp 3.2.4.x
18. Марта 2012 :: 13:36
 
В процессе подготовки 3.2.4.0.

Добавил в icpp объекты для последовательного чтения и записи XML файлов.
Решение базируется на XmlLite и полностью реализует его интерфейсы, за исключением IXmlResolver и механизмов поддержки нестандартных кодировок.
IXmlResolver добавлю чуть позже.

В отличие от DOM модели, XmlLite не требователен к ресурсам.
В отличие от реализованных для 7.7 решений с последовательным доступом, XmlLite обладает внятной программной моделью и расширенными возможностями.

К примеру, у нас есть ветка, посвященная проблемам v7plus с доступом к значениям при последовательном доступе:
http://www.1cpp.ru/forum/YaBB.pl?num=1308048306
По объекту v7plus, предназначенному для записи, тоже есть, что сказать - но как бы хотелось бы уже не о том.

По XmlLite:

- Общая документация: http://msdn.microsoft.com/en-us/library/ms752872%28v=vs.85%29.aspx
- Поддержка является встроенной для ОС: XPsp3, Svr2003Sp2 и далее: http://msdn.microsoft.com/en-us/library/ee388577%28v=vs.85%29.aspx
- Для предыдущих версий существуют обновления: http://www.microsoft.com/download/en/search.aspx?q=xmllite

Компоновка icpp с xmllite.dll динамическая, никаких новых зависимостей не добавлено.
xmllite.dll будет подгружаться непосредственно в момент первого обращения к ссответствующим объектам icpp.

Нативно поддерживаемые кодировки: http://msdn.microsoft.com/en-us/library/ms752827%28v=vs.85%29.aspx

Референс интерфейса IXmlReader: http://msdn.microsoft.com/en-us/library/ms752743%28v=vs.85%29.aspx
Референс интерфейса IXmlWriter: http://msdn.microsoft.com/en-us/library/ms752860%28v=vs.85%29.aspx

По icpp/xmllite:

Добавлены объекты:
- 1cpp.XmlLiteReader
- 1cpp.XmlLiteWriter

Имена свойств и методов совпадают с референсными.
Порядок параметров методов совпадает с референсным, за исключением методов SetInput | SetOutput

- 1cpp.XmlLiteReader::SetInput(BinaryData Src, UINT nEncodingCodePage = 0 | LPCSTR nEncodingName, BOOL fEncodingHint = TRUE)
- 1cpp.XmlLiteWriter::SetOutput(BinaryData Dst, UINT nEncodingCodePage = CP_UTF8 | LPCSTR nEncodingName)

fEncodingHint влияет на возможность автоопределения кодировки файла в случае отсутствия BOM.
- fEncodingHint == 0 автоопределение запрещено (возможно исключение в случае несовпадения кодировок)
- fEncodingHint == 1 автоопределение разрешено

Также отличие методов объектов icpp отличается в характере обработки ошибок.
COM-интерфейсы XmlLite могут возвращать методам icpp ошибку в HRESULT.
В этом случае методы icpp генерируют исключения.

Значения S_OK и S_FALSE передаются в вызывающий контекст в качестве возвращаемых значенй.

Обратите внимание, в COM значением успеха S_OK является значение 0.
Поэтому в методах, которые могут возвращать S_OK(0) и S_FALSE(1) (например, Read(), MoveToNextAttribute()), поведение может быть непривычным с точки зрения 1С.
Тем не менее, значения данных кодов возврата методов COM-интерфейсов полностью сохранены для объектов icpp.

Список кодов ошибок: http://msdn.microsoft.com/en-us/library/ms753129%28v=vs.85%29.aspx
Возможно, чуть позже я добавлю методы объектов icpp типа GetErrorCode() / GetErrorDescription()

Для освобождения объектов добавлены методы объектов
1cpp.XmlLiteReader::Release()
1cpp.XmlLiteWriter::Release()

Для освобождения ресурсов, захваченных объектами BinaryData, необходим дополнительный вызов BinaryData::Close()

По документации:

К сожалению, я не могу сейчас взяться за перевод и адаптацию документации для icpp
Скорее всего, это будет поставлено в план на конец лета - осень.
Пока постараюсь ответить на вопросы по существующей документации, если они появятся.
В архиве есть микропример для быстрого ознакомления с базовыми моментами.

Комментарии по реализованному функционалу, как всегда, приветствуются и принимаются.

icpp 3.2.4.0 rc1
« Последняя редакция: 09. Марта 2015 :: 09:30 - kms »  

icpp-3-2-4-0-rc1.rar ( 571 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: icpp 3.2.4.x
Ответ #1 - 21. Марта 2012 :: 07:25
 
icpp 3.2.4.0 rc2

[-] 4551 - ТП: события мыши могут не отрабатывать для шапки или подвала
« Последняя редакция: 09. Марта 2015 :: 09:30 - kms »  

icpp-3-2-4-0-rc2.rar ( 564 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: icpp 3.2.4.x
Ответ #2 - 02. Декабря 2012 :: 20:07
 
icpp 3.2.4.0

3.2.4.0 rc2 выпущен в качестве релиза
« Последняя редакция: 09. Марта 2015 :: 09:30 - kms »  

icpp-3-2-4-0.rar ( 561 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: icpp 3.2.4.x
Ответ #3 - 26. Февраля 2013 :: 13:20
 
« Последняя редакция: 09. Марта 2015 :: 09:30 - kms »  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: icpp 3.2.4.x
Ответ #4 - 15. Марта 2013 :: 12:20
 
icpp 3.2.4.1

[-] 4554 - ИТ: возникновение числового значения в колонке "из ничего" при группировке после удаления колонки
« Последняя редакция: 09. Марта 2015 :: 09:30 - kms »  

icpp-3-2-4-1.rar ( 560 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: icpp 3.2.4.x
Ответ #5 - 09. Марта 2015 :: 09:27
 
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: icpp 3.2.4.x
Ответ #6 - 09. Марта 2015 :: 09:29
 
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать