![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Понадобилось создать сайт для одной фирмы торгующей автозапчастями. Сделал шаблон для джумлы. Планируется к каждому разделу меню привязать прайс лист, соответствующий группе номенклатуры из их 1С. Конфа в 1с закрытая, ничего изменить не могу, так что пришлось воспользоваться стандартными средствами создания прайс листов в формате commerceML.
А теперь ближе к делу. 1С выгружает все группы номенклатуры в одну кучу. Получается xml файл около 100 000 строк. Для разделения этого барахла по группам я написал AIR приложение, которое парсит XML файл, выбирает оттуда все нужное, и по каждому разделу формирует структуру HTML таблицы. Все работает отлично, и в трейсе появляется правильная структура таблицы. Если ее оттуда скопировать, и вставить в пустую страницу, то в браузере отобразится именно такая таблица, как мне и нужна. Но копировать из трейса, мягко говоря, не удобно, поэтому я написал код для записи сформированного файла на жесткий диск автоматически. Тут и начались проблемы. Вот код, класса, который создает html: package { import flash.filesystem.File; import flash.filesystem.FileMode; import flash.filesystem.FileStream; public class HTMLFormatter { private var TABLE_HEADER:String = '<table border="1">\n'; private var TABLE_BOTTOM:String = '</table>'; private var _totalString:String = TABLE_HEADER; // Это строка, которая будет содержать весь код таблицы public var title:String = ""; public function addRow(...args):void { // этот код вызывается xml парсером, и как параметры передаются нужные реквизиты номенклатуры var params:Array = args as Array; _totalString += "<tr>"; for (var i:String in params) { _totalString += "<td>" + params[i] + "</td> \n"; } _totalString += "</tr>"; } public function closeTable():void { _totalString += TABLE_BOTTOM; // непосредственно запись файла на диск var file:File = File.desktopDirectory.resolvePath(String(Math.random()) + "table_air.html"); if (file.exists) file.deleteFile(); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeUTFBytes(_totalString); fileStream.close(); } } } Как можно задать строке нормальную кодировку? Уже задолбался искать.. Добавлено через 22 минуты Сам спросил - сам ответил. Вместо заюзал метод: Последний раз редактировалось goodguy; 30.03.2011 в 12:39. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:50. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|