<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Write INT to config file</title>
		<link>http://www.allegro.cc/forums/view/609795</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 20 Mar 2012 22:51:55 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello together,</p><p>i have a question regarding the configfile.<br />I want to write some INT values in it, but the value should be a const char*.<br />I&#39;m working with ALLEGRO 5.0.4.</p><p>I think there are two solutions for it,<br />1. convert int to const char* (not knowing)<br />2. there is a function to write a int value to the config file (not knowing)</p><p>Maybe anyone can explain me the &quot;right&quot; way with an short example?</p><p>With best regards</p><p>MacGyver
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MacGyver1979)</author>
		<pubDate>Tue, 20 Mar 2012 13:04:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Write yourself a function</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> write_int_to_config<span class="k2">(</span><span class="k1">int</span> i<span class="k2">)</span>
<span class="k2">{</span>
   <span class="k1">char</span> s<span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
  

   <span class="c">// convert i to string - that's a tricky job but not too hard.</span>


   <span class="c">// use al_write_to_config( (const char *)s, .... ) or whatever the function is</span>
 

<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Tue, 20 Mar 2012 15:44:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><a href="http://www.delorie.com/djgpp/doc/libc/libc_732.html" target="_blank">snprintf</a><span class="k2">(</span><span class="k2">)</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_780.html" target="_blank">strtol</a><span class="k2">(</span><span class="k2">)</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Tue, 20 Mar 2012 15:48:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My solution</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">const</span> <span class="k1">char</span><span class="k3">*</span> convertInt<span class="k2">(</span><span class="k1">int</span> number<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    <span class="k1">if</span> <span class="k2">(</span>number <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  4</span>        <span class="k1">return</span> <span class="s">"0"</span><span class="k2">;</span>
<span class="number">  5</span>    string temp<span class="k3">=</span><span class="s">""</span><span class="k2">;</span>
<span class="number">  6</span>    string returnvalue<span class="k3">=</span><span class="s">""</span><span class="k2">;</span>
<span class="number">  7</span>    <span class="k1">while</span> <span class="k2">(</span>number&gt;0<span class="k2">)</span>
<span class="number">  8</span>    <span class="k2">{</span>
<span class="number">  9</span>        temp<span class="k3">+</span><span class="k3">=</span>number%<span class="n">10</span><span class="k3">+</span><span class="n">48</span><span class="k2">;</span>
<span class="number"> 10</span>        number<span class="k3">/</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 11</span>    <span class="k2">}</span>
<span class="number"> 12</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><span class="k2">;</span>i<span class="k3">&lt;</span>temp.length<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 13</span>        returnvalue<span class="k3">+</span><span class="k3">=</span>temp<span class="k2">[</span>temp.length<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>i-1<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>        <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>c <span class="k3">=</span> returnvalue.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>    <span class="k1">return</span> c<span class="k2">;</span>
<span class="number"> 17</span><span class="k2">}</span>
</div></div><p>

Is there a better solution for it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MacGyver1979)</author>
		<pubDate>Tue, 20 Mar 2012 16:37:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Click on the links gnolam posted.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Tue, 20 Mar 2012 16:38:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello Arthur Kalliokoski,</p><p>and what&#39;s wrong with my posted solution?</p><p>Greats MacGyver
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MacGyver1979)</author>
		<pubDate>Tue, 20 Mar 2012 16:56:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For a C++ solution, use <a href="http://www.cplusplus.com/reference/iostream/stringstream/">stringstreams</a>.</p><p>[EDIT]
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609795/950329#target">MacGyver1979</a> said:</div><div class="quote"><p>and what&#39;s wrong with my posted solution?</p></div></div><p>
Two major things from a quick skim:
</p><ul><li><p>Won&#39;t handle negative integers
</p></li><li><p><span class="source-code">returnvalue</span> goes out of scope, so the pointer that <span class="source-code">.c_str<span class="k2">(</span><span class="k2">)</span></span> returns becomes invalid as soon as that function returns.
</p></li></ul></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Tue, 20 Mar 2012 16:57:07 +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/609795/950329#target">MacGyver1979</a> said:</div><div class="quote"><p> and what&#39;s wrong with my posted solution?</p></div></div><p>I didn&#39;t check it at all, but reinventing the wheel is usually a waste of time and often leads to bugs.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Tue, 20 Mar 2012 17:03:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello,</p><p>thanks for that quick response.</p><p>Won&#39;t handle negative integers<br />returnvalue goes out of scope, so the pointer that .c_str() returns becomes invalid as soon as that function returns.</p><p>Negative integers are not given, but i understand you.</p><p>I&#39;m not so confirm with</p><p>snprintf()<br />strtol()</p><p>can anyone explane me with a little example?</p><p>Greats MacGyver
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MacGyver1979)</author>
		<pubDate>Tue, 20 Mar 2012 17:17:13 +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/609795/950333#target">MacGyver1979</a> said:</div><div class="quote"><p> can anyone explane me with a little example?</p></div></div><p>Those are C functions.  Since you are using C++, you should use stringstreams as gnolam said.</p><p>something like:</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#include &lt;sstrream&gt;</span>
