<?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[stream verarbeiten]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche nach einer möglichkeit (nicht boost <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="😉"
    /> ) einen stream zu verarbeiten nach dem prinzip</p>
<pre><code class="language-cpp">Stream&lt;VerarbeitungsAlgo&gt; s;
cout &lt;&lt; s &lt;&lt; &quot;irgendwelche daten&quot;;
//oder 
foo &lt;&lt; s &lt;&lt; bar
</code></pre>
<p>wobei cout und &quot;irgendwelchen daten&quot; durch eine beliebiges Objekt ersetzt werden können. zB fstream, char-array, string usw.<br />
Außerdem kann sich die größe des Ausagbestreams verkleinern oder vergrößern.</p>
<p>Ich möchte also in s den Inhalt verändern.</p>
<p>Welchen Ansatz müsste ich dabei verfolgen bzw kleine Beispiel sources wären sehr hilfreich.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222540/stream-verarbeiten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 23:32:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222540.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Sep 2008 11:14:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stream verarbeiten on Sun, 14 Sep 2008 11:15:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche nach einer möglichkeit (nicht boost <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="😉"
    /> ) einen stream zu verarbeiten nach dem prinzip</p>
<pre><code class="language-cpp">Stream&lt;VerarbeitungsAlgo&gt; s;
cout &lt;&lt; s &lt;&lt; &quot;irgendwelche daten&quot;;
//oder 
foo &lt;&lt; s &lt;&lt; bar
</code></pre>
<p>wobei cout und &quot;irgendwelchen daten&quot; durch eine beliebiges Objekt ersetzt werden können. zB fstream, char-array, string usw.<br />
Außerdem kann sich die größe des Ausagbestreams verkleinern oder vergrößern.</p>
<p>Ich möchte also in s den Inhalt verändern.</p>
<p>Welchen Ansatz müsste ich dabei verfolgen bzw kleine Beispiel sources wären sehr hilfreich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581666</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Sun, 14 Sep 2008 11:15:58 GMT</pubDate></item><item><title><![CDATA[Reply to stream verarbeiten on Sun, 14 Sep 2008 11:38:57 GMT]]></title><description><![CDATA[<p>? Warum sollte das ein &quot;Stream&quot; sein müssen ?<br />
Für mich hat diese &quot;Filterfunktion&quot; nicht viel mit einem &quot;Stream&quot; gemeion ...<br />
Einfach eine &quot;AlgoKlasse&quot; definieren und den mit operator&lt;&lt;() geeignet überladen ...</p>
<p>Andererseits finde ich den Vorteil ggü. der &quot;klassischen Form&quot; nicht wirklich überwältigend:</p>
<pre><code class="language-cpp">VerarbeitungsAlgo s; // oder einfach eine geeignete Funktion s
cout &lt;&lt; s(&quot;irgendwelche daten&quot;);
//oder
foo &lt;&lt; s(bar);
</code></pre>
<p>Man muss nur darauf achten, dass für das Ergebnis von s (sei es nun eine Funktion oder ein Funktor) ein geeigneter operator&lt;&lt;() definiert ist ... aber das ist auch schnell selbst gemacht.</p>
<p>Die Idee eines &quot;generellen Algorithmus'&quot; halte ich sowieso für nicht allzu hilfreich. Wie soll ein Algorithmus aussehen, der TCP-Connections, Autos und Kundenkontakte gleichartig verarbeiten kann ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581672</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sun, 14 Sep 2008 11:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to stream verarbeiten on Sun, 14 Sep 2008 11:58:47 GMT]]></title><description><![CDATA[<p>Der algo soll in etwa gleichwertige Dinge verarbeiten können und irgendwie in die stream Klassen integriert werden. Im konkretem geht es dabei um verschiedene Verschlüsslungsalgos, die als Parameter übergeben werden sollen. Machen tun sie ja alle das gleiche, nämlich verschlüsseln oder entschlüsseln.</p>
<p>Es geht mir hierbei primär um die Ansätze wie man mit meiner Methode lösen könnte. <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581683</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Sun, 14 Sep 2008 11:58:47 GMT</pubDate></item><item><title><![CDATA[Reply to stream verarbeiten on Sun, 14 Sep 2008 12:57:20 GMT]]></title><description><![CDATA[<p>Achso, du meinst eine Verschlüsselungsengine. Wie wäre es mit sowas:</p>
<pre><code class="language-cpp">Encryptor&lt;AlgoType&gt; encryptor;
std::string toEncrypt(&quot;Hello&quot;);
std::string encrypted;

encryptor(toEncrypt.begin(), toEncrypt.end(), std::back_inserter(encrypted));

std::cout &lt;&lt; encrypted &lt;&lt; std::endl;

// Und die Klasse Encryptor irgendwie so:
template&lt;typename AlgoTypeT&gt;
class Encryptor
{
public:
  template&lt;typename InIterT, typename OutIterT&gt;
  void operator ()(InIterT first, InIterT last, OutIterT out)
  {
    AlgoTypeT algo;

    for(; first != last; ++first, ++out)
    { *out = algo.encrypt(*first); }
  }
};
</code></pre>
<p>Oder sowas ähnliches ...?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581705</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 14 Sep 2008 12:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to stream verarbeiten on Sun, 14 Sep 2008 13:47:15 GMT]]></title><description><![CDATA[<p>So in der Art sieht das schon gut aus. Perfekt wäre es jetzt noch wenn der Algo über die Blockgrößen selbst entscheiden könnte. Ich hab ja auch schon ein wenig selbst angefangen, komme aber damit nicht so wirklich weiter.</p>
<pre><code class="language-cpp">#pragma once
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;tea.h&quot;
#include &quot;rc4.h&quot;

namespace crypt
{
	template&lt;class algo&gt;
	class CipherBuffer: public algo
	{
		private:
			algo theAlgo;

		public:
			CipherBuffer(const algo &amp;theAlgo)	{};
			~CipherBuffer()						{};
	};

	///instanz vom user
	template&lt;class algo&gt;
	class CipherStream: public CipherBuffer&lt;algo&gt;
	{
		public:
			CipherStream(const algo &amp;theAlgo = algo());
			~CipherStream();

	};

	template&lt;class algo&gt;
	CipherStream&lt;algo&gt;::CipherStream(const algo &amp;theAlgo): CipherBuffer&lt;algo&gt;(theAlgo)
	{

	}

	template&lt;class algo&gt;
	CipherStream&lt;algo&gt;::~CipherStream()
	{

	}
}
</code></pre>
<pre><code class="language-cpp">#pragma once
#include &lt;iostream&gt;
#include &lt;string&gt;

namespace crypt
{
	class RC4
	{
		private:

		public:
			RC4()	{};
			~RC4()	{};

			void operator&lt;&lt; (std::string &amp;s)
			{
				std::cout &lt;&lt; s &lt;&lt; std::endl;
			};
	};
}
</code></pre>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

#include &quot;cipher.h&quot;

#include &lt;stdio.h&gt;

using namespace std;
using namespace crypt;

int main(int argc, char **argv)
{
	string s = &quot;Test&quot;;
	CipherStream&lt;RC4&gt; rc4;

	rc4 &lt;&lt; s;

	system(&quot;pause&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1581734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581734</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Sun, 14 Sep 2008 13:47:15 GMT</pubDate></item></channel></rss>