<?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[Tabellen vergelichen ?]]></title><description><![CDATA[<p>Ich steh gerade voll auf dem Schlauch und hoffe das ihr mir da helfen könnt.</p>
<p>Zur Verfügung stehen 2 Tabellen, Tabelle 2 ist mit den Werten aus einer CSV Dateien gefüllt.<br />
In Tabelle 1 wird per Zufall eine Zeile ausgewählt.</p>
<p>In Tabelle 2 sind die Spalten mit einem Komma getrennt.<br />
Nun soll das Eregbnis aus Tabelle 1 in Spalte 2 von Tabelle 2 gesucht werden, bei einer Übereinstimmung soll der Inhalt aus Spalte 1 zurück gegeben werden.</p>
<p>Beispiel.<br />
Zufällig wird Zeile 2 ausgewähnt --&gt; Müller<br />
Nun soll in Tabelle 2 (Spalte2), also nach dem 1. Komma Müller gescht werden. Ist dies vorhanden wird alles bis zum 1. Komma zurück gegeben also Carsten.</p>
<p>Tabelle 1</p>
<pre><code>Mayer
Müller
Schmitt
Ostendrof
</code></pre>
<p>Tabelle 2</p>
<pre><code>Herbert, Gras, Hamburg
David, Grün, Berlin
Sebastian, Mayer, Dortmund
Tobias, Schmitt, Essen
Carsten, Müller, München
</code></pre>
<p>Bislang komme ich nur auf große 3-fach verschachtelte for-Schleifen mit jeweils mehreren switch/case.</p>
<p>Geht das nicht einfacher ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/343728/tabellen-vergelichen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 12:47:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/343728.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Jul 2017 20:07:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tabellen vergelichen ? on Thu, 13 Jul 2017 20:07:00 GMT]]></title><description><![CDATA[<p>Ich steh gerade voll auf dem Schlauch und hoffe das ihr mir da helfen könnt.</p>
<p>Zur Verfügung stehen 2 Tabellen, Tabelle 2 ist mit den Werten aus einer CSV Dateien gefüllt.<br />
In Tabelle 1 wird per Zufall eine Zeile ausgewählt.</p>
<p>In Tabelle 2 sind die Spalten mit einem Komma getrennt.<br />
Nun soll das Eregbnis aus Tabelle 1 in Spalte 2 von Tabelle 2 gesucht werden, bei einer Übereinstimmung soll der Inhalt aus Spalte 1 zurück gegeben werden.</p>
<p>Beispiel.<br />
Zufällig wird Zeile 2 ausgewähnt --&gt; Müller<br />
Nun soll in Tabelle 2 (Spalte2), also nach dem 1. Komma Müller gescht werden. Ist dies vorhanden wird alles bis zum 1. Komma zurück gegeben also Carsten.</p>
<p>Tabelle 1</p>
<pre><code>Mayer
Müller
Schmitt
Ostendrof
</code></pre>
<p>Tabelle 2</p>
<pre><code>Herbert, Gras, Hamburg
David, Grün, Berlin
Sebastian, Mayer, Dortmund
Tobias, Schmitt, Essen
Carsten, Müller, München
</code></pre>
<p>Bislang komme ich nur auf große 3-fach verschachtelte for-Schleifen mit jeweils mehreren switch/case.</p>
<p>Geht das nicht einfacher ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2535128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2535128</guid><dc:creator><![CDATA[rallyefan238]]></dc:creator><pubDate>Thu, 13 Jul 2017 20:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Tabellen vergelichen ? on Fri, 14 Jul 2017 07:00:39 GMT]]></title><description><![CDATA[<ol>
<li>falsches Forum, gehört nach C++ (auch wenn du mit dem Builder programmierst)</li>
<li>lies die CSV-Datei in eine passende Datenstruktur (falls es sich hierbei nicht um Millionen von Zeilen handelt):</li>
</ol>
<pre><code>#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;functional&gt;

struct Person
{
   std::string Vorname;
   std::string Nachname;
   std::string Wohnort;
};

// Daten in Vektor einlesen
std::vector&lt;Person&gt; read_file( const std::string&amp; FileName )
{
   std::vector&lt;Person&gt; retVal;

   // Daten einlesen
   ...

   return retVal;
}

// die Suche kann jetzt mit std::find_if implementiert werden:
// ab Builder 10 mit einem Lambda, davor mit einem Funktor

// bis Builder 10
struct PersonEqualsName : std::binary_function&lt;Person,std::string,bool&gt;
{
   bool operator()( const Person&amp; lhs, const std::string&amp; rhs ) const
   {
      return lhs.Nachname == rhs;
   }
};

int main()
{
   std::vector&lt;Person&gt; v = read_file( &quot;....&quot; );

   std::string Name = &quot;Müller&quot;;
   std::cout &lt;&lt; &quot;Suche nach '&quot; &lt;&lt; Name &lt;&lt; &quot;'\n&quot;;

   // bis Builder 10
   std::vector&lt;Person&gt;::const_iterator pos = find_if( v.begin(), v.end(), std::bind2nd( PersonEqualsName(), Name ) );
   if( pos != v.end() )
   {
      std::cout &lt;&lt; &quot;Der Vorname der Person '&quot; &lt;&lt; Name &lt;&lt; &quot;' lautet '&quot; &lt;&lt; pos-&gt;Vorname &lt;&lt; &quot;'\n&quot;;
   }
   else
   {
      std::cout &lt;&lt; &quot;Person '&quot; &lt;&lt; Name &lt;&lt; &quot;' wurde nicht gefunden.\n&quot;;
   }

   // ab Builder 10
   auto pos = find_if( v.begin(), v.end(), [&amp;Name]( const Person&amp; p )
                                           {
                                              return p.Nachname == Name;
                                           } 
                     );
   if( pos != v.end() )
   {
      std::cout &lt;&lt; &quot;Der Vorname der Person '&quot; &lt;&lt; Name &lt;&lt; &quot;' lautet '&quot; &lt;&lt; pos-&gt;Vorname &lt;&lt; &quot;'\n&quot;;
   }
   else
   {
      std::cout &lt;&lt; &quot;Person '&quot; &lt;&lt; Name &lt;&lt; &quot;' wurde nicht gefunden.\n&quot;;
   }
}
</code></pre>
<p>Falls du dich noch nicht mit den Datentypen und Algorithmen der STL auskennst ist jetzt ein guter Zeitpunkt damit anzufangen <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 />
Und da du im Builder Forum gepostet hast: benutz´ nicht die VCL Datentypen, sondern die C++ STL.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2535151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2535151</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 14 Jul 2017 07:00:39 GMT</pubDate></item></channel></rss>