<?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[datei byte für byte interpretieren.]]></title><description><![CDATA[<p>hallo alle zusammen,<br />
wir sollen eine datei byte-weise einlesen und interpretieren. nur weis ich nicht wie ich das anstellen soll.</p>
<p>die datei hat folgeneden aufbau:<br />
jede zeile steht für eine element, das so aussieht<br />
[interner paramter] &quot;id&quot; &quot;name&quot; [&quot;aktion&quot;]<br />
die aktion und der parameter sind nur optional. sie müssen nicht in jedem eintrag vorhanden sein.</p>
<p>unter jedem element kann nun ein child folgen. dieses wird in geschweifte klammern gesetzt, wie in c, { = blockanfang } = blockende.<br />
in jedem child-block können wieder beliebig viele elemente, gleichen aufbaus, stehen. dies bis in eine tiefe von 255 childs.</p>
<p>das ganze sol dann irgendwie in einer liste gespeichert werden, damit man einfach drauf zugreifen und schreiben kann.<br />
in php würde ich das per array machen, aber mehr-typen-arrays gehen ja nur in scriptsprachen. nicht in c.</p>
<p>ich habe gehört sowas geht über grammatik-zerlegung - nur davon habe ich auch keine ahnung. kann mir da einer helfen? ich hab keine ahnung wie ich das schaffen soll. die datei darf nicht zeilenweise eingelesen werden.</p>
<p>bsp:</p>
<pre><code>&quot;0&quot; &quot;eintrag 1&quot;
{
    &quot;0&quot; &quot;eintrag 1.1&quot; &quot;exec funktion&quot;
    &quot;1&quot; &quot;eintrag 1.2&quot;
    {
         ONLY_IN_DEBUG &quot;0&quot; &quot;eintrag 1.2.1&quot; &quot;aktion&quot;
    }
}
&quot;1&quot; &quot;eintrag 2&quot; &quot;exec write -hallo-&quot;
&quot;2&quot; &quot;eintrag 3&quot;
{
    &quot;0&quot; eintrag 3.1&quot; &quot;...&quot;
}
</code></pre>
<p>p.s.: die einrückung und trennung kann per leerzeichen oder tabs erfolgen. die einrückung kann, unter umständen, auch wegfallen.</p>
<p>wäre sehr dankbar über jede hilfe.<br />
danke im voraus.<br />
Uni_Sol</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130264/datei-byte-für-byte-interpretieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 15:57:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130264.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Dec 2005 12:35:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to datei byte für byte interpretieren. on Wed, 21 Dec 2005 12:35:57 GMT]]></title><description><![CDATA[<p>hallo alle zusammen,<br />
wir sollen eine datei byte-weise einlesen und interpretieren. nur weis ich nicht wie ich das anstellen soll.</p>
<p>die datei hat folgeneden aufbau:<br />
jede zeile steht für eine element, das so aussieht<br />
[interner paramter] &quot;id&quot; &quot;name&quot; [&quot;aktion&quot;]<br />
die aktion und der parameter sind nur optional. sie müssen nicht in jedem eintrag vorhanden sein.</p>
<p>unter jedem element kann nun ein child folgen. dieses wird in geschweifte klammern gesetzt, wie in c, { = blockanfang } = blockende.<br />
in jedem child-block können wieder beliebig viele elemente, gleichen aufbaus, stehen. dies bis in eine tiefe von 255 childs.</p>
<p>das ganze sol dann irgendwie in einer liste gespeichert werden, damit man einfach drauf zugreifen und schreiben kann.<br />
in php würde ich das per array machen, aber mehr-typen-arrays gehen ja nur in scriptsprachen. nicht in c.</p>
<p>ich habe gehört sowas geht über grammatik-zerlegung - nur davon habe ich auch keine ahnung. kann mir da einer helfen? ich hab keine ahnung wie ich das schaffen soll. die datei darf nicht zeilenweise eingelesen werden.</p>
<p>bsp:</p>
<pre><code>&quot;0&quot; &quot;eintrag 1&quot;
{
    &quot;0&quot; &quot;eintrag 1.1&quot; &quot;exec funktion&quot;
    &quot;1&quot; &quot;eintrag 1.2&quot;
    {
         ONLY_IN_DEBUG &quot;0&quot; &quot;eintrag 1.2.1&quot; &quot;aktion&quot;
    }
}
&quot;1&quot; &quot;eintrag 2&quot; &quot;exec write -hallo-&quot;
&quot;2&quot; &quot;eintrag 3&quot;
{
    &quot;0&quot; eintrag 3.1&quot; &quot;...&quot;
}
</code></pre>
<p>p.s.: die einrückung und trennung kann per leerzeichen oder tabs erfolgen. die einrückung kann, unter umständen, auch wegfallen.</p>
<p>wäre sehr dankbar über jede hilfe.<br />
danke im voraus.<br />
Uni_Sol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946990</guid><dc:creator><![CDATA[bsunisol]]></dc:creator><pubDate>Wed, 21 Dec 2005 12:35:57 GMT</pubDate></item><item><title><![CDATA[Reply to datei byte für byte interpretieren. on Wed, 21 Dec 2005 13:47:25 GMT]]></title><description><![CDATA[<p>Sehe ich das richtig, daß jeder Eintrag eine eigene Zeile bekommt? Wenn ja, kannst du die Datei stückweise mit getline() zeilenweise einlesen und die Zeilen dann nach ensprechenden Mustern absuchen.</p>
<p>(PS: mit &quot;str=str.substr(str.find_first_not_of(&quot; \t&quot;);&quot; kannst du notfalls die Einrückungen abschneiden.)</p>
<p>Edit: Ich habe das</p>
<blockquote>
<p>die datei darf nicht zeilenweise eingelesen werden.</p>
</blockquote>
<p>wohl übersehen <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="😉"
    /><br />
In dem Fall kannst du das auch manuell nachbilden:</p>
<pre><code class="language-cpp">string str;
ifstream fin(&quot;datei.txt&quot;);
while(fin)
{
  char c;
  fin.get(c);
  if(c=='\n')
  {
    //werte Zeile aus
    str=&quot;&quot;;
  }
  else
    str.push_back(c);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/947058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947058</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 21 Dec 2005 13:47:25 GMT</pubDate></item></channel></rss>