<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Retrieving text from a Windows server as a Mac format file?</title>
		<link>http://www.allegro.cc/forums/view/607373</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 21 May 2011 13:41:05 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi there... It&#39;s me again <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>So... I&#39;m trying to retrieve my &quot;scores&quot; file from the server, but I&#39;m getting an extra &quot;Carriage return&quot; sequence.</p><p>This is the original file on my PC:</p><p><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/1/e/1ef0830867344a0a80c637f48e0073fd.png" alt="604140" width="232" height="227" />	</p><p>An this is what I get when I retrieve it from the server.</p><p><span class="remote-thumbnail"><span class="json">{"name":"604141","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/4\/3499110885de8bed2e8a47563f8f4038.png","w":321,"h":327,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/4\/3499110885de8bed2e8a47563f8f4038"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/3/4/3499110885de8bed2e8a47563f8f4038-240.jpg" alt="604141" width="240" height="244" /></span></p><p>I&#39;m saving it with a normal <span class="source-code">ofstream</span></p><p>Notepad says it&#39;s a Macintosh file... But I think there is something wrong when I manipulate the data...</p><p>This is what I&#39;m doing:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>  <span class="k1">void</span> tabla_tiempos<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a> <span class="k3">*</span>array<span class="k2">[</span><span class="n">15</span><span class="k2">]</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  2</span>
