<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Variabeln aus Text dateien auslesen.]]></title><description><![CDATA[<p>Der titel sollte alles sagen.<br />
naja ich hab es wie folgt gelöst um einzellne variablen(können aber nur eine char bzw. zeichen auslesen)<br />
Das hier ist die datei aus der gelesen wird:<br />
/////////////////myconfig.dat////////////////////<br />
&lt;resolution&gt;<br />
screen = *b*<br />
fullscreen = *FALSE*<br />
&lt;/resolution&gt;<br />
&lt;driver&gt;<br />
driver = *o*<br />
&lt;/driver&gt;<br />
&lt;player&gt;<br />
team = *1*<br />
&lt;/player&gt;<br />
////////////////////////////////////////////////7<br />
und das hier ist der code mit dem dann die variablen ausgelesen werden.<br />
bool resolution;<br />
bool driver;<br />
bool player;<br />
void CReader::LoadConfig(char* File = &quot;Data/Myconfig.dat&quot;)<br />
{<br />
resolution = false;<br />
driver = false;<br />
player = false;</p>
<p>fstream f(File, /*ios::out|ios::binary|*/ios::in);<br />
while (!f.eof())<br />
{<br />
f.getline(cstring, sizeof(cstring));</p>
<p>if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== 'r')<br />
{<br />
resolution = true;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== '/' &amp;&amp; cstring[2]== 'r')<br />
{<br />
resolution = false;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== 'd')<br />
{<br />
driver = true;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== '/' &amp;&amp; cstring[2]== 'd')<br />
{<br />
driver = false;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== 'p')<br />
{<br />
player = true;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== '/' &amp;&amp; cstring[2]== 'p')<br />
{<br />
player = false;<br />
}</p>
<p>if(player &amp;&amp; cstring[0] == 't')<br />
{<br />
int i = 0;<br />
while(cstring[i] != '<em>')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case '1':<br />
config.team = 1;<br />
break;<br />
case '2':<br />
config.team = 2;<br />
break;<br />
case '3':<br />
config.team = 3;<br />
break;<br />
case '4':<br />
config.team = 4;<br />
break;<br />
}<br />
}<br />
if(driver &amp;&amp; cstring[0] == 'd')<br />
{<br />
int i = 0;<br />
while(cstring[i] != '</em>')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case 'o':<br />
config.driver = &quot;EDT_OPENGL&quot;;<br />
break;<br />
case 's':<br />
config.driver = &quot;EDT_SOFTWARE&quot;;<br />
break;<br />
}<br />
}</p>
<p>if(resolution &amp;&amp; cstring[0] == 's')<br />
{<br />
int i = 0;</p>
<p>while(cstring[i] != '*')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case 'a':<br />
config.x = 640;<br />
config.y = 480;<br />
break;<br />
case 'b':<br />
config.x = 800;<br />
config.y = 600;<br />
break;<br />
case 'c':<br />
config.x = 1024;<br />
config.y = 768;<br />
break;<br />
}<br />
}<br />
if(resolution &amp;&amp; cstring[0] == 'f')<br />
{<br />
int i = 0;</p>
<p>while(cstring[i] != '*')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case 'T':<br />
config.fullscreen = true;<br />
break;<br />
case 'F':<br />
config.fullscreen = false;<br />
break;<br />
}<br />
}<br />
}<br />
f.close();<br />
}<br />
Naja mit der methode werden leider immer nur die ersten zeichen geprüft da ichs anders nicht hinbekommen habe aber solange keine tags mit gleichen anfangsbuchstaben da sind geht das so.<br />
Nunja jetzt hab ich aber das problem das ich jetzt ganze strings und längere zahlen auslesen muss aus meiner dat datei(binär dateien kommen nicht in frage da ich dann einen leveleditor schreiben müsste)auslesen muss um einen level zu laden und da funtzt das prinzip von oben nicht mehr.<br />
hat da einer ne idee wie ich das machen könnte die level datei sieht so aus:<br />
///////////////////////////////////level.map///////////////////////////<br />
&lt;Map&gt;<br />
MapName = **<br />
file = *<em>.dmf</em><br />
&lt;/Map&gt;</p>
<p>&lt;SkyMap&gt;<br />
A = **<br />
C = **<br />
D = **<br />
E = **<br />
F = **<br />
G = **<br />
&lt;/SkyMap&gt;</p>
<p>/////////////////////////////////Only 8 lights allowed and minimum 1/////////////////////////////////////////////////////<br />
&lt;Light&gt;<br />
x = **<br />
y = **<br />
z = **<br />
color = **<br />
&lt;/Light&gt;</p>
<p>usw........<br />
////////////////////////////////////////////////////////////////////////</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128416/variabeln-aus-text-dateien-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 16:17:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128416.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Dec 2005 14:47:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variabeln aus Text dateien auslesen. on Sat, 03 Dec 2005 14:47:59 GMT]]></title><description><![CDATA[<p>Der titel sollte alles sagen.<br />
naja ich hab es wie folgt gelöst um einzellne variablen(können aber nur eine char bzw. zeichen auslesen)<br />
Das hier ist die datei aus der gelesen wird:<br />
/////////////////myconfig.dat////////////////////<br />
&lt;resolution&gt;<br />
screen = *b*<br />
fullscreen = *FALSE*<br />
&lt;/resolution&gt;<br />
&lt;driver&gt;<br />
driver = *o*<br />
&lt;/driver&gt;<br />
&lt;player&gt;<br />
team = *1*<br />
&lt;/player&gt;<br />
////////////////////////////////////////////////7<br />
und das hier ist der code mit dem dann die variablen ausgelesen werden.<br />
bool resolution;<br />
bool driver;<br />
bool player;<br />
void CReader::LoadConfig(char* File = &quot;Data/Myconfig.dat&quot;)<br />
{<br />
resolution = false;<br />
driver = false;<br />
player = false;</p>
<p>fstream f(File, /*ios::out|ios::binary|*/ios::in);<br />
while (!f.eof())<br />
{<br />
f.getline(cstring, sizeof(cstring));</p>
<p>if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== 'r')<br />
{<br />
resolution = true;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== '/' &amp;&amp; cstring[2]== 'r')<br />
{<br />
resolution = false;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== 'd')<br />
{<br />
driver = true;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== '/' &amp;&amp; cstring[2]== 'd')<br />
{<br />
driver = false;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== 'p')<br />
{<br />
player = true;<br />
}<br />
if(cstring[0] == '&lt;' &amp;&amp; cstring[1]== '/' &amp;&amp; cstring[2]== 'p')<br />
{<br />
player = false;<br />
}</p>
<p>if(player &amp;&amp; cstring[0] == 't')<br />
{<br />
int i = 0;<br />
while(cstring[i] != '<em>')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case '1':<br />
config.team = 1;<br />
break;<br />
case '2':<br />
config.team = 2;<br />
break;<br />
case '3':<br />
config.team = 3;<br />
break;<br />
case '4':<br />
config.team = 4;<br />
break;<br />
}<br />
}<br />
if(driver &amp;&amp; cstring[0] == 'd')<br />
{<br />
int i = 0;<br />
while(cstring[i] != '</em>')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case 'o':<br />
config.driver = &quot;EDT_OPENGL&quot;;<br />
break;<br />
case 's':<br />
config.driver = &quot;EDT_SOFTWARE&quot;;<br />
break;<br />
}<br />
}</p>
<p>if(resolution &amp;&amp; cstring[0] == 's')<br />
{<br />
int i = 0;</p>
<p>while(cstring[i] != '*')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case 'a':<br />
config.x = 640;<br />
config.y = 480;<br />
break;<br />
case 'b':<br />
config.x = 800;<br />
config.y = 600;<br />
break;<br />
case 'c':<br />
config.x = 1024;<br />
config.y = 768;<br />
break;<br />
}<br />
}<br />
if(resolution &amp;&amp; cstring[0] == 'f')<br />
{<br />
int i = 0;</p>
<p>while(cstring[i] != '*')<br />
{<br />
i++;<br />
}<br />
i++;<br />
switch(cstring[i])<br />
{<br />
case 'T':<br />
config.fullscreen = true;<br />
break;<br />
case 'F':<br />
config.fullscreen = false;<br />
break;<br />
}<br />
}<br />
}<br />
f.close();<br />
}<br />
Naja mit der methode werden leider immer nur die ersten zeichen geprüft da ichs anders nicht hinbekommen habe aber solange keine tags mit gleichen anfangsbuchstaben da sind geht das so.<br />
Nunja jetzt hab ich aber das problem das ich jetzt ganze strings und längere zahlen auslesen muss aus meiner dat datei(binär dateien kommen nicht in frage da ich dann einen leveleditor schreiben müsste)auslesen muss um einen level zu laden und da funtzt das prinzip von oben nicht mehr.<br />
hat da einer ne idee wie ich das machen könnte die level datei sieht so aus:<br />
///////////////////////////////////level.map///////////////////////////<br />
&lt;Map&gt;<br />
MapName = **<br />
file = *<em>.dmf</em><br />
&lt;/Map&gt;</p>
<p>&lt;SkyMap&gt;<br />
A = **<br />
C = **<br />
D = **<br />
E = **<br />
F = **<br />
G = **<br />
&lt;/SkyMap&gt;</p>
<p>/////////////////////////////////Only 8 lights allowed and minimum 1/////////////////////////////////////////////////////<br />
&lt;Light&gt;<br />
x = **<br />
y = **<br />
z = **<br />
color = **<br />
&lt;/Light&gt;</p>
<p>usw........<br />
////////////////////////////////////////////////////////////////////////</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933140</guid><dc:creator><![CDATA[Sudi]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to Variabeln aus Text dateien auslesen. on Sat, 03 Dec 2005 14:55:12 GMT]]></title><description><![CDATA[<p>hast du es schonmal mit std::string versucht - ist viel sicherer als char* (und hat einen operator==, mit dem du Strings vergleichen kannst)</p>
<p>PS: cpp-Tags wären auch hilfreich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/933150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933150</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to Variabeln aus Text dateien auslesen. on Sat, 03 Dec 2005 15:59:55 GMT]]></title><description><![CDATA[<p>Ja wollte ich aber ich kann irgendwie nicht mit getline in einen std::string copieren....kann er nicht konvertieren.<br />
hätte die frage ja sonst nicht gepostet...aber vielleicht kannst du mir ja sagen wie ich das machen kann das ich in einen std::string mit geline schreiben kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933197</guid><dc:creator><![CDATA[Sudi]]></dc:creator><pubDate>Sat, 03 Dec 2005 15:59:55 GMT</pubDate></item><item><title><![CDATA[Reply to Variabeln aus Text dateien auslesen. on Sat, 03 Dec 2005 18:03:42 GMT]]></title><description><![CDATA[<p>etwa so</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
using namespace std;

int main() {
   string s;
   ifstream in(&quot;data.txt&quot;);
   if ( in ) {
      getline( in, s);
      cout &lt;&lt; s &lt;&lt; endl;
   }
return 0;
}
</code></pre>
<p>Kurt<br />
BTW Ich tu mir das nicht an unformattierten code zu lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933283</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sat, 03 Dec 2005 18:03:42 GMT</pubDate></item></channel></rss>