<?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[explode (aus PHP) in C++, bzw. lange Variable unterteilen]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte aus einer langen Variable, die in einer Textdatei gespeichert ist, mehrere kleine machen.<br />
Der Inhalt der Datei sieht folgendermaßen aus:</p>
<pre><code>0|test|123|Hello world|18.6.2012;
1|variable|456|Hallo Welt|18.6.2012;
</code></pre>
<p>in PHP geht das ganze ja per &quot;explode&quot;.</p>
<pre><code class="language-php">$items = explode(&quot;;&quot;, $content);
//content ist der Inhalt der Textdatei, der ausgelesen wird

list($check, $var, $zahl, $text, $date) = explode(&quot;|&quot;, $item);
</code></pre>
<p>Ist das auch in C++ umsetzbar??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304981/explode-aus-php-in-c-bzw-lange-variable-unterteilen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 06:01:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304981.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Jun 2012 15:24:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Mon, 18 Jun 2012 15:24:19 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte aus einer langen Variable, die in einer Textdatei gespeichert ist, mehrere kleine machen.<br />
Der Inhalt der Datei sieht folgendermaßen aus:</p>
<pre><code>0|test|123|Hello world|18.6.2012;
1|variable|456|Hallo Welt|18.6.2012;
</code></pre>
<p>in PHP geht das ganze ja per &quot;explode&quot;.</p>
<pre><code class="language-php">$items = explode(&quot;;&quot;, $content);
//content ist der Inhalt der Textdatei, der ausgelesen wird

