Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как осуществить экспортирование данных из среды макромедия (http://www.flasher.ru/forum/showthread.php?t=197380)

eft.ya 06.04.2013 13:08

Как осуществить экспортирование данных из среды макромедия
 
Здравствуйте!Я создаю что то вроде тестирующего пособия.Мне требуется выводить результаты тестирования в файл майкрософт офиса.Возможно ли это?подскажите пожалуйста.заранее благодарю.

NikolyA 06.04.2013 15:50

в doc файл?

Александр Мостовой 06.04.2013 15:51

Цитата:

файл майкрософт офиса
У майкрософта много форматов данных и приложений.

Самое простое для вас решение выводить данные в формат CSV, который умеет открывать Exel. Он представляет из себя простой текстовый файл со значениями в кавыках через запятую
"value1", "value2", "value3"

Ну, а вообще во флеше можно практически все и на многое уже есть готовые решения. Если нужен другой формат поищите поиском готовую библиотеку. Уверен что библиотеки rtf и xls уже существуют.
Ну а в docx, например, вы можете разобраться и самомтояетльно:
переименуйте расширение с docx на zip, и получите обычной архив содержащийв себе хмл и медиаданные. Нелья, конечно сказать что разобратьс очень просто, но менять некоторые эелементы не составит большого труда

caseyryan 06.04.2013 16:36

А никого не смутил тот факт, что тема в разделе ас3, а вопрос по макромедия флеш?
В ней нет ас3.

Александр Мостовой 06.04.2013 16:40

хе-хе :)

wvxvw 06.04.2013 17:28

Еще не известно в чем именно ошибка. Есть люди которые до сих пор любой Флеш называют "Макромедия Флеш". В конце концов - Адоби до сих пор хранят настройки в папке macromedia. :)

eft.ya, стоит все-таки рассказать по-подробнее про поставленную задачу и условия. Иначе вопрос становится очень обширным и на него сложно дать конкретный ответ.

eft.ya 07.04.2013 13:05

Я извиняюсь,если кого то смущает моя неграмотность в этих вопросах,так как я действительно,мягко сказать "плаваю"...может быть я действительно не по адресу даже обращаюсь...
В моей работе в принципе ни чего сложного и грандиозного нет,тестирующее пособие по нескольким темам,с несколькими вариантами.В чем для меня трудность,когда подходит последний вопрос теста,студент нажимает кнопку "закончить".При нажатии этой кнопки результаты тестирования должны выводиться и сохраняться в файл doc или xls.Подскажите (желательно по подробнее) что здесь можно сделать,или может быть ссылку,где я смогу с этим со всем разобраться.

Александр Мостовой 07.04.2013 14:04

Самое простое решение, как говорил, - сохранять в формат CSV. Эт опросто текстовый файл, который Exel умеет открывать, решение посложнее заюзать какую-нибудь библиотеку генерации RTF или PDF.

Добавлено через 6 минут
Сохранять в файл из флешки на диск можно так:

Код AS3:

var fileLocal:FileReference = new FileReference();
fileLocal.save(byteArray, "fileName.ext");

Инициируется только по клику кнопки
byteArray - заполнить CSV данными

Вам не подходит CSV?

eft.ya 07.04.2013 15:57

не знаю как с этим работать(((((

Александр Мостовой 07.04.2013 16:00

Ну как говрил:
просто пишите значения через запятую в кавычках и Exel его понимает как родной
Код:

"value1", "value2", "value3"

eft.ya 07.04.2013 16:21

допустим мои значения хранятся в переменных,то есть результаты тестирования ,1й вопрос- от 0 до 10 баллов это а1,второй а2 и тд.также в этот файл должно выводиться текущее время,номер варианта,и ФИО тестируемого. как мне это все описывать в коде,и как сформировать таблицу?

Добавлено через 11 минут
Результаты тестирования которые должны выводиться хранятся в переменных,допустим 1й вопрос от 0 до 10 баллов это а1,2й вопрос а2 и тд.Помимо этих цифер должны выводиться текущая дата,номер варианта,название темы,ФИО тестируемого...как это все организовать в коде?могли бы вы примерно(но подробно желательно) показать

Александр Мостовой 07.04.2013 16:35

А вы код пишите во фреймах или классах?

Ну самый простой вариант увидеть файл - заполнить таблицу в Exel и сохранить как в CSV

eft.ya 07.04.2013 16:45

во фрейме

Александр Мостовой 07.04.2013 17:02

Код AS3:

//Заполняем где-то в коде данные
var record:Object = {};
record.age = 33;
record.name ="asaa";
record.result = 42;
//и другие параметры, которые вам нужны
var records:Array = new Array();
records.push(record);
records.push(record);
records.push(record);
records.push(record);
 
 
 
//Вывод данных
 
var output:String = "";
//Выволим первую строку - заглоки полей
for (var paramName:String in records[0])
{
        output += '"' + paramName + '", ';
}
output += "\r\n";
 
//Проходимся по всем записям
var len:uint = records.length;
for (var i:uint = 0; i < len; i++)
{
        var record:Object = records[i];
        for (var param:String in record)
        {
                //Выводим каждый параметр
                output += '"' + String(record[param]) + '", ';
        }
        output += "\r\n";
}
trace(output);


eft.ya 07.04.2013 17:11

спасибо огромное

Александр Мостовой 07.04.2013 17:21

Цитата:

Сообщение от eft.ya (Сообщение 1128658)
спасибо огромное

Тогда вот еще сохранение в файл :)

Код AS3:

///Заполняем где-то в коде данные
var record:Object = {};
record.age = 33;
record.name ="ivan";
record.time =100;
record.result = 42;
//и другие параметры, которые вам нужны
var records:Array = new Array();
records.push(record);
records.push(record);
records.push(record);
records.push(record);
 
 
 
//Вывод данных
 
var output:String = "";
//Выволим первую строку - заглоки полей
for (var paramName:String in records[0])
{
        output += '"' + paramName + '", ';
}
output += "\r\n";
 
//Проходимся по всем записям
var len:uint = records.length;
for (var i:uint = 0; i < len; i++)
{
        record = records[i];
        for (var param:String in record)
        {
                //Выводим каждый параметр
                output += '"' + String(record[param]) + '", ';
        }
        output += "\r\n";
}
trace(output);
 
//Дальше кодирует в байты и сохраняете на диск при клике
 
stage.addEventListener(MouseEvent.CLICK, stage_clickHandler);
 
function stage_clickHandler(e:Event):void
{
        var fileLocal:FileReference = new FileReference();
        var bytesToSave:ByteArraynew ByteArray();
        bytesToSave.writeMultiByte(output, "windows-1251");
        bytesToSave.position = 0;
        fileLocal.save(bytesToSave, "fileName.csv");
}

Только с кодировкой еще нужно посмотреть


Часовой пояс GMT +4, время: 17:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.