Конвертация void в byte[]
От: I_lich  
Дата: 21.09.07 08:14
Оценка: 6 (1) :))) :)))
Всем привет.
Юзаю Visual Studio 2003. Использую набор COM компонентов Office Web Componet версии 11 для рисования графика.
Создал обект objChart класса OWC.WCChart
ChartSpace objCSpace = new ChartSpaceClass ();
OWC.WCChart objChart = objCSpace.Charts.Add (0);

после того, как наполнил его данными, хочу нарисовать рисунок
Response.ContentType= "image/gif";
Response.BinaryWrite((byte[])(objCSpace.ExportPicture("test","gif",500,400)));
Response.End();

однако студия выдает: "Cannot convert type 'void' to 'byte[]'" на второй строчке.
Кусок кода взял из примера
http://www.csharphelp.com/archives4/archive623.html
там правда использовался метод GetPicture с параметрами ("gif",500,400), но у меня в классе его не оказалось, зато есть ExportPicture
Подскажите плз чем можно сконвертить!
Re: Конвертация void в byte[]
От: horry Россия  
Дата: 21.09.07 12:28
Оценка:
Здравствуйте, I_lich, Вы писали:

I_>Всем привет.

I_>Юзаю Visual Studio 2003. Использую набор COM компонентов Office Web Componet версии 11 для рисования графика.
I_>Создал обект objChart класса OWC.WCChart
I_>
I_>ChartSpace objCSpace = new ChartSpaceClass ();
I_>OWC.WCChart objChart = objCSpace.Charts.Add (0);
I_>

I_>после того, как наполнил его данными, хочу нарисовать рисунок
I_>
I_>Response.ContentType= "image/gif";
I_>Response.BinaryWrite((byte[])(objCSpace.ExportPicture("test","gif",500,400)));
I_>Response.End();
I_>

I_>однако студия выдает: "Cannot convert type 'void' to 'byte[]'" на второй строчке.
I_>Кусок кода взял из примера
I_>http://www.csharphelp.com/archives4/archive623.html
I_>там правда использовался метод GetPicture с параметрами ("gif",500,400), но у меня в классе его не оказалось, зато есть ExportPicture
I_>Подскажите плз чем можно сконвертить!

Если функция говорит, что она возвращает void, то это значит, что она ничего не возвращает , то есть конвертить полученную пустоту к byte[] бессмысленно. Как минимум, имеет смысл поискать что-нибудь, что возвращает byte[] и посмотреть, что это что-нибудь делает.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: Конвертация void в byte[]
От: artiz  
Дата: 21.09.07 14:47
Оценка: 3 (1)
Здравствуйте, I_lich, Вы писали:


I_>
I_>Response.ContentType= "image/gif";
I_>Response.BinaryWrite((byte[])(objCSpace.ExportPicture("test","gif",500,400)));
I_>Response.End();
I_>


MSDN:
ExportPicture Method
Saves the specified chart workspace or PivotTable list as a graphics file.

Этот метод экспортит картинку в файл на диске — прихранивай его где-нибудь а потом копируй в Response.OutputStream:
            // save file
            objCSpace.ExportPicture(fileName,"gif",500,400)
            
            FileInfo fileInfo = new FileInfo(fileName);
            if (!fileInfo.Exists)
                return;

            String shortFileName = fileInfo.Name;

            Response.Clear();
            Response.ContentType = "application/octet-stream";
            Response.AppendHeader("content-disposition", String.Format("attachment; filename={0:s};", shortFileName));

            FileStream f = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read);
            Byte[] buffer = new Byte[1024];
            int readed = 0;
            while ((readed = f.Read(buffer, 0, 1024)) > 0)
                context.Response.OutputStream.Write(buffer, 0, readed);

            context.Response.End();
... << RSDN@Home 1.2.0 alpha rev. 746>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.