[mapguide-users] ByteReader Problem

Kenneth, GEOGRAF A/S ks at geograf.dk
Fri Aug 31 12:13:58 EDT 2007


The only way around it, that I have found, is to copy/paste code like this:

System.IO.MemoryStream ms = new System.IO.MemoryStream();
byte[] buf = new byte[8*1024];
int read = 1;
while(read != 0)
{
    read = mapByteRdr.Read(buf, buf.length);
  ms.Write(buf, 0, read);
}

//ms now contains the stream

Regards, Kenneth, GEOGRAF A/S



Campbell, Keith A skrev:
> Thanks Dennis.
>  
> I've tried this, but I'm only getting 8192 bytes read into the byte 
> buffer. This seems to be the problem mentioned by Kenneth. The Read 
> method doesn't seem to allow the start location for the read to be 
> set, so looping until the entire content of the Resource is read into 
> the buffer doesn't seem to be an option.
>  
> Presumably somebody must have found a way around this.
>  
> Keith
>
> ------------------------------------------------------------------------
> *From:* mapguide-users-bounces at lists.osgeo.org 
> [mailto:mapguide-users-bounces at lists.osgeo.org] *On Behalf Of *Jonio, 
> Dennis (Aviation)
> *Sent:* 31 August 2007 14:05
> *To:* MapGuide Users Mail List
> *Subject:* RE: [mapguide-users] ByteReader Problem
>
> ... this sequence tends to work     
>
>  
>
>      // For some reason the MgByteReader "disappears"
>
>      // This seems to work ....
>
>             long long_length = rs.GetResourceContent(resId).GetLength();
>
>             byte[] byteBuffer = new byte[long_length];
>
>             int numBytes = 
> rs.GetResourceContent(resId).Read(byteBuffer, (int)long_length);
>
>  
>
> -----Original Message-----
> *From:* mapguide-users-bounces at lists.osgeo.org 
> [mailto:mapguide-users-bounces at lists.osgeo.org] *On Behalf Of 
> *Campbell, Keith A
> *Sent:* Friday, August 31, 2007 7:10 AM
> *To:* MapGuide Users Mail List
> *Subject:* [mapguide-users] ByteReader Problem
>
>  
>
> I am trying to alter a map definition through the API and cannot get 
> the contents of the MgByteReader in string format. Here's the code:-
>
>             String mapDefinition = "Library://My Folder/Maps/My 
> Map.MapDefinition";
>             MgResourceIdentifier MapResID = new 
> MgResourceIdentifier(mapDefinition);
>
>             MgByteReader mapByteRdr = 
> res.GetResourceContent(MapResID);//res is instantiated Resource Service.
>
>             XmlDocument doc = new XmlDocument();
>            
>             doc.LoadXml(mapByteRdr.ToString());
>
> LoadXML fails with an error ' Root element is missing'. I can copy the 
> contents of mapByteRdr from Visual Studio at runtime and it contains 
> properly formatted XML for the map definition. If I use the ToFile() 
> method, the resultant file is empty. I cannot see why these two 
> methods do not return the xml string in the reader. Any help is welcome.
>
> Cheers,
>
> Keith
>
>  
>
> *This email and any attached files are confidential and copyright 
> protected. If you are not the addressee, any dissemination of this 
> communication is strictly prohibited. Unless otherwise expressly 
> agreed in writing, nothing stated in this communication shall be 
> legally binding.*
>
> The ultimate parent company of the Atkins Group is WS Atkins plc. 
> Registered in England No. 1885586. Registered Office Woodcote Grove, 
> Ashley Road, Epsom, Surrey KT18 5BW.
>
> P *Consider the environment. Please don't print this e-mail unless you 
> really need to.*
>
> ------------------------------------------------------------------------
>
> E-mails are automatically scanned for viruses using McAfee.
>
>
>
> This message has been scanned for viruses by MailControl 
> <http://bluepages.wsatkins.co.uk/?6875772>
>
>
>
> *This email and any attached files are confidential and copyright 
> protected. If you are not the addressee, any dissemination of this 
> communication is strictly prohibited. Unless otherwise expressly 
> agreed in writing, nothing stated in this communication shall be 
> legally binding.*
>
> The ultimate parent company of the Atkins Group is WS Atkins plc. 
> Registered in England No. 1885586. Registered Office Woodcote Grove, 
> Ashley Road, Epsom, Surrey KT18 5BW.
>
> P *Consider the environment. Please don't print this e-mail unless you 
> really need to.*
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20070831/a54fb1ff/attachment.html


More information about the mapguide-users mailing list