<?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[Codelänge?]]></title><description><![CDATA[<p>Hallo - wollte mal fragen, ob ich was falsch mache, oder ob es Normal ist, dass ein WinApi Code eines einfachen Programmes ( paar buttons , editboxes ) 250 Zeilen lang ist??</p>
<p>Weil ich verlier da immer bissle den Überblick... also muss ich da was ändern , oder mich an den langen Code gewöhnen??</p>
<p>MfG Lorun</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140714/codelänge</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 07:27:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140714.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Mar 2006 18:53:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 18:53:27 GMT]]></title><description><![CDATA[<p>Hallo - wollte mal fragen, ob ich was falsch mache, oder ob es Normal ist, dass ein WinApi Code eines einfachen Programmes ( paar buttons , editboxes ) 250 Zeilen lang ist??</p>
<p>Weil ich verlier da immer bissle den Überblick... also muss ich da was ändern , oder mich an den langen Code gewöhnen??</p>
<p>MfG Lorun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017804</guid><dc:creator><![CDATA[Lorun]]></dc:creator><pubDate>Thu, 16 Mar 2006 18:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:09:45 GMT]]></title><description><![CDATA[<p>Es kommt drauf an was du genau machst. Wenn du aber nur fragst wie jemand heißt und dann seinen Namen ausgibst, ist das ziemlich viel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017807</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:02:00 GMT]]></title><description><![CDATA[<p>Hmm nunja^^ Ich habe ein &quot;Mathe Programm&quot;.</p>
<p>Oben 5 Buttons : &quot;Restart&quot; &quot;Beenden&quot; &quot;Quadratische Gleichungen&quot; &quot;Taschenrechner&quot; &quot;Parabeln&quot; die zu &quot;Unterprogrammen&quot; führen ( sprich was anderes &quot;malen&quot; ) in den &quot;unterprogrammen&quot; nochmal jeweils 2-3 buttons / editboxes.</p>
<p>Und eben für jedes &quot;Unterprogramm&quot; den Code, der beschreibt, was es tun soll.</p>
<p>Also denk ich mal , das dass normal ist^^ <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>Und kannst du mir sagen, wie ich so ne art &quot;Checkbox&quot; machen kann?</p>
<p>MfG Lorun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017813</guid><dc:creator><![CDATA[Lorun]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:02:00 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:08:23 GMT]]></title><description><![CDATA[<p>Mach einen Button und setz anstatt der Eigenschaft BS_PUSHBUTTON, die Eigenschaft BS_AUTOCHECKBOX oder BS_CHECKBOX.</p>
<p>Also für das alles ist die Sourcelänge normal, ja.</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017819</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:08:23 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:10:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">hButtonSend = CreateWindow(
		&quot;button&quot;,
		&quot;Ausrechnen&quot;,
		WS_CHILD,
		rect.left + 400,
		rect.top + 85,
		iWidth + 20,
		iHeight,
       	hWnd,
        NULL,
        ((LPCREATESTRUCT) lParam) -&gt; hInstance,
        NULL
);

else if ( lParam == (LPARAM)hButtonSend &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iLength = GetWindowTextLength(hEditA);
				GetWindowText(hEditA, cValue_1, iLength+1);
				iLength = GetWindowTextLength(hEditB);
				GetWindowText(hEditB, cValue_2, iLength+1);
				iLength = GetWindowTextLength(hEditC);
				GetWindowText(hEditC, cValue_3, iLength+1);
				fDiskriminante =  ( atof(cValue_2)*atof(cValue_2) ) - 4 * atof(cValue_1) * atof(cValue_3);
				InvalidateRect(hWnd, NULL, TRUE);	
			}
</code></pre>
<p>^^ so sehen meine DEfinitionen und meine Abfrage aus... geht dass so oder muss ich da was komplett anders machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017823</guid><dc:creator><![CDATA[Lorun]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:10:06 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:12:30 GMT]]></title><description><![CDATA[<p>Wenn ich das richtig sehe hast du nur einen else if-Zweig aber keinen if-Zweig, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017824</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:13:59 GMT]]></title><description><![CDATA[<p>Das ist nur ein ausschnitt^^</p>
<p>Das ist der Komplette Code :</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;cstdio&gt;
#include &lt;cmath&gt;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

const 	int 	width 		= 700, height = 500;
const 	char 	szAppName[] = &quot;MatheProgramm&quot;;

static 	HWND			hButtonClose, hButtonQuadGlei, hButtonRestart, hButtonSend, hButtonCalc, hButtonPlus; // Buttons
static 	HWND			hButtonMinus, hButtonMulti, hButtonDevide, hButtonParabels;
static 	HWND			hEditA, hEditB, hEditC, hEditCalc; // Editboxes
static 	HWND			hComboParabels_1; // Comboboxes
static	HWND			hWnd; // Mainwindow
		MSG				msg;
		WNDCLASS		wc;
		int 			ixKoordButton 	= 10;
		int				iyKoordButton 	= 10;
		int				iHeight 		= 25;
		int				iWidth 			= 80;
		int				iLength = 0;
		int 			iProgramm = 0;
		char			cValue_1[20], cValue_2[20], cValue_3[20], cResult_1[50], cResult_2[50];
		float			fDiskriminante = 0.0, fValue_1 = 0.0, fValue_2= 0.0, fValue_3= 0.0, fResult_1= 0.0, fResult_2= 0.0;

void restart(bool);
void restart(bool a) {
	if ( a == TRUE ) {
		InvalidateRect(hWnd, NULL, TRUE);
	}
	ShowWindow(hEditA, SW_HIDE);
	ShowWindow(hEditB, SW_HIDE);
	ShowWindow(hEditC, SW_HIDE);
	ShowWindow(hButtonSend, SW_HIDE);
	ShowWindow(hEditCalc, SW_HIDE);
	ShowWindow(hButtonPlus, SW_HIDE);
	ShowWindow(hButtonMinus, SW_HIDE);
	ShowWindow(hButtonMulti, SW_HIDE);
	ShowWindow(hButtonDevide, SW_HIDE);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {

	wc.style          		= 	CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc    		= 	WndProc;
   	wc.cbClsExtra     		= 	0;
   	wc.cbWndExtra     		= 	0;
   	wc.hInstance      		= 	hInstance;
   	wc.hIcon          		= 	LoadIcon(NULL, IDI_APPLICATION);
   	wc.hCursor        		= 	LoadCursor(NULL, IDC_ARROW);
   	wc.hbrBackground  		= 	(HBRUSH)GetStockObject(LTGRAY_BRUSH);
   	wc.lpszMenuName   		= 	0;
   	wc.lpszClassName 		= 	szAppName;

   	RegisterClass(&amp;wc);

	hWnd = CreateWindow(
		szAppName,
		szAppName,
		WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		width,
		height,
		NULL,
		NULL,
		hInstance,
		NULL
	);

	ShowWindow(hWnd, iCmdShow);
	UpdateWindow(hWnd);

	while(GetMessage(&amp;msg, NULL, 0, 0)) {
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}

	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {

	static 	RECT			rect;

	switch(message) {
		case WM_CREATE: {
			rect.left 		= 110;
			rect.top 		= 60;
			rect.right		= 670;
			rect.bottom		= 450;
			#include &quot;mainbuttons.h&quot;
			#include &quot;quadglei.h&quot;
			#include &quot;calc.h&quot;
			#include &quot;parabels.h&quot;
         	break;
		}
		case WM_COMMAND: {
			if ( lParam == (LPARAM)hButtonClose &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				const char cClose[] = &quot;Wollen Sie das Programm wirklich beenden?&quot;;
				int iClose = MessageBox(hWnd, cClose, &quot;Sicher?&quot;, MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON1);
				if ( iClose == IDYES ) {
					PostQuitMessage(0);
				}
			}
			else if ( lParam == (LPARAM)hButtonRestart &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iProgramm = 0;
				restart(TRUE);
			}
			else if ( lParam == (LPARAM)hButtonQuadGlei &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iProgramm = 1;
				restart(TRUE);
				ShowWindow(hEditA, SW_SHOW);
				ShowWindow(hEditB, SW_SHOW);
				ShowWindow(hEditC, SW_SHOW);
				ShowWindow(hButtonSend, SW_SHOW);		
			}
			else if ( lParam == (LPARAM)hButtonCalc &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iProgramm = 2;
				restart(TRUE);
				ShowWindow(hEditCalc, SW_SHOW);
				ShowWindow(hButtonPlus, SW_SHOW);
				ShowWindow(hButtonMinus, SW_SHOW);
				ShowWindow(hButtonMulti, SW_SHOW);
				ShowWindow(hButtonDevide, SW_SHOW);
			}
			else if ( lParam == (LPARAM)hButtonPlus &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iLength = GetWindowTextLength(hEditCalc);
				GetWindowText(hEditCalc, cValue_1, iLength+1);
				SetWindowText(hEditCalc, NULL);
				fResult_1 += atof(cValue_1);
				InvalidateRect(hWnd, NULL, TRUE);
			}
			else if ( lParam == (LPARAM)hButtonMinus &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iLength = GetWindowTextLength(hEditCalc);
				GetWindowText(hEditCalc, cValue_1, iLength+1);
				SetWindowText(hEditCalc, NULL);
				fResult_1 -= atof(cValue_1);
				InvalidateRect(hWnd, NULL, TRUE);
			}
			else if ( lParam == (LPARAM)hButtonMulti &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				fResult_1 = (fResult_1 == 0) ? 1 : fResult_1;
				iLength = GetWindowTextLength(hEditCalc);
				GetWindowText(hEditCalc, cValue_1, iLength+1);
				SetWindowText(hEditCalc, NULL);
				fResult_1 *= atof(cValue_1);
				InvalidateRect(hWnd, NULL, TRUE);
			}
			else if ( lParam == (LPARAM)hButtonDevide &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iLength = GetWindowTextLength(hEditCalc);
				GetWindowText(hEditCalc, cValue_1, iLength+1);
				SetWindowText(hEditCalc, NULL);
				if ( atof(cValue_1) == 0 || !cValue_1 ) {
					break;
				}
				fResult_1 /= atof(cValue_1);
				InvalidateRect(hWnd, NULL, TRUE);
			}
			else if ( lParam == (LPARAM)hButtonSend &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iLength = GetWindowTextLength(hEditA);
				GetWindowText(hEditA, cValue_1, iLength+1);
				iLength = GetWindowTextLength(hEditB);
				GetWindowText(hEditB, cValue_2, iLength+1);
				iLength = GetWindowTextLength(hEditC);
				GetWindowText(hEditC, cValue_3, iLength+1);
				fDiskriminante =  ( atof(cValue_2)*atof(cValue_2) ) - 4 * atof(cValue_1) * atof(cValue_3);
				InvalidateRect(hWnd, NULL, TRUE);	
			}
			else if ( lParam == (LPARAM)hButtonParabels &amp;&amp; HIWORD(wParam) == BN_CLICKED ) {
				iProgramm = 3;
				restart(TRUE);
				ShowWindow(hComboParabels_1, SW_SHOW);
			}
		}
		case WM_PAINT: {
			PAINTSTRUCT		ps;
			HDC				hDC;
			hDC = BeginPaint(hWnd, &amp;ps);

			RoundRect(hDC, 100, 50, 680, 460, 40, 40);

				switch(iProgramm) {
					case 0: {
						const char cWelcome[] = &quot;Herzlich Willkommen. \n\n&quot;
											&quot;Mit diesem Programm können Sie Mathematische Probleme lösen.\n&quot;
											&quot;Unteranderem stehen Funktionen für :\n\n&quot;
											&quot;- Quadratische Gleichungen\n&quot;
											&quot;- einen einfachen Taschenrechner\n&quot;
											&quot;- Parabeln\n&quot;
											&quot;- zzz\n\n&quot;
											&quot;zur Verfügung.&quot;;
						DrawText(hDC, cWelcome, strlen(cWelcome), &amp;rect, DT_WORDBREAK | DT_LEFT);
						HBRUSH hWelcomeBrush = (HBRUSH)SelectObject(hDC,CreateSolidBrush(RGB(255,0,0)));
							Ellipse(hDC, 300, 200, 500, 400);
						DeleteObject(hWelcomeBrush);
						HBRUSH hWelcomeBrush_2 = (HBRUSH)SelectObject(hDC,CreateSolidBrush(RGB(0,255,0)));
							Ellipse(hDC, 380, 150, 580, 300);
						DeleteObject(hWelcomeBrush_2);
						HBRUSH hWelcomeBrush_3 = (HBRUSH)SelectObject(hDC,CreateSolidBrush(RGB(0,0,255)));
							Ellipse(hDC, 400, 250, 600, 430);
						DeleteObject(hWelcomeBrush_3);
						break;
					}
					case 1: {
						const char cTopic[] 	= 	&quot;Quadratische Gleichung&quot;;
						DrawText(hDC, cTopic, strlen(cTopic), &amp;rect, DT_CENTER);

						const char cQuadDesc_1[] 	= 	&quot;Form der Gleichung :     ax² + bx + c&quot;;	
						TextOut(hDC, rect.left, rect.top + 40, cQuadDesc_1, strlen(cQuadDesc_1));

						MoveToEx(hDC, rect.left + 30, rect.top + 70, NULL); LineTo(hDC, rect.right - 30, rect.top + 70);

						RoundRect(hDC, rect.left + 135, rect.top + 145, rect.left + 450, rect.top + 170, 10, 10); 
						RoundRect(hDC, rect.left + 135, rect.top + 185, rect.left + 450, rect.top + 210, 10, 10); 
						if ( fDiskriminante == 0 ) {
							fResult_1 = ( - atof(cValue_2) ) / 2 * atof(cValue_1);
							sprintf(cResult_1, &quot;Die Nullstelle ist : %f&quot;, fResult_1);
							TextOut(hDC, rect.left + 150, rect.top + 150, cResult_1, strlen(cResult_1));
						}
						else if ( fDiskriminante &lt; 0 ) {
							sprintf(cResult_1, &quot;Es gibt keine reele Nullstelle&quot;);
							TextOut(hDC, rect.left + 150, rect.top + 150, cResult_1, strlen(cResult_1));
						}
						else if ( fDiskriminante &gt; 0 ) {
							fResult_1 = ( - atof(cValue_2) + sqrt(fDiskriminante) ) / 2 * atof(cValue_1);
							fResult_2 = ( - atof(cValue_2) - sqrt(fDiskriminante) ) / 2 * atof(cValue_1);
							sprintf(cResult_1, &quot;Die erste Nullstelle ist : %f&quot;, fResult_1);
							sprintf(cResult_2, &quot;Die zweite Nullstelle ist : %f&quot;, fResult_2);
							TextOut(hDC, rect.left + 150, rect.top + 150, cResult_1, strlen(cResult_1)); 
							TextOut(hDC, rect.left + 150, rect.top + 190, cResult_2, strlen(cResult_2));
						}
						break;
					}
					case 2: {
						const char cTopic[] 	= 	&quot;Taschenrechner&quot;;
						DrawText(hDC, cTopic, strlen(cTopic), &amp;rect, DT_CENTER);
						RoundRect(hDC, rect.left + 135, rect.top + 345, rect.left + 450, rect.top + 370, 10, 10);
						sprintf(cResult_1, &quot;Die Ergebnis ist : %f&quot;, fResult_1);
						TextOut(hDC, rect.left + 150, rect.top + 350, cResult_1, strlen(cResult_1)); 
						break;
					}
					case 3: {
						const char cTopic[] 	= 	&quot;Parabeln&quot;;
						DrawText(hDC, cTopic, strlen(cTopic), &amp;rect, DT_CENTER);

						break;
					}
				}			
			EndPaint(hWnd, &amp;ps);	
			break;
		}
		case WM_DESTROY: {
			PostQuitMessage(0);
			break;
		}

	}
	return DefWindowProc(hWnd, message, wParam, lParam);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1017825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017825</guid><dc:creator><![CDATA[Lorun]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:20:26 GMT]]></title><description><![CDATA[<p>Ich finde nichts, was man nicht so machen kann. Ich persönlich würde statt DrawText zwar TextOut benutzen, aber das liegt im eigenem Ermessen.</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017830</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:21:38 GMT]]></title><description><![CDATA[<p>ok danke <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="🙂"
    /> dann bin ich beruhig <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>MfG Lorun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017831</guid><dc:creator><![CDATA[Lorun]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:21:38 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 19:27:23 GMT]]></title><description><![CDATA[<p>Mir ist doch was aufgefallen: du benutzt die Funktion sprintf? Dann musst du noch den Header stdio.h einbinden!</p>
<p>Mfg Ominion</p>
<p>[EDIT]Mein Fehler, tschuldigung[/EDIT]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017833</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Thu, 16 Mar 2006 19:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Thu, 16 Mar 2006 22:20:06 GMT]]></title><description><![CDATA[<p>Verwendet statt sprintf wsprintf! Damit gehst Du auch gleich noch sicher, das Dein Code Unicode sicher ist. Nur mal so am Rande bemerkt und noch was:</p>
<p>Statt char - TCHAR und wenn Du Texte schreibst, setze das TEXT-Makro davor, also: TCHAR szTest[] = TEXT ( &quot;Mein Test fuer heute&quot; );</p>
<p>Damit gehst Du ganz sicher, das Dein Quellcode Unicodevorbereitet ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017955</guid><dc:creator><![CDATA[SiMMeOne]]></dc:creator><pubDate>Thu, 16 Mar 2006 22:20:06 GMT</pubDate></item><item><title><![CDATA[Reply to Codelänge? on Fri, 17 Mar 2006 22:35:27 GMT]]></title><description><![CDATA[<p>Man sollte eher &quot;_stprintf&quot; verwenden, wenn man schon auf TCHAR hinweist!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1018740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018740</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 17 Mar 2006 22:35:27 GMT</pubDate></item></channel></rss>