<?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[grosse Datenmengen - wie in der App halten?]]></title><description><![CDATA[<p>Moinsn,</p>
<p>wie würdet ihr grössere Datenmengen in einer App im Speicher halten?<br />
Daten pro Eintrag: long, long, int, CString, CString</p>
<p>Momentan habe ich dafür ein struct, das in einen std::vector kommt. Die Anzahl der Einträge kann - und wird hin und wieder auch - grösser 200.000 sein.<br />
Angezeigt weden die Daten( müssen nicht alle sein! ) in einem virtuellen CListCtrl. Bis hierher funktioniert alles bestens.<br />
Aber wenn die Daten dann mal sortiert werden müssen bricht die blanke Panik aus. Bei ca 102.000 Einträgen dauert das sortieren schon mal mehr als 70 Minuten <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>
<p>habe testweise mal die Daten( hier CString ) in einen eigenen std::vector&lt;CString&gt; gewuchtet, den dann mit seiner eigenen sort sortiert. Bis hierher ohne spürbare Zeitverluste. Dann müssen die Daten aber wieder 'zusammengeführt' werden, sprich in aktueller Reihenfolge zurück in vector. Das bedeutet Kaffeepause. Aber nicht nur trinken, sonder auch noch Zeit Kaffee anzubauen und zu ernten <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>
<p>Also: Gibt es eine performantere Lösung? Antwort: Ja. Frage: welche?</p>
<p>Ne Loide, mir fällt nix mehr ein. Was ich brauche, ist eine <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
<p>Ich bin schon gross, ich bewältige auch viele Antworten <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>thx &amp; grüssle <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/topic/200146/grosse-datenmengen-wie-in-der-app-halten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 09:15:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200146.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Dec 2007 10:53:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 11:16:22 GMT]]></title><description><![CDATA[<p>Moinsn,</p>
<p>wie würdet ihr grössere Datenmengen in einer App im Speicher halten?<br />
Daten pro Eintrag: long, long, int, CString, CString</p>
<p>Momentan habe ich dafür ein struct, das in einen std::vector kommt. Die Anzahl der Einträge kann - und wird hin und wieder auch - grösser 200.000 sein.<br />
Angezeigt weden die Daten( müssen nicht alle sein! ) in einem virtuellen CListCtrl. Bis hierher funktioniert alles bestens.<br />
Aber wenn die Daten dann mal sortiert werden müssen bricht die blanke Panik aus. Bei ca 102.000 Einträgen dauert das sortieren schon mal mehr als 70 Minuten <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>
<p>habe testweise mal die Daten( hier CString ) in einen eigenen std::vector&lt;CString&gt; gewuchtet, den dann mit seiner eigenen sort sortiert. Bis hierher ohne spürbare Zeitverluste. Dann müssen die Daten aber wieder 'zusammengeführt' werden, sprich in aktueller Reihenfolge zurück in vector. Das bedeutet Kaffeepause. Aber nicht nur trinken, sonder auch noch Zeit Kaffee anzubauen und zu ernten <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>
<p>Also: Gibt es eine performantere Lösung? Antwort: Ja. Frage: welche?</p>
<p>Ne Loide, mir fällt nix mehr ein. Was ich brauche, ist eine <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
<p>Ich bin schon gross, ich bewältige auch viele Antworten <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>thx &amp; grüssle <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/1418645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418645</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Tue, 11 Dec 2007 11:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 10:58:26 GMT]]></title><description><![CDATA[<p>Das zeitaufwendigste am Sortieren dürfte wohl das ständige Umkopieren der Daten sein (speziell der CString's), eventuell könntest du das eliminieren, indem du zwei Container verwendest - in einem vector&lt;data&gt; liegen die Einträge ungeordnet, in einem vector&lt;int&gt; stehen Indizes auf den ersten vector&lt;&gt; (passend sortiert). Oder du packst die Daten gleich in eine (multi)set&lt;&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418649</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 11 Dec 2007 10:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 14:01:00 GMT]]></title><description><![CDATA[<p>Wie sortierst Du denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418757</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 11 Dec 2007 14:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 14:56:31 GMT]]></title><description><![CDATA[<p>Offensichtlich nicht schnell genug <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Hole eben den entsprechenden Eintrag( ListCtrl hat 3 Spalten ) aus dem struct und vergleiche. Den Algo hab ich von hier: <a href="http://www.codeguru.com/cpp/controls/listview/sorting/article.php/c975/" rel="nofollow">http://www.codeguru.com/cpp/controls/listview/sorting/article.php/c975/</a> angepasst an meine vector/struct Bedürfnisse. Was ausserdem noch ewig dauert ist eben das Problem, die ganze struct mitzuziehen, also bei PosWechsel im vector.</p>
<p>Oder gibt es eine direkte Sort Möglichkeit im Virtual CListCtrl? Da hier aber immer nur die 'sichtbaren' Einträge in der Liste stehen ???</p>
<p>grüssle <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>
<p>Edit: Schei** Komma am Linkende <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418789</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Tue, 11 Dec 2007 14:56:31 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 15:10:47 GMT]]></title><description><![CDATA[<p>1. Warum verwendest Du kein virtuelles ClistCtrl und hältst die Daten selber vor.<br />
2. Wenn das CListCtrl die Daten sortieren soll, ist jedesmal eine Nachricht fällig um zwei Items zu vergleichen, das ist natürlich extrem. Fang den Sortierbefehl ab (den Column-Klick) sortiere Deine interne Liste neu und wenn Du eine virtuelles List Ctrl verwendest war es das schon...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418826</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 11 Dec 2007 15:10:47 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 15:41:07 GMT]]></title><description><![CDATA[<p>aber isch abe doch ein virtuelles CListCtrl, Signore <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>nö, die doppelte datenhaltung muss sein, weil ich, wie weiter oben geschrieben, evtl. nur einen Teil der Daten im listCtrl anzeigen muss. Die Daten können dann geändert werden( Edits unter ListCtrl, die im listCtrl ausgewählten Texte werden in den Edits angezeigt ) und die geschriebene Datei mit Änderungen soll vom Aufbau aussehen wie die Originaldatei. Bsp. Datei kann XML sein, angezeigt werden aber nur die Texte.</p>
<p>Schief geht beim sortieren der hier:</p>
<pre><code class="language-cpp">void CFileReaderView::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	DWORD dwStart = GetTickCount();
	DWORD dwEnde;
	DWORD dwDauer;

	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

	if (pNMListView-&gt;iSubItem == m_SortInfo.nColumnNo)
		m_SortInfo.nAscendingSortOrder = !m_SortInfo.nAscendingSortOrder;
	else
		m_SortInfo.nAscendingSortOrder = TRUE;

	m_SortInfo.nColumnNo = pNMListView-&gt;iSubItem;
	m_SortInfo.pListControl = &amp;m_listCtrl;

	m_listCtrl.SortItems( SortList,(DWORD)&amp;m_SortInfo );  // hier steigt er aus ...

	dwEnde = GetTickCount();
	dwDauer = dwEnde - dwStart;
	*pResult = 0;
}
</code></pre>
<p>... und dann kommt das:</p>
<pre><code class="language-cpp">_AFXCMN_INLINE BOOL CListCtrl::SortItems(PFNLVCOMPARE pfnCompare, DWORD dwData)
	{ ASSERT(::IsWindow(m_hWnd)); ASSERT((GetStyle() &amp; LVS_OWNERDATA)==0); return (BOOL) ::SendMessage(m_hWnd, LVM_SORTITEMS, dwData, (LPARAM)pfnCompare); }
</code></pre>
<p>Mit einer normalen CListCtrl hab ich dieses Problem nicht.</p>
<p>grüssle <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>
<p>Edit: Die Datenhaltung hat nix mit dem ListCtrl zu tun. Es würde also reichen, das ListCtrl zu sortieren. Der Rest ist dann eine Kleinigkeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418842</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Tue, 11 Dec 2007 15:41:07 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 15:47:15 GMT]]></title><description><![CDATA[<p>SortItems wird von einem virtuellen CListCtrl nicht unterstützt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418858</guid><dc:creator><![CDATA[sri]]></dc:creator><pubDate>Tue, 11 Dec 2007 15:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Tue, 11 Dec 2007 18:26:41 GMT]]></title><description><![CDATA[<p>Wenn es eine virtuelle Liste ist, dan kannst Du doch Deinen Container einfach sortieren und ein Invalidate machen. That's all.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418943</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 11 Dec 2007 18:26:41 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 07:04:43 GMT]]></title><description><![CDATA[<p>sri schrieb:</p>
<blockquote>
<p>SortItems wird von einem virtuellen CListCtrl nicht unterstützt.</p>
</blockquote>
<p>soweit bin ich mittlerweile auch. Ist zwar schnell, aber nicht grade üppig mit Funktionen ausgestattet <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="😞"
    /></p>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>Wenn es eine virtuelle Liste ist, dan kannst Du doch Deinen Container einfach sortieren und ein Invalidate machen. That's all.</p>
</blockquote>
<p>Und genau hier liegt mein Problem: Den Contaimer sortieren. Dauert eben ziemlich lange, durch den vector zu gehen, one by one, den benötigten Wert aus der jeweiligen struct zu holen, zu vergleichen, die struct neu im vector zu positionieren, ...<br />
Deswegen auch die Frage nach einer performanteren Datenhaltung. Mal sehen, ob sich beim sortieren zeitmässig noch was rausholen lässt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>jedenfalls erstmal ein :xmas1: Danke an alle</p>
<p>grüssle <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/1419135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419135</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 12 Dec 2007 07:04:43 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 07:11:47 GMT]]></title><description><![CDATA[<p>Hast du ein Kriterium, nach dem du sortieren willst, oder mehrere, zwischen denen du (auf Knopfdruck) wechseln kannst? Im ersten Fall könntest du ein set&lt;&gt; verwenden (hält die Elemente permanent sortiert), im letzten Fall eine list&lt;&gt; (deren eingebaute sort()-Methode kommt ohne Kopieren aus).</p>
<p>Btw, und im Zweifelsfall sind die Sortier-Algorithmen der STL (std::sort(), std::stable_sort() etc) häufig noch schneller als eine handgeschriebene Variante.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419138</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 07:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 07:15:45 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/635">@smitty</a>: Wie sortierst Du denn bitte? BubbleSort. Direktes Einfügen?<br />
Zeigt mal bitte Code.</p>
<p>Warum verwendest Du nicht vector::sort?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419142</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 12 Dec 2007 07:15:45 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 07:29:49 GMT]]></title><description><![CDATA[<p>Moin ihr Frühaufsteher <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Ja ne, is klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>:</p>
<p>Sortieren nach: 3 Spalten, 1 x long, 2 x CString, auf / absteigend, je nach vorheriger Sortierung.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/35992">@Martin</a>:</p>
<p>Das Problem ist wie schon gesagt das mitziehen der structs im vectot.<br />
std::sort( bzw. vector::sort ) hatte ich schon.</p>
<blockquote>
<p>habe testweise mal die Daten( hier CString ) in einen eigenen std::vector&lt;CString&gt; gewuchtet, den dann mit seiner eigenen sort sortiert. Bis hierher ohne spürbare Zeitverluste. Dann müssen die Daten aber wieder 'zusammengeführt' werden, sprich in aktueller Reihenfolge zurück in vector. Das bedeutet Kaffeepause. Aber nicht nur trinken, sonder auch noch Zeit Kaffee anzubauen und zu ernten <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>
</blockquote>
<p>ausserdem habe ich keine Lösung bei std::sort für die Behandlung von Umlauten gefunden. Schnell ist der schon.</p>
<p>Code Marsch!</p>
<pre><code class="language-cpp">int iChk1, iChk2;

	int wg = lstVect.size();

	std::vector&lt;LCSTRUCT&gt;::iterator tmxIter;
	std::vector&lt;LCSTRUCT&gt;::iterator tmpIter;

	for( tmxIter = lstVect.begin(); tmxIter != lstVect.end(); tmxIter++ )
	{
		lstStruct = *tmxIter;
		tmpIter = tmxIter;
		tmpIter++;
		if( col == 0 )
		{
			iChk1 = lstStruct.vNmbr;
			if( tmpIter != lstVect.end() )
			{
				srtStruct = *tmpIter;
				iChk2 = srtStruct.vNmbr;
			}
			else
				continue;
			if( up )
			{
				while( iChk1 &gt; iChk2 )
				{
					if( tmpIter != lstVect.end() )
						std::iter_swap( tmpIter, tmxIter );

					tmpIter++;
					if( tmpIter != lstVect.end() )
					{
						srtStruct = *tmpIter;
						iChk2 = srtStruct.vNmbr;
					}
					else
						break;
				}
			}
			else
			{
				while( iChk1 &lt; iChk2 )
				{
					if( tmpIter != lstVect.end() )
						std::iter_swap( tmxIter, tmpIter );

					tmpIter++;
					if( tmpIter != lstVect.end() )
					{
						srtStruct = *tmpIter;
						iChk2 = srtStruct.vNmbr;
					}
					else
						break;
				}
			}

		}
	}
</code></pre>
<p>Das ist Spalte 1( Zahl ). Nur mal zu Bsp.</p>
<p>grüssle <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/1419151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419151</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 12 Dec 2007 07:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 07:43:35 GMT]]></title><description><![CDATA[<p>Smitty schrieb:</p>
<blockquote>
<p>Das Problem ist wie schon gesagt das mitziehen der structs im vectot.<br />
std::sort( bzw. vector::sort ) hatte ich schon.</p>
</blockquote>
<p>Ich wußte gar nicht, daß vector&lt;&gt; eine sort-Methode mitliefert <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>
<blockquote>
<p>ausserdem habe ich keine Lösung bei std::sort für die Behandlung von Umlauten gefunden. Schnell ist der schon.</p>
</blockquote>
<p>Du mußt dir für jede deiner Sortierfolgen eine eine eigene Vergleichsfunktion schreiben, die auf die jeweiligen Eigenheiten eingeht - der normale String-Vergleich arbeitet mit den ASCII-Werten, dadurch landen Umlaute üblicherweise am Ende der Liste.</p>
<p>(wenn du die Umlaute im Alphabet einschieben willst, mußt du eine eigene Vergleichsfunktion schreiben - oder ein deutsches Locale zum Vergleichen verwenden)</p>
<p>PS: Wo hast du denn diesen Sortieralgorithmus her?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419155</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 07:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 08:03:48 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Smitty schrieb:</p>
<blockquote>
<p>Das Problem ist wie schon gesagt das mitziehen der structs im vectot.<br />
std::sort( bzw. vector::sort ) hatte ich schon.</p>
</blockquote>
<p>Ich wußte gar nicht, daß vector&lt;&gt; eine sort-Methode mitliefert <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>
</blockquote>
<p>Der vector::sort ist nicht von mir. Guckst du weiter oben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> ( war wohl std::sort gemeint <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>CStoll schrieb:</p>
<blockquote>
<p>Du mußt dir für jede deiner Sortierfolgen eine eine eigene Vergleichsfunktion schreiben, die auf die jeweiligen Eigenheiten eingeht - der normale String-Vergleich arbeitet mit den ASCII-Werten, dadurch landen Umlaute üblicherweise am Ende der Liste.</p>
<p>(wenn du die Umlaute im Alphabet einschieben willst, mußt du eine eigene Vergleichsfunktion schreiben - oder ein deutsches Locale zum Vergleichen verwenden)</p>
</blockquote>
<p>Auch klar. habe ich auch gemacht. Funzt auch. Nur nicht mit dem:</p>
<pre><code class="language-cpp">std::sort( hVect.begin(), hVect.end(), std::greater&lt;CString&gt;() );
</code></pre>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Wo hast du denn diesen Sortieralgorithmus her?</p>
</blockquote>
<p>Sag ich nicht :p<br />
Ne, hab ich mir mal quick&amp;dirty so zusammengekloppt. Tut seinen Dienst, ist aber wohl nicht der weisheit letzter Schluss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>grüssle <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/1419161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419161</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 12 Dec 2007 08:03:48 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 08:28:45 GMT]]></title><description><![CDATA[<p>mach doch ne eigene sortier funktion:</p>
<pre><code class="language-cpp">// struktur definieren und vector fuellen, das hast du ja schon
struct DATA
{
    CString strA;
    CString strB;
    int i = 0;
};

vector&lt;DATA&gt; bla;
/* - fill - */

// merkt sich wie rum du sortieren moechtest
bool bDirectionA = false;

// sortiere nach strA
bool SortByA(const DATA &amp;l, const DATA &amp;r)
{
    if(bDirectionA) return l.strA &lt; r.strA;
    else return l.strA &gt; r.strA;
}

// richtung umkehrem und sortieren
bDirectionA = (bDirectionA) ? false : true;
std::sort(bla.begin(), bla.end(), SortByA);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1419174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419174</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 12 Dec 2007 08:28:45 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 08:34:04 GMT]]></title><description><![CDATA[<p>Smitty schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Du mußt dir für jede deiner Sortierfolgen eine eine eigene Vergleichsfunktion schreiben, die auf die jeweiligen Eigenheiten eingeht - der normale String-Vergleich arbeitet mit den ASCII-Werten, dadurch landen Umlaute üblicherweise am Ende der Liste.</p>
<p>(wenn du die Umlaute im Alphabet einschieben willst, mußt du eine eigene Vergleichsfunktion schreiben - oder ein deutsches Locale zum Vergleichen verwenden)</p>
</blockquote>
<p>Auch klar. habe ich auch gemacht. Funzt auch. Nur nicht mit dem:</p>
<pre><code class="language-cpp">std::sort( hVect.begin(), hVect.end(), std::greater&lt;CString&gt;() );
</code></pre>
</blockquote>
<p>Ja, eine struct als CString zu vergleichen macht sich nicht so gut - da mußt du dir eine eigene Funktion schreiben, die das gewünschte Element herausnimmt und vergleicht:</p>
<pre><code class="language-cpp">bool compare_string1(const data&amp; l,const data&amp; r)
{
  return l.s1&lt;r.s1;
}
//analog compare_string2() und compare_int()

//Und als besonderes Schmankerl für die umgekehrte Sortierung:
struct inverse : public binary_function&lt;bool,data,data&gt;
{
  typedef bool (*comp_fn)(const data&amp;,const data&amp;);
  inverse(comp_fn func) : m_func(func) {}
  bool operator()(const data&amp; l,const data&amp; r)
  {
    return m_func(r,l);
  }
private:
  comp_fn m_func;
};

// Verwendung:
...
sort(hVect.begin(),hVect.end(),compare_string1);//aufsteigend nach erstem String
sort(hVect.begin(),hVect.end(),inverse(compare_int));//absteigend nach Zahl
</code></pre>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Wo hast du denn diesen Sortieralgorithmus her?</p>
</blockquote>
<p>Sag ich nicht :p<br />
Ne, hab ich mir mal quick&amp;dirty so zusammengekloppt. Tut seinen Dienst, ist aber wohl nicht der weisheit letzter Schluss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>bestimmt nicht - und statt etwas eigenes zu programmieren nach dem Motto &quot;tut seinen Dienst&quot;, solltest du lieber auf die Arbeit von Experten vertrauen - da gibt es genug Verfahren, die meilenweit besser sein dürften<sup>*</sup> (such mal nach &quot;QuickSort&quot;, &quot;MergeSort&quot; oder &quot;HeapSort&quot;).</p>
<p><sup>*</sup> nein, ich hab' dein Verfahren jetzt nicht im Detail analysiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419177</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 08:34:04 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 08:43:45 GMT]]></title><description><![CDATA[<p>Mach dir doch ne kleine Datenbank bevor du dir über den ganzen Kram den Kopf zerbrichst. Access über DAO, ist schnell implementiert und die haben den ganzen Sortier-Kram schon erforscht <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="🙂"
    /> An sonsten würde ich einen Algorithmus vorschlagen, der die Elemente schon beim Einfügen vorsortiert (Heap-Sort? )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419182</guid><dc:creator><![CDATA[Cpp_Junky]]></dc:creator><pubDate>Wed, 12 Dec 2007 08:43:45 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 09:35:28 GMT]]></title><description><![CDATA[<p>Cpp_Junky schrieb:</p>
<blockquote>
<p>An sonsten würde ich einen Algorithmus vorschlagen, der die Elemente schon beim Einfügen vorsortiert (Heap-Sort? )</p>
</blockquote>
<p>Ja, das hätte ich auch vorgeschlagen (allerdings eher mit einem vorsortierten Container - set&lt;&gt;). Das Problem dabei ist aber, daß der OP das Sortierkriterium zwischendurch ändern will - und eine nach Vornamen sortierte Liste bringt keine Vorteile, wenn du die Daten nach Alter auflisten willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419198</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 09:35:28 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 09:36:13 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ich wußte gar nicht, daß vector&lt;&gt; eine sort-Methode mitliefert <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>
</blockquote>
<p>Sorry. Meinte natürlich std::sort, habe es in der Eile mit list&lt;&gt;::sort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419200</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 12 Dec 2007 09:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 10:03:32 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote></blockquote>
<p>Ja, eine struct als CString zu vergleichen macht sich nicht so gut - da mußt du dir eine eigene Funktion schreiben, die das gewünschte Element herausnimmt und vergleicht:</p>
<pre><code class="language-cpp">bool compare_string1(const data&amp; l,const data&amp; r)
{
  return l.s1&lt;r.s1;
}
//analog compare_string2() und compare_int()

//Und als besonderes Schmankerl für die umgekehrte Sortierung:
struct inverse : public binary_function&lt;bool,data,data&gt;
{
  typedef bool (*comp_fn)(const data&amp;,const data&amp;);
  inverse(comp_fn func) : m_func(func) {}
  bool operator()(const data&amp; l,const data&amp; r)
  {
    return m_func(r,l);
  }
private:
  comp_fn m_func;
};

// Verwendung:
...
sort(hVect.begin(),hVect.end(),compare_string1);//aufsteigend nach erstem String
sort(hVect.begin(),hVect.end(),inverse(compare_int));//absteigend nach Zahl
</code></pre>
<p>[/quote]<br />
Sieht gut aus, nur gibt der mir eine Fehlermeldung beim kompilieren:</p>
<pre><code class="language-cpp">E:\MLS\FileReader\FileReader\FileReaderView.cpp(672) : error C2664: 'void __cdecl std::sort(struct CFileReaderView::LCSTRUCT *,struct CFileReaderView::LCSTRUCT *,bool (__thiscall *)(const struct CFileReaderView::LCSTRUCT &amp;,const struct CFileReaderVi
ew::LCSTRUCT &amp;))' : Konvertierung des Parameters 3 von 'bool (const struct CFileReaderView::LCSTRUCT &amp;,const struct CFileReaderView::LCSTRUCT &amp;)' in 'bool (__thiscall *)(const struct CFileReaderView::LCSTRUCT &amp;,const struct CFileReaderView::LCSTRUCT
 &amp;)' nicht moeglich
        Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein
</code></pre>
<p>Alles ausser 'Verwendung' ist doch in der .h, oder seh ich das falsch?</p>
<p>grüssle <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/1419224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419224</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 12 Dec 2007 10:03:32 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 10:26:46 GMT]]></title><description><![CDATA[<p>Vielleicht hätte ich doch erwähnen sollen, daß du diese Vergleichsfunktionen nicht als (normale) Methoden der View definieren solltest - sort() arbeitet mit binären Funktoren und Funktionszeigern, aber nicht mit Methodenzeigern zusammen.</p>
<p>(also entweder du nimmst eine globale Funktion oder eine statische Methode)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419233</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 10:26:46 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 11:02:08 GMT]]></title><description><![CDATA[<p>Dank, Dank und nochmals Dank, euch allen.</p>
<p>So 'einfach' kann es sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>grüssle <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/1419243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419243</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 12 Dec 2007 11:02:08 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 13:28:19 GMT]]></title><description><![CDATA[<p>So, kommt doch noch ne Frage. Und zwar hab ich das jetzt folgendermassen eingebaut:<br />
Im Header:</p>
<pre><code class="language-cpp">public:
	static bool compare_segNmbrAsc(const LCSTRUCT&amp; l,const LCSTRUCT&amp; r )
	{
		return l.vNmbr &lt; r.vNmbr;
	}
	static bool compare_segNmbrDesc(const LCSTRUCT&amp; l,const LCSTRUCT&amp; r )
	{
		return l.vNmbr &gt; r.vNmbr;
	}
...
</code></pre>
<p>und in der cpp</p>
<pre><code class="language-cpp">if ( pNMListView-&gt;iSubItem == 0 )
	{
		bDirection1 = (bDirection1) ? false : true;
		if( bDirection1 )
			std::sort( lstVect.begin(), lstVect.end(), compare_segNmbrAsc );
		else
			std::sort( lstVect.begin(), lstVect.end(), compare_segNmbrDesc );
	}
...
</code></pre>
<p>Ist sogar etwas schneller als meine Sortierung <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>Allerdings sortiert er nach ASCII, also erst Grossbuchstaben, dann die kleinen, dann Umlaute, ...<br />
Habe dann meine eigene Funktion gebastelt, die erst ein MakeLower() macht, und dann die Umlaute bereinigt. Für Deutsch. Es ist aber ein Tool für Übersetzungen. Und da ich keine Lust habe, eine Funktion für jede mögliche Sprache zu erstellen, wollte ich das ganze mit <strong>setlocale</strong> machen. Aber er macht nichts.<br />
Habe den Header eingebunden und vor den sort setlocale( LC_ALL, &quot;german&quot; ); gesetzt. Ohne Erfolg.<br />
Lt. MSDN sollte es funktionieren?! Tuts aber nicht.<br />
Ist hier noch etwas zu berücksichtigen? Google und die Forumssuche haben mich nicht wirklich weitergebracht.</p>
<p>Ok, von der Zeit her wäre meine eigene Lösung noch ok. 100.000 Einträge dauern ohne meine Funktion ca 30 Sek., mit ca 60 Sek.<br />
Aber warum jetzt nicht den ganzen Weg gehen? <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>
<p>grüssle <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/1419339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419339</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 12 Dec 2007 13:28:19 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 13:31:32 GMT]]></title><description><![CDATA[<p>wenn es ein tool ist fuer uebersetzungen (arbeite in der localisierung, uebersetzungen sind mein spezial gebiet)<br />
dann wuerde ich raten das tool direkt Unicode zu erstellen, dann ist das CString auch nicht unicode und vergleicht richtig.<br />
Dann hast du auch keine probleme beim anzeigen der aisatischen sprachen<br />
CHS, CHT, KOR, JPN, THA usw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419341</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 12 Dec 2007 13:31:32 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 13:46:15 GMT]]></title><description><![CDATA[<p>Ist UNICODE. Sortiert trotzdem 'falsch'.</p>
<p>Auch die Files, die bearbeitet werden sind UNICODE( entweder UTF8 oder UTF16 ). Soweit ist alles ok.</p>
<p>Auch das Anzeigen der Daten im ListCtrl ist kein Thema, Chinesisch, Koreanisch, Polnisch, ...<br />
Alles funktioniert.</p>
<p>Nur der std::sort ...</p>
<p>grüssle <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/1419356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419356</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 12 Dec 2007 13:46:15 GMT</pubDate></item><item><title><![CDATA[Reply to grosse Datenmengen - wie in der App halten? on Wed, 12 Dec 2007 13:57:54 GMT]]></title><description><![CDATA[<p>also ich sortiere meine ergebnisse {suche in der datenbank nach uebersetzungen} auch indem ich den strukturen vector das std::sort verpass, und habe ueberhaupt keine probleme dieser art</p>
<p>btw: CString::MakeUpper() sollte mit allen sprachen funktionieren denk ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419365</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 12 Dec 2007 13:57:54 GMT</pubDate></item></channel></rss>