list($check, $var, $zahl, $text, $date) = explode(&quot;|&quot;, $item);
</code></pre>
<p>Ist das auch in C++ umsetzbar??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224574</guid><dc:creator><![CDATA[JanK411]]></dc:creator><pubDate>Mon, 18 Jun 2012 15:24:19 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Mon, 18 Jun 2012 15:52:04 GMT]]></title><description><![CDATA[<p>Natürlich ist das in C++ umsetzbar. Man muss sich halt eine entsprechende Funktion dafür schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224584</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Mon, 18 Jun 2012 15:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Mon, 18 Jun 2012 16:07:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;
#include &lt;algorithm&gt;
#include &lt;iterator&gt;
#include &lt;vector&gt;

namespace my {
	struct actype : std::ctype&lt; char &gt; {
		actype(): std::ctype&lt; char &gt;(get_table()) {}
		static std::ctype_base::mask const* get_table() {
			static std::ctype_base::mask* rc = 0;

			if( !rc ) {
				rc = new std::ctype_base::mask[std::ctype&lt;char&gt;::table_size];
				std::fill_n(rc, std::ctype&lt;char&gt;::table_size,
				std::ctype_base::mask());
				rc['|']  = std::ctype_base::space;
				rc['\n'] = std::ctype_base::space;
			}
			return rc;
		}
	};

	std::vector&lt; std::string &gt; split( std::string input )
	{
		std::istringstream iss( input );
		iss.imbue(std::locale(std::locale(), new my::actype));

		std::vector&lt;std::string&gt; tokens;
		std::copy(std::istream_iterator&lt;std::string&gt;(iss), std::istream_iterator&lt;std::string&gt;(), std::back_inserter&lt;std::vector&lt;std::string&gt; &gt;(tokens));

		return tokens;
	}
}

int main() {

    std::vector&lt; std::string &gt; tokens = my::split( &quot;0|test|123|Hello world|18.6.2012&quot; );

	for( std::vector&lt;std::string&gt;::iterator i = tokens.begin(); i!= tokens.end(); ++i )	{
		std::cout &lt;&lt; *i &lt;&lt; '\n';
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2224588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224588</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 18 Jun 2012 16:07:59 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Mon, 18 Jun 2012 19:37:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;string&gt;

template&lt;typename T&gt; bool DefaultCompareFunc(T const &amp;first, T const &amp;second)
{
    return first == second;
}

template&lt;typename T, template&lt;typename T, typename...&gt; class Container, typename FuncType&gt;
    std::vector&lt;Container&lt;T&gt; &gt; GetSeparated(Container&lt;T&gt; const &amp;in, T comp_value, FuncType comp_func)
{
    std::vector&lt;Container&lt;T&gt; &gt; ret;

    typename Container&lt;T&gt;::const_iterator start_iter = in.begin(), end_iter = in.begin();
    while(end_iter != in.end())
    {
        if(comp_func(*end_iter, comp_value))
        {
            if(start_iter != end_iter)
            {
                ret.push_back(Container&lt;T&gt;(start_iter, end_iter));
            }
            start_iter = end_iter;
            ++start_iter;
        }
        ++end_iter;
    }
    if(start_iter != end_iter)
    {
        ret.push_back(Container&lt;T&gt;(start_iter, end_iter));
    }

    return ret;
}

template&lt;typename T, template&lt;typename T, typename...&gt; class Container&gt;
    std::vector&lt;Container&lt;T&gt; &gt; GetSeparated(Container&lt;T&gt; const &amp;in, T comp_value)
{
    return GetSeparated(in, comp_value, DefaultCompareFunc&lt;T&gt;);
}

int main()
{
    std::string content = &quot;0|test|123|Hello world|18.6.2012;\n1|variable|456|Hallo Welt|18.6.2012;&quot;; 	
    std::vector&lt;std::vector&lt;std::string&gt; &gt; tokens;

    std::vector&lt;std::string&gt; items = GetSeparated(content, ';');
    for(int i = 0; i &lt; items.size(); ++i)
    {
        tokens.push_back(GetSeparated(items[i], '|'));
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2224594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224594</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Mon, 18 Jun 2012 19:37:22 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Mon, 18 Jun 2012 16:22:28 GMT]]></title><description><![CDATA[<p>elogant <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/2224596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224596</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 18 Jun 2012 16:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Mon, 18 Jun 2012 23:55:29 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; split(std::string s, char delim)
{
    std::istringstream iss(std::move(s));
    std::vector&lt;std::string&gt; result;

    while(std::getline(iss, s, delim))
        result.push_back(std::move(s));

    return result;    
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2224835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224835</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 18 Jun 2012 23:55:29 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Tue, 19 Jun 2012 15:49:10 GMT]]></title><description><![CDATA[<p>Oha<br />
Danke!<br />
Damit muss ich mich erstmal auseinandersetzen.<br />
ist n bisschen mehr als ich erwartet habe <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>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225084</guid><dc:creator><![CDATA[JanK411]]></dc:creator><pubDate>Tue, 19 Jun 2012 15:49:10 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Tue, 19 Jun 2012 19:14:48 GMT]]></title><description><![CDATA[<p>soo<br />
jetzt habe ich mich damit auseinandergesetzt...<br />
und ich verstehe so ziemlich gar nichts <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>
<p>Egal wie ich den Script von wxSkip in meinen hereineditiere, bekomme ich tausende Fehlermeldungen.</p>
<p>Der von Swordfish funktioniert so weit. Aber ich kann nicht genau nachvollziehen wie.<br />
Sind die Werte aus meiner Datei</p>
<pre><code>0|test|123|Hello world|18.6.2012;
</code></pre>
<p>alle in dem Vector &quot;tokens&quot; abgespeichert?<br />
und wie kann ich dann mit diesen Werten weiterarbeiten?<br />
Ich kann den Code insgesamt nicht ganz nachvollziehen.</p>
<p>Ich bin eigentlich auch noch ein blutiger Anfänger, was C++ angeht... <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/2225152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225152</guid><dc:creator><![CDATA[JanK411]]></dc:creator><pubDate>Tue, 19 Jun 2012 19:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Tue, 19 Jun 2012 19:23:48 GMT]]></title><description><![CDATA[<p>Ja, sie sind in tokens gespeichert. Du kannst tokens wie ein Array verwenden.</p>
<pre><code class="language-cpp">tokens[0] // erste Element
tokens[1] // zweite Element

tokens.size() // Anzahl der Elemente
</code></pre>
<p>Sprich folgendes macht genau das gleiche:</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; tokens.size(); ++i)
{
 std::cout &lt;&lt; tokens[i] &lt;&lt; &quot;\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2225157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225157</guid><dc:creator><![CDATA[jhkjhkhj]]></dc:creator><pubDate>Tue, 19 Jun 2012 19:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Tue, 19 Jun 2012 19:55:04 GMT]]></title><description><![CDATA[<p>JanK411 schrieb:</p>
<blockquote>
<p>Egal wie ich den Script von wxSkip in meinen hereineditiere, bekomme ich tausende Fehlermeldungen.</p>
</blockquote>
<p>Welche? Welchen Compiler hast du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225165</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Tue, 19 Jun 2012 19:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to explode (aus PHP) in C++, bzw. lange Variable unterteilen on Tue, 19 Jun 2012 20:06:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;boost/algorithm/string.hpp&gt;

std::vector&lt;std::string&gt; items;
boost::split(items, content, boost::is_any_of(&quot;|&quot;));
</code></pre>
<p>sollte genau das tun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225170</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Tue, 19 Jun 2012 20:06:04 GMT</pubDate></item></channel></rss>