<?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[boost spirit file iterator]]></title><description><![CDATA[<p>Hallo<br />
Ich hab mir mit spirit ein paar rules erstellt:</p>
<pre><code class="language-cpp">rule&lt;&gt; grammar =
		spaces &gt;&gt;
		str_p(&quot;Pet&quot;) &gt;&gt; spaces &gt;&gt; ch_p('(') &gt;&gt; spaces &gt;&gt;
		named_value &gt;&gt; spaces &gt;&gt;
		+(ch_p(',') &gt;&gt; spaces &gt;&gt; *(pet_value) &gt;&gt; *(named_value) &gt;&gt; spaces) &gt;&gt;
		str_p(&quot;);&quot;) &gt;&gt; 
		spaces &gt;&gt;
		end_p;
</code></pre>
<p>mit const char * funktioniert das sehr gut<br />
nur möchte ich das jetzt mit einem file iterator verwenden.<br />
und das funktioniert überhaupt nicht :(.</p>
<pre><code class="language-cpp">typedef file_iterator&lt;char&gt;   iterator_t;

iterator_t first(&quot;pets&quot;);

    if (!first)
    {
       std::cout &lt;&lt; &quot;Unable to open file!\n&quot;;

       // Clean up, throw an exception, whatever
       return -1;
    }

    iterator_t last = first.make_end();

// hier der parser zu der obigen rule

parse_info&lt;iterator_t&gt; result = parse(first, last, grammar);
</code></pre>
<p>weiß irgend jemand warum das nicht funktioniert.</p>
<p>lg<br />
Verucca</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177805/boost-spirit-file-iterator</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 15:42:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177805.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Apr 2007 09:43:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost spirit file iterator on Wed, 04 Apr 2007 09:43:57 GMT]]></title><description><![CDATA[<p>Hallo<br />
Ich hab mir mit spirit ein paar rules erstellt:</p>
<pre><code class="language-cpp">rule&lt;&gt; grammar =
		spaces &gt;&gt;
		str_p(&quot;Pet&quot;) &gt;&gt; spaces &gt;&gt; ch_p('(') &gt;&gt; spaces &gt;&gt;
		named_value &gt;&gt; spaces &gt;&gt;
		+(ch_p(',') &gt;&gt; spaces &gt;&gt; *(pet_value) &gt;&gt; *(named_value) &gt;&gt; spaces) &gt;&gt;
		str_p(&quot;);&quot;) &gt;&gt; 
		spaces &gt;&gt;
		end_p;
</code></pre>
<p>mit const char * funktioniert das sehr gut<br />
nur möchte ich das jetzt mit einem file iterator verwenden.<br />
und das funktioniert überhaupt nicht :(.</p>
<pre><code class="language-cpp">typedef file_iterator&lt;char&gt;   iterator_t;

iterator_t first(&quot;pets&quot;);

    if (!first)
    {
       std::cout &lt;&lt; &quot;Unable to open file!\n&quot;;

       // Clean up, throw an exception, whatever
       return -1;
    }

    iterator_t last = first.make_end();

// hier der parser zu der obigen rule

parse_info&lt;iterator_t&gt; result = parse(first, last, grammar);
</code></pre>
<p>weiß irgend jemand warum das nicht funktioniert.</p>
<p>lg<br />
Verucca</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259094</guid><dc:creator><![CDATA[Verucca]]></dc:creator><pubDate>Wed, 04 Apr 2007 09:43:57 GMT</pubDate></item><item><title><![CDATA[Reply to boost spirit file iterator on Wed, 04 Apr 2007 09:46:31 GMT]]></title><description><![CDATA[<p>Spirit hat so seine Probleme mit reinen Input-Iteratoren (vor allem mit der Tatsache, daß sie laut Standard nicht zuverlässig kopiert werden können), deshalb haben die Erfinder noch einen multi_pass_iterator&lt;&gt; mitgeliefert, den du um deinen Stream-Iterator wrappen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259097</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 04 Apr 2007 09:46:31 GMT</pubDate></item><item><title><![CDATA[Reply to boost spirit file iterator on Wed, 04 Apr 2007 12:59:56 GMT]]></title><description><![CDATA[<p>Danke - werde ich mir nachher anschauen ....</p>
<p>jedenfalls brauch ich noch etwas anderes.<br />
ich lese momentan die datei einfach in einen string ein ( weil mit dem file iterator nicht geklapt hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ).<br />
dann parse ich das mit meinem parser.</p>
<p>ich will jetzt mehrere stringbilder und informationen in eine klasse parsen.<br />
jedesmal wenn ein bild eingelesen wurde, möchte ich das in einen vector&lt;strinbild&gt; einfügen und dann ein neues stringbild einlesen.</p>
<p>allerdings weiß ich nicht genau wie ich ein neues stringbild erstelle.</p>
<pre><code class="language-cpp">rule&lt;&gt; grammar = repeat_p(1,more)[
		(spaces &gt;&gt;
		str_p(&quot;Pet&quot;) &gt;&gt; spaces &gt;&gt; ch_p('(') &gt;&gt; spaces &gt;&gt;
		named_value &gt;&gt; spaces &gt;&gt;
		+(ch_p(',') &gt;&gt; spaces &gt;&gt; (*(pet_value) || *(named_value)) &gt;&gt; spaces) &gt;&gt;
		str_p(&quot;);&quot;) &gt;&gt; 
		spaces) [push_back_a(petsvect, pet), Pet pet&rsqb;&rsqb; &gt;&gt;
		end_p;
</code></pre>
<p>das hier:</p>
<pre><code class="language-cpp">[push_back_a(petsvect, pet), Pet pet&rsqb;&rsqb;
</code></pre>
<p>ist natürlich unsinn.</p>
<p>aber die frage ist wie erstelle ich ein neues pet ( stringbild ).<br />
wenn die loop durch gelaufen ist.<br />
das push_back funktioniert ja gut, aber ein neues strinbild erstellen und dann wieder pushen geht nicht wirklich - bzw. weiß ich nicht wie.</p>
<p>lg<br />
Verucca</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259264</guid><dc:creator><![CDATA[Verucca]]></dc:creator><pubDate>Wed, 04 Apr 2007 12:59:56 GMT</pubDate></item><item><title><![CDATA[Reply to boost spirit file iterator on Wed, 04 Apr 2007 14:20:07 GMT]]></title><description><![CDATA[<p>also die einzige methode wie ich das jetzt hin bekommen hab ist alles zu klammern und jeweils immer nur eine aktion durchzuführen</p>
<p>(( parser) [aktion]) [aktion]</p>
<p>mehrere aktionen hinter einander hat er nicht genommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> .....<br />
lg<br />
Verucca</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259315</guid><dc:creator><![CDATA[Verucca]]></dc:creator><pubDate>Wed, 04 Apr 2007 14:20:07 GMT</pubDate></item><item><title><![CDATA[Reply to boost spirit file iterator on Thu, 05 Apr 2007 07:14:08 GMT]]></title><description><![CDATA[<p>ich weis nicht, was ein &quot;stringbild&quot; sein soll, geschweige denn wie der constructor aussieht, aber vielleicht ist das ja, was du meintest. such mal unter phoenix in der spirit docu für mehr infos.</p>
<pre><code class="language-cpp">phoenix::push_back(var(petsvec),phoenix::construct_&lt;Pet&gt;(phoenix::arg1,phoenix::arg2))
</code></pre>
<p>und formatiere das ganze bitte ein wenig besser, ich hab jetzt fast 5 mins gebraucht, bis ich kapiert hab, was nun alles geparsed wird <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/1259751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259751</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 05 Apr 2007 07:14:08 GMT</pubDate></item></channel></rss>