<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Very odd.<br>
<br>
I have been using this code to read data from the server:<br>
<br>
<tt>XmlDocument doc = new XmlDocument();<br>
{ <br>
MgByteReader rd = rs.GetResourceContent(new
MgResourceIdentifier(webLayout));<br>
using(System.IO.MemoryStream ms = new System.IO.MemoryStream())<br>
{<br>
byte[] buf = new byte[1024];<br>
int c = 0;<br>
do<br>
{<br>
c = rd.Read(buf, buf.Length);<br>
ms.Write(buf, 0, c);<br>
} while (c != 0);<br>
ms.Position = 0;<br>
doc.Load(ms);<br>
}<br>
}</tt><br>
<br>
It worked the last time I used it, but that was a while ago (around 1.2
beta 1, I think).<br>
<br>
<pre class="moz-signature" cols="72">Regards, Kenneth, GEOGRAF A/S
</pre>
<br>
<br>
Campbell, Keith A skrev:
<blockquote
cite="mid:2D5D8AC034A54041A6B2AE1C9148CC3106B6D6F8@SGBBMA2102.wsatkins.com"
type="cite">
<title>ByteReader Problem</title>
<meta http-equiv="Content-Type" content="text/html; ">
<meta content="MSHTML 6.00.2900.3059" name="GENERATOR">
<div dir="ltr" align="left"><font color="#0000ff" face="Arial"
size="2"><span class="757551811-03092007">Kenneth,</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" face="Arial"
size="2"><span class="757551811-03092007"></span></font> </div>
<div dir="ltr" align="left"><font color="#0000ff" face="Arial"
size="2"><span class="757551811-03092007">If I run this code, it
results in an endless loop because the </span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" face="Arial"
size="2"><span class="757551811-03092007"><font color="#000000"
face="Times New Roman" size="3"> read = </font><font
face="Courier New" size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
color="#000000">mapByteRdr.Read(buf, buf.length);</font><br>
call reads the same data each time - the start point for each read is
not advanced.</span></font></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" face="Arial"
size="2"><span class="757551811-03092007"><font face="Courier New"
size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></span></font></span></font> </div>
<div dir="ltr" align="left"><font color="#0000ff" face="Arial"
size="2"><span class="757551811-03092007"><font face="Courier New"
size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">Keith</span></font></span></font></div>
<br>
<div class="OutlookMessageHeader" dir="ltr" align="left" lang="en-us">
<hr tabindex="-1"><font face="Tahoma" size="2"><b>From:</b>
<a class="moz-txt-link-abbreviated" href="mailto:mapguide-users-bounces@lists.osgeo.org">mapguide-users-bounces@lists.osgeo.org</a>
[<a class="moz-txt-link-freetext" href="mailto:mapguide-users-bounces@lists.osgeo.org">mailto:mapguide-users-bounces@lists.osgeo.org</a>] <b>On Behalf Of </b>Kenneth,
GEOGRAF A/S<br>
<b>Sent:</b> 31 August 2007 17:14<br>
<b>To:</b> MapGuide Users Mail List<br>
<b>Subject:</b> Re: [mapguide-users] ByteReader Problem<br>
</font><br>
</div>
The only way around it, that I have found, is to copy/paste code like
this:<br>
<br>
System.IO.MemoryStream ms = new System.IO.MemoryStream();<br>
byte[] buf = new byte[8*1024];<br>
int read = 1;<br>
while(read != 0)<br>
{<br>
read = <font face="Courier New" size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">mapByteRdr.Read(buf,
buf.length);<br>
ms.Write(buf, 0, read);<br>
</span></font>}<br>
<br>
//ms now contains the stream<br>
<br>
<pre class="moz-signature" defanghtml_cols="72">Regards, Kenneth, GEOGRAF A/S
</pre>
<br>
<br>
Campbell, Keith A skrev:
<blockquote
cite="mid:2D5D8AC034A54041A6B2AE1C9148CC3106B22A2B@SGBBMA2102.wsatkins.com"
type="cite">
<meta content="MSHTML 6.00.2900.3059" name="GENERATOR">
<style> @font-face {
        font-family: Tahoma;
}
@font-face {
        font-family: Webdings;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
P {
        FONT-SIZE: 12pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; FONT-FAMILY: "Times New Roman"
}
SPAN.EmailStyle18 {
        COLOR: navy; FONT-FAMILY: Arial
}
DIV.Section1 {
        page: Section1
}
</style>
<div dir="ltr" align="left"><span class="210130015-31082007"><font
color="#0000ff" face="Arial" size="2">Thanks Dennis.</font></span></div>
<div dir="ltr" align="left"><span class="210130015-31082007"></span> </div>
<div dir="ltr" align="left"><span class="210130015-31082007"><font
color="#0000ff" face="Arial" size="2">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.</font></span></div>
<div dir="ltr" align="left"><span class="210130015-31082007"></span> </div>
<div dir="ltr" align="left"><span class="210130015-31082007"><font
color="#0000ff" face="Arial" size="2">Presumably somebody must have
found a way around this.</font></span></div>
<div dir="ltr" align="left"><span class="210130015-31082007"></span> </div>
<div dir="ltr" align="left"><span class="210130015-31082007"><font
color="#0000ff" face="Arial" size="2">Keith</font></span></div>
<br>
<div class="OutlookMessageHeader" dir="ltr" align="left"
lang="en-us">
<hr tabindex="-1"> <font face="Tahoma" size="2"><b>From:</b> <a
moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:mapguide-users-bounces@lists.osgeo.org">mapguide-users-bounces@lists.osgeo.org</a>
[<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="mailto:mapguide-users-bounces@lists.osgeo.org">mailto:mapguide-users-bounces@lists.osgeo.org</a>]
<b>On Behalf Of </b>Jonio, Dennis (Aviation)<br>
<b>Sent:</b> 31 August 2007 14:05<br>
<b>To:</b> MapGuide Users Mail List<br>
<b>Subject:</b> RE: [mapguide-users] ByteReader Problem<br>
</font><br>
</div>
<div class="Section1">
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;"><!-- Converted from text/rtf format -->…
this sequence tends to work </span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;"></span></font> </p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;"> // For
some reason the MgByteReader "disappears"</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;"> // This
seems to work ....</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;">
long long_length = rs.GetResourceContent(resId).GetLength();</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;">
byte[] byteBuffer = new byte[long_length];</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;">
int numBytes = rs.GetResourceContent(resId).Read(byteBuffer,
(int)long_length);</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; color: navy; font-family: Arial;"></span></font> </p>
<p class="MsoNormal" defanghtml_style="margin-left:.5in"><font
face="Tahoma" size="2"><span
style="font-size: 10pt; font-family: Tahoma;">-----Original
Message-----<br>
<b><span style="font-weight: bold;">From:</span></b> <a
moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:mapguide-users-bounces@lists.osgeo.org">mapguide-users-bounces@lists.osgeo.org</a>
[<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="mailto:mapguide-users-bounces@lists.osgeo.org">mailto:mapguide-users-bounces@lists.osgeo.org</a>]
<b><span style="font-weight: bold;">On Behalf Of </span></b>Campbell,
Keith A<br>
<b><span style="font-weight: bold;">Sent:</span></b> </span></font><font
face="Tahoma" size="2"><span
style="font-size: 10pt; font-family: Tahoma;">Friday, August 31, 2007</span></font><font
face="Tahoma" size="2"><span
style="font-size: 10pt; font-family: Tahoma;"> </span></font><font
face="Tahoma" size="2"><span
style="font-size: 10pt; font-family: Tahoma;">7:10 AM</span></font><font
face="Tahoma" size="2"><span
style="font-size: 10pt; font-family: Tahoma;"><br>
<b><span style="font-weight: bold;">To:</span></b> MapGuide Users
Mail List<br>
<b><span style="font-weight: bold;">Subject:</span></b>
[mapguide-users] ByteReader Problem</span></font></p>
<p class="MsoNormal" defanghtml_style="margin-left:.5in"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"></span></font> </p>
<p defanghtml_style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">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:-</span></font></p>
<p defanghtml_style="margin-left:.5in"><font face="Courier New"
size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<font color="#2b91af"><span
defanghtml_style="color: rgb(43, 145, 175);">String</span></font>
mapDefinition = <font color="#a31515"><span
defanghtml_style="color: rgb(163, 21, 21);">"Library://My
Folder/Maps/My Map.MapDefinition"</span></font>;</span></font> <br>
<font face="Courier New" size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<font color="#2b91af"><span
defanghtml_style="color: rgb(43, 145, 175);">MgResourceIdentifier</span></font>
MapResID = <font color="blue"><span style="color: blue;">new</span></font>
<font color="#2b91af"><span
defanghtml_style="color: rgb(43, 145, 175);">MgResourceIdentifier</span></font>(mapDefinition);</span></font>
</p>
<p defanghtml_style="margin-left:.5in"><font face="Courier New"
size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<font color="#2b91af"><span
defanghtml_style="color: rgb(43, 145, 175);">MgByteReader</span></font>
mapByteRdr = res.GetResourceContent(MapResID);//res is instantiated
Resource Service.</span></font> </p>
<p defanghtml_style="margin-left:.5in"><font face="Courier New"
size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<font color="#2b91af"><span
defanghtml_style="color: rgb(43, 145, 175);">XmlDocument</span></font>
doc = <font color="blue"><span style="color: blue;">new</span></font> <font
color="#2b91af"><span defanghtml_style="color: rgb(43, 145, 175);">XmlDocument</span></font>();</span></font>
<br>
<font face="Courier New" size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
</span></font><br>
<font face="Courier New" size="2"><span
defanghtml_style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
doc.LoadXml(mapByteRdr.ToString());</span></font> </p>
<p defanghtml_style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">LoadXML fails with an
error ' Root element is missing'. I can copy the contents of</span></font>
<font face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">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.</span></font></p>
<p defanghtml_style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">Cheers,</span></font> </p>
<p defanghtml_style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">Keith</span></font> </p>
<p class="MsoNormal"
defanghtml_style="margin-right:0in;margin-bottom:12.0pt;margin-left:
.5in"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"></span></font> </p>
<p class="MsoNormal"
defanghtml_style="margin-left:.5in;text-align:center" align="center"><b><font
face="Arial" size="2"><span
style="font-weight: bold; font-size: 10pt; font-family: Arial;">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.</span></font></b>
</p>
<p defanghtml_style="margin-left:.5in;text-align:center"
align="center"><font face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">The ultimate parent
company of the Atkins Group is WS Atkins plc. Registered in </span></font><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">England</span></font><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;"> No. 1885586. Registered
Office Woodcote Grove, </span></font><font face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">Ashley Road</span></font><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">, Epsom, </span></font><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;">Surrey</span></font><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;"> KT18 5BW.</span></font> </p>
<p defanghtml_style="margin-left:.5in;text-align:center"
align="center"><font color="green" face="Webdings" size="5"><span
style="font-size: 18pt; color: green; font-family: Webdings;">P</span></font>
<b><font color="green" face="Arial" size="2"><span
style="font-weight: bold; font-size: 10pt; color: green; font-family: Arial;">Consider
the environment. Please don't print this e-mail unless you really need
to.</span></font></b> </p>
<div>
<div class="MsoNormal"
defanghtml_style="margin-left:.5in;text-align:center" align="center"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">
<hr align="center" size="2" width="100%"> </span></font></div>
<p class="MsoNormal" defanghtml_style="margin-left:.5in"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">E-mails
are automatically scanned for viruses using McAfee. </span></font></p>
</div>
</div>
<br>
<br>
<font defanghtml_style="background-color: rgb(255, 255, 255);">
<p align="center"><font
defanghtml_style="background-color: rgb(255, 255, 255);">This message
has been scanned for viruses by </font><a moz-do-not-send="true"
href="http://bluepages.wsatkins.co.uk/?6875772"
defanghtml_moz-do-not-send="true"><font
defanghtml_style="background-color: rgb(255, 255, 255);"
color="#000000">MailControl</font></a></p>
</font><br>
<br>
<center><font face="Arial, Helvetica, sans-serif" size="2"><b>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.</b></font>
<p><font face="Arial, Helvetica, sans-serif" size="2">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.</font> </p>
<p><font color="green" face="Webdings" size="5">P</font> <font
color="green" face="Arial, Helvetica, sans-serif" size="2"><b>Consider
the environment. Please don't print this e-mail unless you really need
to.</b></font> </p>
</center>
<pre wrap=""><hr size="4" width="90%">
_______________________________________________
mapguide-users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>
</pre>
</blockquote>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
mapguide-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>
</pre>
</blockquote>
</body>
</html>