<?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[Vergleich von zwei Textdateien&#x2F;Stücklisten]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab da ein kleines Problem und da mir die Suche leider nicht weitergeholfen hat poste ich mal mein Prob.</p>
<p>Ich hab zwei Textdateien, in beiden sind Einträge vorhanden wie bei einer Stückliste sieht in etwa wie foglt aus:</p>
<p>A34 34-556<br />
C16 23-555<br />
G456 57-886</p>
<p>habs auch schon geschafft beide in zwei String-Arrays zu laden, jetzt gehts darum das eine Textdatei eine aktuelle Liste darstellt und die andere eine veralterte, ich brauch nun ein Programm um den vergleich anzustellen: a)welche einträge sind bei aktueller dazu gekommen b)welche Einträge sind in aktueller nicht mehr vorhanden und c)wie oft kommt ein eintrag in aktueller Datei vor.</p>
<p>Ich wollte es so lösen das ich einen vergleich der einzelnen Stringelemente mache, da ich sie bereits mit sort sortiert hab, kann ich praktisch sagen falls &quot;==&quot; dann beide Einträge identisch, falls &quot;!=&quot; schau ich welcher größer oder kleiner ist, je nachdem ist der entsprechende Eintrag also dazugekommen oder ist weggefallen und nach dem Kriterium müsst ich dann einfach diesen Eintrag mit dem Vermerk &quot;dazugekommen&quot; oder &quot;entfernt&quot; in eine neue Textdatei schreiben, den &quot;Zeiger&quot; auf den Eintrag dann aber nur bei einer Datei weiter wandern lassen damit ich nicht lauter unterschiede hab wenn nur eins der oberen Elemte fehlt, weil sich ja dadurch alle anderen um eine Zeile verschieben.</p>
<p>Ich hab mir gedacht mit &lt;vector&gt; ließe sich das Problem gut lösen aber dazu hab ich auf dem Bereich zu wenig erfahrung, auf welchen weg ich die Lösung hinbekomm ist mir dann aber im Prinzip egal...</p>
<p>Vielen Dank für eure Tips...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174006/vergleich-von-zwei-textdateien-stücklisten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 12:58:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174006.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Feb 2007 05:47:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vergleich von zwei Textdateien&#x2F;Stücklisten on Thu, 22 Feb 2007 05:47:36 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab da ein kleines Problem und da mir die Suche leider nicht weitergeholfen hat poste ich mal mein Prob.</p>
<p>Ich hab zwei Textdateien, in beiden sind Einträge vorhanden wie bei einer Stückliste sieht in etwa wie foglt aus:</p>
<p>A34 34-556<br />
C16 23-555<br />
G456 57-886</p>
<p>habs auch schon geschafft beide in zwei String-Arrays zu laden, jetzt gehts darum das eine Textdatei eine aktuelle Liste darstellt und die andere eine veralterte, ich brauch nun ein Programm um den vergleich anzustellen: a)welche einträge sind bei aktueller dazu gekommen b)welche Einträge sind in aktueller nicht mehr vorhanden und c)wie oft kommt ein eintrag in aktueller Datei vor.</p>
<p>Ich wollte es so lösen das ich einen vergleich der einzelnen Stringelemente mache, da ich sie bereits mit sort sortiert hab, kann ich praktisch sagen falls &quot;==&quot; dann beide Einträge identisch, falls &quot;!=&quot; schau ich welcher größer oder kleiner ist, je nachdem ist der entsprechende Eintrag also dazugekommen oder ist weggefallen und nach dem Kriterium müsst ich dann einfach diesen Eintrag mit dem Vermerk &quot;dazugekommen&quot; oder &quot;entfernt&quot; in eine neue Textdatei schreiben, den &quot;Zeiger&quot; auf den Eintrag dann aber nur bei einer Datei weiter wandern lassen damit ich nicht lauter unterschiede hab wenn nur eins der oberen Elemte fehlt, weil sich ja dadurch alle anderen um eine Zeile verschieben.</p>
<p>Ich hab mir gedacht mit &lt;vector&gt; ließe sich das Problem gut lösen aber dazu hab ich auf dem Bereich zu wenig erfahrung, auf welchen weg ich die Lösung hinbekomm ist mir dann aber im Prinzip egal...</p>
<p>Vielen Dank für eure Tips...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232928</guid><dc:creator><![CDATA[AccesDenied]]></dc:creator><pubDate>Thu, 22 Feb 2007 05:47:36 GMT</pubDate></item><item><title><![CDATA[Reply to Vergleich von zwei Textdateien&#x2F;Stücklisten on Thu, 22 Feb 2007 07:08:48 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>ja, man kann es mit Vektoren machen.<br />
Wenn es Keywerte gibt, könnte man auch eine Map nehmen.<br />
Das Suchen in einer Map ist schneller als das ablaufen eines Vektors.<br />
Näheres dazu in der Beschreibung der STL. Je nach Aufgabenstellung<br />
den richtigen Container aussuchen.</p>
<p>Datei einlesen z.b. mit std::fstream</p>
<p>pseudo code:</p>
<p>std::fstream f;<br />
f.open(...);<br />
// testen f.good(), oder !f.bad()<br />
while ( !f.eof() )<br />
{<br />
f.getline( buffer, ... )<br />
vecListe1.push_back( buffer );<br />
}</p>
<p>Das gleiche mit Liste 2</p>
<p>Vektoren ablaufen</p>
<p>std::vector&lt; std::string &gt;::const_iterator iter ( vecList1.begin() );<br />
std::vector&lt; std::string &gt;::const_iterator iterEnd ( vecList1.end() );</p>
<p>while( iter != iterEnd )<br />
{<br />
const std::string&amp; str = *iter;</p>
<p>// am besten in einer Funktion den zweiten Vektor ablaufen<br />
// Werte vergleichen<br />
++iter;<br />
}</p>
<p>Können die Werte mehrfach vorkommen, einen Zähler mitlaufen lassen,<br />
wenn nicht kann man abbrechen, wenn ein Wert gefunden worden ist.</p>
<p>Je nachdem was man will, kann man in einem dritten Vektor die Werte<br />
mit denen man in Zukunft weiterarbeiten will.</p>
<p>Viel Spaß noch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232938</guid><dc:creator><![CDATA[schokomann]]></dc:creator><pubDate>Thu, 22 Feb 2007 07:08:48 GMT</pubDate></item><item><title><![CDATA[Reply to Vergleich von zwei Textdateien&#x2F;Stücklisten on Thu, 22 Feb 2007 07:08:51 GMT]]></title><description><![CDATA[<p>Da du deine beiden Listen schon sortiert hast, könntest du per set_difference() die Differenz-Mengen bestimmen:</p>
<pre><code class="language-cpp">vector&lt;data&gt; menge1,menge2;//Ausgangsdaten
vector&lt;data&gt; neu,weg,gleich;

... // Ausgangsdaten einlesen und sortieren

set_difference(menge1.begin(),menge1.end(),menge2.begin(),menge2.end(),back_inserter(weg));//gelöschte Elemente
set_difference(menge2.begin(),menge2.end(),menge1.begin(),menge1,end(),back_inserter(neu));//dazugekommene Elemente
set_union(menge1.begin(),menge1.end(),menge2.begin(),menge2.end(),back_inserter(gleich));//übernommene Elemente
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1232939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232939</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 22 Feb 2007 07:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to Vergleich von zwei Textdateien&#x2F;Stücklisten on Thu, 22 Feb 2007 14:02:45 GMT]]></title><description><![CDATA[<p>Klasse!</p>
<p>Vielen Dank für eure Hilfe, werd ich gleich mal so probieren! Dachte nicht das dass so leicht geht... Da muss wohl ein STL Buch her wenn das immer so prima klappt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233323</guid><dc:creator><![CDATA[AccesDenied]]></dc:creator><pubDate>Thu, 22 Feb 2007 14:02:45 GMT</pubDate></item><item><title><![CDATA[Reply to Vergleich von zwei Textdateien&#x2F;Stücklisten on Thu, 22 Feb 2007 14:59:42 GMT]]></title><description><![CDATA[<p>Nix zu danken,</p>
<p>wenn man sich mit der STL auskennt, dann sind solche Lösungen wie<br />
Sie CStoll vorgeschlagen hat eleganter. Aber ich habe mir schon<br />
gedacht, dass du dich noch nicht so gut mit der STL auskennst.</p>
<p>Wenn Du die Möglichkeiten der STL auschöpfen willst, dann buch mal<br />
einen Kurs bei Frau Langer.<br />
<a href="http://www.angelikalanger.com" rel="nofollow">http://www.angelikalanger.com</a><br />
Da habe ich (von der Firma bezahlt) vor Jahren einen C++ STL Kurs<br />
für Fortgeschrittene besucht.<br />
Auch ich habe damals erkennen müssen, wie viel Arbeit man sich mit<br />
der STL ersparen kann.</p>
<p>Schade, dass bei vielen Firmen solches Wissen sich nicht durchsetzt.</p>
<p>Viel Spaß noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233375</guid><dc:creator><![CDATA[schokomann]]></dc:creator><pubDate>Thu, 22 Feb 2007 14:59:42 GMT</pubDate></item></channel></rss>