<span class="number">  3</span>     CURL <span class="k3">*</span>curl<span class="k2">;</span>
<span class="number">  4</span>     CURLcode res<span class="k2">;</span>
<span class="number">  5</span>     curl <span class="k3">=</span> curl_easy_init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>     std::string string<span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>     <span class="k1">if</span><span class="k2">(</span>curl<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 10</span>
<span class="number"> 11</span>        curl_easy_setopt<span class="k2">(</span>curl, CURLOPT_URL, <span class="s">"http://www.cerebrospain.com/script.php"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>        curl_easy_setopt<span class="k2">(</span>curl, CURLOPT_POSTFIELDS, <span class="s">"name=lllñññ&amp;project=curl"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>        curl_easy_setopt<span class="k2">(</span>curl, CURLOPT_WRITEFUNCTION, write_data<span class="k2">)</span><span class="k2">;</span> <span class="c">///Here I'm calling the Function write_data.</span>
<span class="number"> 14</span>        curl_easy_setopt<span class="k2">(</span>curl, CURLOPT_WRITEDATA, <span class="k3">&amp;</span>string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>        res <span class="k3">=</span> curl_easy_perform<span class="k2">(</span>curl<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>        curl_easy_cleanup<span class="k2">(</span>curl<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>
<span class="number"> 19</span>     <span class="k2">}</span>
<span class="number"> 20</span>
<span class="number"> 21</span>      std::stringstream procesador<span class="k2">(</span>string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span>      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> a<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>a<span class="k3">&lt;</span><span class="n">15</span><span class="k2">;</span>a<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 24</span>
<span class="number"> 25</span>         <span class="k1">char</span> temporal<span class="k2">[</span><span class="n">50</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 26</span>         procesador.getline<span class="k2">(</span>temporal, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>
<span class="number"> 28</span>         array<span class="k2">[</span>a<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span>temporal<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>         <span class="c">//al_ustr_append_cstr(array[a], temporal);</span>
<span class="number"> 30</span>
<span class="number"> 31</span>      <span class="k2">}</span>
<span class="number"> 32</span>
<span class="number"> 33</span>  <span class="k2">}</span>
<span class="number"> 34</span>
<span class="number"> 35</span>  <span class="k1">static</span> <span class="k1">size_t</span> write_data<span class="k2">(</span><span class="k1">void</span> <span class="k3">*</span>buffer<span class="c">/*The data*/</span>, <span class="k1">size_t</span> size, <span class="k1">size_t</span> nmemb, std::string <span class="k3">*</span>userp<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 36</span>
<span class="number"> 37</span>     <span class="k1">size_t</span> n <span class="k3">=</span> size <span class="k3">*</span> nmemb<span class="k2">;</span>
<span class="number"> 38</span>     userp-&gt;append<span class="k2">(</span><span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span>buffer, n<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>
<span class="number"> 40</span>     std::ofstream outfile <span class="k2">(</span><span class="s">"check_it.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>     outfile.write <span class="k2">(</span><span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span>buffer, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>     outfile.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>
<span class="number"> 44</span>     <span class="k1">return</span> n<span class="k2">;</span>
<span class="number"> 45</span>
<span class="number"> 46</span>  <span class="k2">}</span>
</div></div><p>

And this is what the game shows:</p><p><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/4/b/4bd46a7e411bb8787bd04c8878074d71.png" alt="604142" width="153" height="190" />	</p><p>I don&#39;t know in which step I&#39;m adding that extra <b>CR</b>.</p><p>And the PHP script simpler couldn&#39;t be:</p><div class="source-code snippet"><div class="inner"><pre><span class="k3">&lt;</span>?php
$myFile <span class="k3">=</span> <span class="s">"scores"</span><span class="k2">;</span>
$fh <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>$myFile, <span class="s">'r'</span><span class="k2">)</span><span class="k2">;</span>
$theData <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span>$fh, filesize<span class="k2">(</span>$myFile<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>$fh<span class="k2">)</span><span class="k2">;</span>
echo $theData<span class="k2">;</span>
?<span class="k3">&gt;</span>
</pre></div></div><p>

Thank in advance...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Thu, 19 May 2011 22:02:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607373/918153#target">AMCerasoli</a> said:</div><div class="quote"><p> And the PHP script simpler couldn&#39;t be:
</p></div></div><p>It could:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k3">&lt;</span>?php readfile<span class="k2">(</span><span class="s">'scores'</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
It&#39;s possible that the <tt>fopen</tt> without the &#39;b&#39; flag is causing problems. But I&#39;d switch to the above regardless of that.</p><p>I assume your script does other things too... Because if you are just returning a raw file, there&#39;s no need for PHP at all.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Thu, 19 May 2011 22:24:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Damn!... That&#39;s a compression... </p><p>But it isn&#39;t working neither, the problem comes from my server, when I use <span class="source-code">ifstream</span> to load a file from my PC that doesn&#39;t happens.<br /><b>&lt;Edited:&gt;</b><br />So I have <s>two</s> options, the file comes modified, or <s>&lt;code&gt;std::stringstream procesador(string);&lt;/code&gt; modify it.</s><br /><b>&lt;/Edited:&gt;</b><br />I could do something like:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_ustr_has_suffix_cstr"><span class="a">al_ustr_has_suffix_cstr</span></a><span class="k2">(</span>array<span class="k2">[</span>a<span class="k2">]</span>, <span class="s">"\r"</span><span class="k2">)</span><span class="k2">)</span>
   <a href="http://www.allegro.cc/manual/al_ustr_remove_chr"><span class="a">al_ustr_remove_chr</span></a><span class="k2">(</span>array<span class="k2">[</span>a<span class="k2">]</span>, <a href="http://www.allegro.cc/manual/al_ustr_offset"><span class="a">al_ustr_offset</span></a><span class="k2">(</span>array<span class="k2">[</span>a<span class="k2">]</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

But isn&#39;t what I want. I mean, you first add the damn \r and then remove it? <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>If I could see the code bite to bite when I do the <span class="source-code">std::stringstream procesador<span class="k2">(</span>string<span class="k2">)</span><span class="k2">;</span></span> <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607373/918157#target">Matthew Leverton</a> said:</div><div class="quote"><p>
I assume your script does other things too... Because if you are just returning a raw file, there&#39;s no need for PHP at all.
</p></div></div><p>

It&#39;s ok that I&#39;m a noob man... but no that much... <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Thu, 19 May 2011 22:45:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The new lines would be converted by the file IO layer. For example, if you try to write <span class="source-code"><span class="s">"foo\n"</span></span> in Windows it will be written as <span class="source-code"><span class="s">"foo\r\n"</span></span>. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> If you want for the data to not be interpreted specially then you always have to make sure to open the file in binary mode.</p><div class="source-code"><div class="toolbar"><span class="name">main.c</span><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;assert.h&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;string.h&gt;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">void</span> print_chars<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span><span class="k1">void</span> read_string<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span>, <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span><span class="k1">void</span> write_string<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span>, <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span> argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 11</span><span class="k2">{</span>
<span class="number"> 12</span>    <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span> fn <span class="k3">=</span> <span class="s">"example.txt"</span><span class="k2">;</span>
<span class="number"> 13</span>    <span class="k1">char</span> output<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="s">"\r\n"</span><span class="k2">;</span>
<span class="number"> 14</span>    <span class="k1">char</span> input<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="n">0</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>    print_chars<span class="k2">(</span>output, <span class="k1">sizeof</span><span class="k2">(</span>output<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    write_string<span class="k2">(</span>fn, output<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>    read_string<span class="k2">(</span>fn, input, <span class="k1">sizeof</span><span class="k2">(</span>input<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>    print_chars<span class="k2">(</span>input, <span class="k1">sizeof</span><span class="k2">(</span>input<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>
<span class="number"> 21</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 22</span><span class="k2">}</span>
<span class="number"> 23</span>
<span class="number"> 24</span><span class="k1">void</span> print_chars<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span> string, <span class="k1">const</span> <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 25</span><span class="k2">{</span>
<span class="number"> 26</span>    <span class="k1">int</span> i<span class="k2">;</span>
<span class="number"> 27</span>
<span class="number"> 28</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%d"</span>, <a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>string<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span>    <span class="k1">for</span><span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 31</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">" %X"</span>, string<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>
<span class="number"> 33</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_629.html" target="_blank">putchar</a><span class="k2">(</span><span class="s">'\n'</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span><span class="k2">}</span>
<span class="number"> 35</span>
<span class="number"> 36</span><span class="k1">void</span> read_string<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span> filename, <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span> input, <span class="k1">const</span> <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 37</span><span class="k2">{</span>
<span class="number"> 38</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>input<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>
<span class="number"> 41</span>    <span class="c">// "b" for binary mode.</span>
<div class="highlight"><span class="number"> 42</span>    FILE <span class="k3">*</span> f <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>filename, <span class="s">"rb"</span><span class="k2">)</span><span class="k2">;</span> </div><span class="number"> 43</span>
<span class="number"> 44</span>    <span class="k1">if</span><span class="k2">(</span>f <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 45</span>    <span class="k2">{</span>
<span class="number"> 46</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_615.html" target="_blank">perror</a><span class="k2">(</span><span class="s">""</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span>    <span class="k2">}</span>
<span class="number"> 49</span>
<span class="number"> 50</span>    <span class="k1">int</span> len <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span>input, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>, size-1, f<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>
<span class="number"> 52</span>    <span class="k1">if</span><span class="k2">(</span>len<span class="k2">)</span>
<span class="number"> 53</span>        input<span class="k2">[</span>len<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 54</span>
<span class="number"> 55</span>    <span class="k1">if</span><span class="k2">(</span>len <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 56</span>    <span class="k2">{</span>
<span class="number"> 57</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"LIES! Couldn't read bytes from file.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 58</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 59</span>    <span class="k2">}</span>
<span class="number"> 60</span><span class="k2">}</span>
<span class="number"> 61</span>
<span class="number"> 62</span><span class="k1">void</span> write_string<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span> filename, <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> <span class="k1">const</span> output<span class="k2">)</span>
<span class="number"> 63</span><span class="k2">{</span>
<span class="number"> 64</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 65</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>output<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 66</span>
<span class="number"> 67</span>    FILE <span class="k3">*</span> f <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>filename, <span class="s">"w"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 68</span>
<span class="number"> 69</span>    <span class="k1">if</span><span class="k2">(</span>f <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 70</span>    <span class="k2">{</span>
<span class="number"> 71</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_615.html" target="_blank">perror</a><span class="k2">(</span><span class="s">""</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 72</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 73</span>    <span class="k2">}</span>
<span class="number"> 74</span>
<span class="number"> 75</span>    <span class="k1">int</span> len <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>output<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 76</span>
<span class="number"> 77</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span>output, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>, len, f<span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> len<span class="k2">)</span>
<span class="number"> 78</span>    <span class="k2">{</span>
<span class="number"> 79</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"LIES! Couldn't write %d bytes.\n"</span>, len<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 80</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 81</span>    <span class="k2">}</span>
<span class="number"> 82</span>
<span class="number"> 83</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>f<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 84</span><span class="k2">}</span>
</div></div><p>
</p><pre class="terminal">&gt;gcc -Wall main.c
&gt;a.exe
2 D A 0 0 0
3 D D A 0 0

&gt;</pre><p>
OR...</p><p>Output: <span class="source-code"><span class="s">"\r\n"</span></span><br />Input: <span class="source-code"><span class="s">"\r\r\n"</span></span></p><p>If you attempt to process text in binary mode then you will need to manually account for newline differences though. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Fri, 20 May 2011 01:13:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you sure? why doesn&#39;t happen with std::ifstream with files saved on my PC?. <br />I&#39;m doing exactly the same.</p><p>I tried to use it (ifstream instead of stringstream) to extract the lines but I think isn&#39;t possible. I wanted to see if that was the problem. But isn&#39;t. As you can see in this part:</p><div class="source-code snippet"><div class="inner"><pre>     std::ofstream outfile <span class="k2">(</span><span class="s">"check_it.txt"</span><span class="k2">)</span><span class="k2">;</span>
     outfile.write <span class="k2">(</span><span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span>buffer, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I&#39;m saving the data without even touching it... Obviously if I load that file (check_it.txt) I&#39;ll get the same as if were loading the file directly from the server, or at least that is what I think... For that reason I&#39;m 90% sure that is a problem that comes from the server... <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> But at the same time I&#39;m not sure, since if I show it on the console <span class="source-code"> std::cout<span class="k3">&lt;</span><span class="k3">&lt;</span>string<span class="k3">&lt;</span><span class="k3">&lt;</span>std::endl<span class="k2">;</span></span> I&#39;m not able to see any problem, but the console isn&#39;t reliable anyway... AHHHHWWW!!! <img src="http://www.allegro.cc/forums/smileys/angry.gif" alt="&gt;:(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Fri, 20 May 2011 02:18:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I posted the wrong version of that program. The only minor change that was missing was:</p><div class="source-code snippet"><div class="inner"><pre><span class="k3">-</span>    FILE f <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>fn, <span class="s">"r"</span><span class="k2">)</span><span class="k2">;</span>
<span class="k3">+</span>    FILE f <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>fn, <span class="s">"rb"</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

That is just to show you the true contents of the file after writing in text mode. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> Edited, highlighted, and fixed up as originally intended.</p><p>The fstream library should work the same exact way:</p><div class="source-code"><div class="toolbar"><span class="name">main.cpp</span><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;fstream&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">void</span> print_chars<span class="k2">(</span><span class="k1">const</span> std::string <span class="k3">&amp;</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span><span class="k1">void</span> read_string<span class="k2">(</span><span class="k1">const</span> std::string <span class="k3">&amp;</span>, std::string <span class="k3">&amp;</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span><span class="k1">void</span> write_string<span class="k2">(</span><span class="k1">const</span> std::string <span class="k3">&amp;</span>, <span class="k1">const</span> std::string <span class="k3">&amp;</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span> argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number">  9</span><span class="k2">{</span>
<span class="number"> 10</span>    <span class="k1">const</span> std::string fn<span class="k2">(</span><span class="s">"file.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>    std::string output <span class="k3">=</span> <span class="s">"\r\n"</span><span class="k2">;</span>
<span class="number"> 12</span>    std::string input<span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>    print_chars<span class="k2">(</span>output<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    write_string<span class="k2">(</span>fn, output<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>    read_string<span class="k2">(</span>fn, input<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    print_chars<span class="k2">(</span>input<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>
<span class="number"> 19</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 20</span><span class="k2">}</span>
<span class="number"> 21</span>
<span class="number"> 22</span><span class="k1">void</span> print_chars<span class="k2">(</span><span class="k1">const</span> std::string <span class="k3">&amp;</span> string<span class="k2">)</span>
<span class="number"> 23</span><span class="k2">{</span>
<span class="number"> 24</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> std::dec <span class="k3">&lt;</span><span class="k3">&lt;</span> string.length<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> std::uppercase <span class="k3">&lt;</span><span class="k3">&lt;</span> std::hex<span class="k2">;</span>
<span class="number"> 27</span>
<span class="number"> 28</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span>, l<span class="k3">=</span>string.length<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">&lt;</span>l<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 29</span>        std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">' '</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>string<span class="k2">[</span>i<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>    std::cout.unsetf<span class="k2">(</span>std::ios::uppercase<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>
<span class="number"> 33</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
<span class="number"> 34</span><span class="k2">}</span>
<span class="number"> 35</span>
<span class="number"> 36</span><span class="k1">void</span> read_string<span class="k2">(</span><span class="k1">const</span> std::string <span class="k3">&amp;</span> fn, std::string <span class="k3">&amp;</span> output<span class="k2">)</span>
<span class="number"> 37</span><span class="k2">{</span>
<span class="number"> 38</span>    <span class="k1">char</span> buffer<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="n">0</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 39</span>
<span class="number"> 40</span>    std::ifstream stream<span class="k2">(</span>fn.c_str<span class="k2">(</span><span class="k2">)</span>, std::ios::binary<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>
<span class="number"> 42</span>    stream.read<span class="k2">(</span>buffer, <span class="k1">sizeof</span><span class="k2">(</span>buffer<span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>
<span class="number"> 44</span>    <span class="k1">int</span> len <span class="k3">=</span> stream.gcount<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>
<span class="number"> 46</span>    stream.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>
<span class="number"> 48</span>    buffer<span class="k2">[</span>len<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 49</span>
<span class="number"> 50</span>    output <span class="k3">=</span> buffer<span class="k2">;</span>
<span class="number"> 51</span><span class="k2">}</span>
<span class="number"> 52</span>
<span class="number"> 53</span><span class="k1">void</span> write_string<span class="k2">(</span><span class="k1">const</span> std::string <span class="k3">&amp;</span> fn, <span class="k1">const</span> std::string <span class="k3">&amp;</span> input<span class="k2">)</span>
<span class="number"> 54</span><span class="k2">{</span>
<span class="number"> 55</span>    std::ofstream stream<span class="k2">(</span>fn.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 56</span>
<span class="number"> 57</span>    stream <span class="k3">&lt;</span><span class="k3">&lt;</span> input<span class="k2">;</span>
<span class="number"> 58</span>
<span class="number"> 59</span>    stream.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span><span class="k2">}</span>
</div></div><p>
</p><pre class="terminal">&gt;g++ -Wall main.cpp
&gt;a.exe
2 D A
3 D D A

&gt;</pre><p>

You wouldn&#39;t normally realize it in code alone because just as the newline byte is transformed by default when it&#39;s written, the newline byte(s) are also transformed by default when read. I&#39;m not sure if Mac-style newlines are supported or not (I wouldn&#39;t be surprised if they weren&#39;t).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Fri, 20 May 2011 03:06:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you bamccaig, I think I almost got it.</p><p>Heard this, this is pure science, so... </p><p>IF! I request the file from the server it seems that I retrieve it correctly, as now I&#39;m saving my files as Mr. bamccaig said (using <span class="source-code">std::ofstream outfile <span class="k2">(</span><span class="s">"check_it.txt"</span>, std::ios::binary<span class="k2">)</span><span class="k2">;</span></span>) I&#39;m not able to see any problem.</p><p>BUT! (in forums there is always a but) if I do something like this:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;fstream&gt;</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  4</span>
<span class="number">  5</span>   <span class="k1">char</span> buffer<span class="k2">[</span><span class="n">50</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>   std::ifstream lol_entrada<span class="k2">(</span><span class="s">"lol.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>   lol_entrada.read<span class="k2">(</span>buffer, <span class="k1">sizeof</span><span class="k2">(</span>buffer<span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>   lol_entrada.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>
<span class="number"> 14</span>
<span class="number"> 15</span>   std::cout<span class="k3">&lt;</span><span class="k3">&lt;</span>buffer<span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span>
<span class="number"> 18</span>
<span class="number"> 19</span>   std::ofstream lol_salida <span class="k2">(</span><span class="s">"lol.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>
<span class="number"> 21</span>   lol_salida.write <span class="k2">(</span>buffer, <span class="k1">sizeof</span><span class="k2">(</span>buffer<span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span>   lol_salida.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 26</span><span class="k2">}</span>
</div></div><p>

I don&#39;t see any problem neither. I&#39;m loading a file from my PC called &quot;<img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=";D" border="0" />.txt&quot; extract its content and then save it again, I&#39;m using a buffer whit a predefine size because this is just a test.</p><p>NOW! back to topic, I thought that when I save a file as binary I wasn&#39;t going to be able to read it using a text editor, which isn&#39;t happening, since I can perfectly see my &quot;check_it.txt&quot; file using notepad, &quot;check_it.txt&quot; would be the file downloaded from the server. </p><p>WHY! is this happening? I have NO idea...</p><p>But despite all that...</p><p>Even when I&#39;m able to save the file without problem now, I&#39;m still getting the annoying little box with the interrogative sing inside. </p><p><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/4/b/4bd46a7e411bb8787bd04c8878074d71.png" alt="4bd46a7e411bb8787bd04c8878074d71.png" width="153" height="190" /></p><p>So that let us one place to look at... well actually let me <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /> .</p><p>and it&#39;s THIS one:</p><div class="source-code snippet"><div class="inner"><pre>         <span class="k1">char</span> temporal<span class="k2">[</span><span class="n">50</span><span class="k2">]</span><span class="k2">;</span>

         procesador.getline<span class="k2">(</span>temporal, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>

         array<span class="k2">[</span>a<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span>temporal<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

One of these lines is adding an extra NULL character at the end of the string...</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">char</span> temporal<span class="k2">[</span><span class="n">50</span><span class="k2">]</span><span class="k2">;</span>
</pre></div></div><p>
This isn&#39;t.</p><div class="source-code snippet"><div class="inner"><pre>procesador.getline<span class="k2">(</span>temporal, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

</p><div class="quote_container"><div class="title">Cplusplus dat com said:</div><div class="quote"><p>
Characters are extracted until either (n - 1) characters have been extracted or the delimiting character is found (which is delim if this parameter is specified, or &#39;\n&#39; otherwise).
</p></div></div><p>

So... Mr. bamccaig said: &quot;The new lines would be converted by the file IO layer. For example, if you try to write &quot;foo\n&quot; in Windows it will be written as &quot;foo\r\n&quot;&quot;</p><p>It&#39;s possible that getline finds the &quot;/n&quot; delete it but the &quot;/r&quot; rest there, and that is what I&#39;m seeing in my GUI?</p><p>because <span class="source-code"><a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span><span class="k2">)</span></span> doesn&#39;t add anything at the end of the string right?.</p><p>Wow... This is game programming?</p><p>Where can I find more info about this? I&#39;m surly getting everything wrong again. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /></p><h1>Conclusion:</h1><p>
That was exactly the problem! NICE!</p><p>Since the Windows sequence is \r\n and getline() uses \n as delimiter<br />any line with a Windows linebreak will end with \r. Use this knowledge<br />to reduce the work required. In my case:</p><div class="source-code snippet"><div class="inner"><pre>      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> a<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>a<span class="k3">&lt;</span><span class="n">15</span><span class="k2">;</span>a<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span><span class="k2">{</span>

         <span class="k1">char</span> temporal<span class="k2">[</span><span class="n">50</span><span class="k2">]</span><span class="k2">;</span>

         procesador.getline<span class="k2">(</span>temporal, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>

         array<span class="k2">[</span>a<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span>temporal<span class="k2">)</span><span class="k2">;</span>

         <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_ustr_has_suffix_cstr"><span class="a">al_ustr_has_suffix_cstr</span></a><span class="k2">(</span>array<span class="k2">[</span>a<span class="k2">]</span>, <span class="s">"\r"</span><span class="k2">)</span><span class="k2">)</span>
            <a href="http://www.allegro.cc/manual/al_ustr_remove_chr"><span class="a">al_ustr_remove_chr</span></a><span class="k2">(</span>array<span class="k2">[</span>a<span class="k2">]</span>, <a href="http://www.allegro.cc/manual/al_ustr_offset"><span class="a">al_ustr_offset</span></a><span class="k2">(</span>array<span class="k2">[</span>a<span class="k2">]</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//Delete the \r</span>

      <span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Sat, 21 May 2011 02:11:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Wouldn&#39;t the smallest fix be: <span class="source-code">procesador.getline<span class="k2">(</span>temporal, <span class="n">50</span>, <span class="s">"\r"</span><span class="k2">)</span><span class="k2">;</span></span> then?<br />Of course you&#39;re method is more robust... *Sees char[50]* ehm, I guess that&#39;s okay in this case.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Sat, 21 May 2011 12:26:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Errgggghhh. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /></p><p>Read and write the file as binary, using \n as your separator. After that, write your own GetLine function that doesn&#39;t interpret \n as carriage return or carriage return linefeed or linefeed.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">bool</span> GetLine<span class="k2">(</span>istream<span class="k3">&amp;</span> is , string<span class="k3">&amp;</span> s , <span class="k1">char</span> delimiter <span class="k3">=</span> <span class="s">'\n'</span><span class="k2">)</span> <span class="k2">{</span>
   s.clear<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
   <span class="k1">bool</span> assigned <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
   <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
      <span class="k1">int</span> c <span class="k3">=</span> is.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
      <span class="k1">if</span> <span class="k2">(</span>c <span class="k3">=</span><span class="k3">=</span> EOF<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> assigned <span class="k2">;</span><span class="k2">}</span>
      <span class="k1">if</span> <span class="k2">(</span>c <span class="k3">=</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>delimiter<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> assigned<span class="k2">;</span><span class="k2">}</span>
      assigned <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
      s.push_back<span class="k2">(</span><span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>c<span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</span>
   <span class="k1">return</span> assigned<span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

If the istream is binary to begin with, you might not even have to write your own GetLine function.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 21 May 2011 13:41:05 +0000</pubDate>
	</item>
</rss>