...
    stringstream str<span class="k2">;</span>
    str <span class="k3">&lt;</span><span class="k3">&lt;</span> int_value_I_want_to_convert<span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/al_set_config_value"><span class="a">al_set_config_value</span></a><span class="k2">(</span>config_file, section, <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <span class="k2">(</span>str.str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
    str.str<span class="k2">(</span><span class="s">""</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Tue, 20 Mar 2012 18:14:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok works for me.<br />Thanks</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;sstream&gt;</span>
<span class="number"> 2</span>
<span class="number"> 3</span>    stringstream str<span class="k2">;</span>
<span class="number"> 4</span>    str <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="n">50</span><span class="k2">;</span>
<span class="number"> 5</span>    <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>c <span class="k3">=</span> str.str<span class="k2">(</span><span class="k2">)</span>.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MacGyver1979)</author>
		<pubDate>Tue, 20 Mar 2012 18:22:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>

Part of being a newb (I know this from experience) is that you find yourself doing things the hard way due to lack of experience. Then you&#39;re reluctant to do things the easy way because it means all your previous hard work was a waste of time.<br />Anyway, here&#39;s the easy way :</p><p>I should have posted what Gnolam posted.</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">int</span> write_int_to_config<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_CONFIG"><span class="a">ALLEGRO_CONFIG</span></a> <span class="k3">*</span>cp, <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>section, <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <span class="k1">int</span> i<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>   <span class="k1">char</span> s<span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  4</span>  
<span class="number">  5</span>
<span class="number">  6</span>   <span class="k1">if</span><span class="k2">(</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_732.html" target="_blank">snprintf</a><span class="k2">(</span> s, <span class="n">30</span>, <span class="s">"%d"</span>, i<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  7</span>   <span class="k2">{</span>
<span class="number">  8</span>      <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span> <span class="c">//error</span>
<span class="number">  9</span>   <span class="k2">}</span>
<span class="number"> 10</span>   <span class="k1">else</span>
<span class="number"> 11</span>   <span class="k2">{</span>
<span class="number"> 12</span>      <a href="http://www.allegro.cc/manual/al_set_config_value"><span class="a">al_set_config_value</span></a><span class="k2">(</span> cp, section, <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span> s<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span> <span class="c">//okay</span>
<span class="number"> 14</span>   <span class="k2">}</span>
<span class="number"> 15</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Tue, 20 Mar 2012 18:28:18 +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/609795/950338#target">William Labbett</a> said:</div><div class="quote"><p> you find yourself doing things the hard way due to lack of experience.</p></div></div><p><a href="http://www.allegro.cc/forums/thread/586114">Been there, done that.</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Tue, 20 Mar 2012 20:22:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
<img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Tue, 20 Mar 2012 22:51:55 +0000</pubDate>
	</item>
</rss>
