<?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[Klasse string als Parameter in Funktion]]></title><description><![CDATA[<p>Servus,<br />
ich probiere ein string als Parameter zu übergeben. Nur weiß ich nicht, wie ich auf den Inhalt zugreifen soll. Es ist ja nicht aufgebaut wie ein String, aber wie eine Klasse. Ich habe schon was gefunden-&gt;Iterator. Da steig ich aber nicht durch, wie ich das richtig übergebe.</p>
<pre><code class="language-cpp">CSVInterface::FindCellDouble(string* line,int n, double* Value) {
	// Finde eine bestimmte Zelle einer Zeile

		Spalte = 0;
		k = 0;
		j = 0;

		line-&gt;iterator line_i; // geht nicht :function style case unzulässig

		for(line_i=line-&gt;begin();line_i=line-&gt;end();line_i++) {
//			if(line[n] == ',') line[n] = '.';
			if(*line_i == ',') *line_i = '.';
		} // for

		for(n=0;n&lt;line-&gt;size();n++)	{
//			if(line[n] == ',') line[n] = '.';
//			if(line[n] == ';') {
				j = n;
//				IGBTDaten.temp.assign(line,j+1,k-1);
				Value[Spalte] = strtod(IGBTDaten.temp.c_str(),0);
				//cout &lt;&lt; &quot;Test\tRth\t:&quot; &lt;&lt;  IGBTDaten.d_TransIGBTRth[Spalte] &lt;&lt; endl;
				k = j;
				Spalte++;						
//			} // if	
		} // for

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/179641/klasse-string-als-parameter-in-funktion</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 09:27:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179641.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Apr 2007 07:27:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 07:27:46 GMT]]></title><description><![CDATA[<p>Servus,<br />
ich probiere ein string als Parameter zu übergeben. Nur weiß ich nicht, wie ich auf den Inhalt zugreifen soll. Es ist ja nicht aufgebaut wie ein String, aber wie eine Klasse. Ich habe schon was gefunden-&gt;Iterator. Da steig ich aber nicht durch, wie ich das richtig übergebe.</p>
<pre><code class="language-cpp">CSVInterface::FindCellDouble(string* line,int n, double* Value) {
	// Finde eine bestimmte Zelle einer Zeile

		Spalte = 0;
		k = 0;
		j = 0;

		line-&gt;iterator line_i; // geht nicht :function style case unzulässig

		for(line_i=line-&gt;begin();line_i=line-&gt;end();line_i++) {
//			if(line[n] == ',') line[n] = '.';
			if(*line_i == ',') *line_i = '.';
		} // for

		for(n=0;n&lt;line-&gt;size();n++)	{
//			if(line[n] == ',') line[n] = '.';
//			if(line[n] == ';') {
				j = n;
//				IGBTDaten.temp.assign(line,j+1,k-1);
				Value[Spalte] = strtod(IGBTDaten.temp.c_str(),0);
				//cout &lt;&lt; &quot;Test\tRth\t:&quot; &lt;&lt;  IGBTDaten.d_TransIGBTRth[Spalte] &lt;&lt; endl;
				k = j;
				Spalte++;						
//			} // if	
		} // for

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1272173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272173</guid><dc:creator><![CDATA[etsmart]]></dc:creator><pubDate>Tue, 24 Apr 2007 07:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 07:33:00 GMT]]></title><description><![CDATA[<p>Erstmal solltest du den String nicht als Pointer, sondern als Referenz ( <code>(const) string&amp; line)</code> ) übergeben.</p>
<p>Zweitens: Der richtige Typ nennt sich 'string::iterator'.</p>
<p>Drittens: Wozu übergibst du überhaupt n als Parameter, wenn deine erste Aktion auf n darin besteht, es auf 0 zu setzen (am Anfang der zweiten for-Schleife)? Und die Hilfsvariablen solltest du auch besser lokal anlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272177</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 24 Apr 2007 07:33:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 07:34:13 GMT]]></title><description><![CDATA[<p>Übergib nicht 'string*' sondern 'string const&amp;'.</p>
<p>Den Iterator-Typ bekommst Du per 'string::iterator'. Also:</p>
<pre><code class="language-cpp">for (string::iterator i = line.begin(); i != line.end(); ++i) // ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1272178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272178</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 24 Apr 2007 07:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 08:30:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CSVInterface::FindCellDouble(string const&amp; str_line,int n) {
	// Finde eine bestimmte Zelle einer Zeile

	str_line::iterator line_i;

	line_i = str_line.begin();
	cout &lt;&lt; line_i &lt;&lt; endl; // test

	return 0; // Später Wert für Rückgabe
}
</code></pre>
<p>Ich habe alles rausgenommen und fang nochmal von vorne an.<br />
Oben stehende Funktion funktioniert immer noch nicht.<br />
Fehler: str_line keine Klasse oder Namespace<br />
Der Zugriff auf Methoden funktioniert (str_line.begin())</p>
<p>Ich möchte aus einem Datensatz (csv Datei) Werte auslesen. Diese stehen an unterschiedlichen Stellen und haben unterschiedliche Typen. Dazu möchte ich eine Funktion nutzen, in der ich als Parameter die Zeile, welche ich vorher durch getline erhalten habe, und die Spalte angebe. Als Rückgabewert kommt dann der Wert, der innerhalb der begrenzenden ; steht. Soviel zum dem was ich haben möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272214</guid><dc:creator><![CDATA[etsmart]]></dc:creator><pubDate>Tue, 24 Apr 2007 08:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 08:33:31 GMT]]></title><description><![CDATA[<p>etsmart schrieb:</p>
<blockquote>
<p>Oben stehende Funktion funktioniert immer noch nicht.<br />
Fehler: str_line keine Klasse oder Namespace</p>
</blockquote>
<p>Sowohl CStoll als auch Konrad Rudolph haben doch geschrieben, wie du an den Iterator kommst <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1272217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272217</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 24 Apr 2007 08:33:31 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 08:40:20 GMT]]></title><description><![CDATA[<p>etsmart schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...	str_line::iterator line_i;
...
</code></pre>
</blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>...Der richtige Typ nennt sich 'string::iterator'....</p>
</blockquote>
<p>etsmart schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...cout &lt;&lt; line_i &lt;&lt; endl; ...
</code></pre>
</blockquote>
<p>Ein Iterator ist nur &quot;eine Art Verweis&quot; - denn kannst/willst Du nicht direkt ausgeben, sondern das, worauf er verweist:</p>
<pre><code class="language-cpp">...cout &lt;&lt; *line_i &lt;&lt; endl; ...
</code></pre>
<p>etsmart schrieb:</p>
<blockquote>
<p>...<br />
Ich möchte aus einem Datensatz (csv Datei) Werte auslesen. Diese stehen an unterschiedlichen Stellen und haben unterschiedliche Typen. Dazu möchte ich eine Funktion nutzen, in der ich als Parameter die Zeile, welche ich vorher durch getline erhalten habe, und die Spalte angebe. Als Rückgabewert kommt dann der Wert, der innerhalb der begrenzenden ; steht. Soviel zum dem was ich haben möchte.</p>
</blockquote>
<p>Dann tu das doch <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 />
Ab Position n das nächste ';' suchen (geht auch mit &quot;std::find()&quot;) und das dazwischen mittels ato-Funktionen oder boost::lexical_cast oder .... umwandeln.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272220</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 24 Apr 2007 08:40:20 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 08:41:06 GMT]]></title><description><![CDATA[<p>der eine sagt:<br />
const string&amp; wert</p>
<p>der andere<br />
string const&amp; wert</p>
<p>wieder ein anderer sagt:<br />
const string const&amp; wert</p>
<p>also was nun?</p>
<p>ich persönlich benutze lieber:<br />
const string&amp; wert</p>
<p>aber im endeffekt ist das doch furz wie deckel, da es sich nicht um einen zeiger handelt, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272224</guid><dc:creator><![CDATA[const user]]></dc:creator><pubDate>Tue, 24 Apr 2007 08:41:06 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 08:47:13 GMT]]></title><description><![CDATA[<p>Mit Zeigern hat das nichts zu tun. Ob das 'const' vor oder hinter dem Typ steht, ist ganz egal. Ich schreibe 'const' immer hinter den Typ, weil man es bei einer Funktion genauso macht. Einen anderen Grund hat's für mich nicht.</p>
<p>'const' sowohl vor als auch hinter den Typ ist natürlich nicht sehr sinnvoll. Ich weiß nichtmal, ob der Compiler das zulässt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272230</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 24 Apr 2007 08:47:13 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 08:54:20 GMT]]></title><description><![CDATA[<p>Naja:</p>
<p>const user schrieb:</p>
<blockquote>
<p>der eine sagt:<br />
const string&amp; wert<br />
string const&amp; wert</p>
</blockquote>
<p>Das ist Geschmackssache (so, wie &quot;A==B&quot; oder &quot;B==A&quot;). Ich persönlich ziehe Zweiteres vor (weil es bei Pointern IMO einfacher zu lesen ist, &quot;const wirkt auf den Vorgänger&quot;).</p>
<p>const user schrieb:</p>
<blockquote>
<p>const string const&amp; wert</p>
</blockquote>
<p>Das ist einfach falsch (&quot;doppeltes const&quot;).</p>
<p>EDIT:</p>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>...weil man es bei einer Funktion genauso macht....</p>
</blockquote>
<p>Auch ein gutes Argument !! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272232</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 24 Apr 2007 08:54:20 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 09:19:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CSVInterface::FindCellDouble(string const&amp; str_line,int n) {
	// Finde eine bestimmte Zelle einer Zeile

	string::iterator line_i;

	for(line_i = str_line.begin();line_i !=str_line.end();line_i++) {
// Fehler: const char * kann nicht in char* konvertiert werden
	cout &lt;&lt; *line_i;
	}
	cout &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Ich glaube ich steh im Walde. Oben das funkt. auch nicht.</p>
<pre><code class="language-cpp">CSVInterface::FindCellDouble(string const&amp; str_line,int n) {
</code></pre>
<p>Referenzen nutzt man indem:<br />
typ&amp; name = variable;<br />
oder<br />
typ const&amp; name = variable, wenn der zu übergebende Wert nicht verändert werden kann.</p>
<pre><code class="language-cpp">string::iterator line_i;
</code></pre>
<p>string::iterator ist ein Datentyp, der in string steht. line_i ist also eine Variable vom Typ iterator.</p>
<pre><code class="language-cpp">for(line_i = str_line.begin();line_i !=str_line.end();line_i++) {
</code></pre>
<p>begin() liefert einen Wert vom Typ iterator zurück. Also gebe ich diesen Wert an line_i weiter</p>
<pre><code class="language-cpp">cout &lt;&lt; *line_i;
</code></pre>
<p>Da line_i ein Verweis ist, erfolgt der Zugriff wie bei einem Zeiger (ein * vorangestellt)</p>
<p>Wo liegt mein Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272245</guid><dc:creator><![CDATA[etsmart]]></dc:creator><pubDate>Tue, 24 Apr 2007 09:19:14 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 09:24:13 GMT]]></title><description><![CDATA[<p>*grübelt kurz* Welche Anweisung verursacht denn den Fehler?</p>
<p>*nach etwas längerem Nachdenken* Du hast einen 'const string', das heißt, du benötigst dort auch einen 'string::<em>const</em>iterator'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272250</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 24 Apr 2007 09:24:13 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 09:27:15 GMT]]></title><description><![CDATA[<p>Mein Fehler. Da der String const ist, kann er natürlich nicht manipuliert werden. Wenn Du nur Zeichen ausgeben willst, verwende statt 'iterator' einfach 'const_iterator'. Wenn Du den String bzw. Iterator manipulieren willst, mach das 'const' bei der Parameterübergabe weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272253</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 24 Apr 2007 09:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 09:42:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CSVInterface::FindCellDouble(string&amp; str_line,int n) {
	// Finde eine bestimmte Zelle einer Zeile

	string s = str_line; //&quot;Testlauf&quot;;
	string::iterator i;
	cout &lt;&lt; &quot;\nFindCellDouble:\t&quot;;
	for(i=s.begin();i!=s.end();i++){
		if(*i == ',') *i = '.';

		cout &lt;&lt; *i;
	}
	cout &lt;&lt; &quot;\t:&quot;&lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Jetzt hab ichs</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272265</guid><dc:creator><![CDATA[etsmart]]></dc:creator><pubDate>Tue, 24 Apr 2007 09:42:34 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Tue, 24 Apr 2007 11:39:04 GMT]]></title><description><![CDATA[<p>etsmart schrieb:</p>
<blockquote>
<pre><code class="language-cpp">CSVInterface::FindCellDouble(string&amp; str_line,int n) {
	// Finde eine bestimmte Zelle einer Zeile
	
	string s = str_line; //&quot;Testlauf&quot;;
	string::iterator i;
	cout &lt;&lt; &quot;\nFindCellDouble:\t&quot;;
	for(i=s.begin();i!=s.end();i++){
		if(*i == ',') *i = '.';

		cout &lt;&lt; *i;
	}
	cout &lt;&lt; &quot;\t:&quot;&lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Jetzt hab ichs</p>
</blockquote>
<p>Hmmm - kann ich nicht finden:</p>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>...Wenn Du nur Zeichen ausgeben willst, verwende statt 'iterator' einfach 'const_iterator'.<br />
Wenn Du den String bzw. Iterator manipulieren willst, mach das 'const' bei der Parameterübergabe weg.</p>
</blockquote>
<p>- Für das einfache Suchen und Daten daraus extrahieren, brauchst Du kein &quot;non-const&quot; str_line.<br />
- WENN Du schon ein &quot;non-const&quot; str_line einsetzt, brauchst Du erst Recht keine Kopie (s) davon....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272331</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 24 Apr 2007 11:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse string als Parameter in Funktion on Wed, 25 Apr 2007 06:48:47 GMT]]></title><description><![CDATA[<p>Habt natürlich recht...die Funktion hat es auf jeden Fall schon mal.<br />
Das einzige was mir jetzt noch fehlt, ist mir das Ende der Zeile der CSV Datei zurückzugeben. Die letzten Werte werden einfach wiederholt, wenn ich über die Grenze hinaus zugreife.<br />
Mit der Funktion CellValueDouble kann ich über den Dateinamen und Koordinaten einen bestimmten Wert aus einer CSV auslesen und zurückgeben</p>
<pre><code class="language-cpp">for(int m=2;m&lt;=14;m++) for(int n=32;n&lt;=34;n++) cout &lt;&lt; &quot; &quot; &lt;&lt; CellValueDouble(pszFilename,m,n);
	cout &lt;&lt; endl;
</code></pre>
<p>Zeigt mir die 2. bis 14.Spalte in der 32. bis 34. Zeile an.</p>
<p>Weitere Schritte wären Änderungen in einer bestimmten Zelle zu speichern und halt das Ende der Zeile zu ermitteln, damit nicht immer die letzte Zelle wiederholt wird</p>
<pre><code class="language-cpp">double CSVInterface::FindCellDouble(string&amp; s,int n) {
	// Finde eine bestimmte Zelle einer Zeile -&gt; Double

	//string s = str_line; //&quot;Testlauf&quot;;
	string::iterator i;
	int first = 0;
	int last = 0;
	int m = 0;

	for(i=s.begin();i!=s.end();i++){		// Punkt mit Komma ersetzen für Funktion strtod()
		if(*i == ',') *i = '.';
	}

	do {
		last = s.find(';',first);
		if(last != -1) {
			IGBTDaten.temp.assign(s,first,last-first);
			m++;
			//cout &lt;&lt; &quot;\n&quot; &lt;&lt; first &lt;&lt; &quot; &quot; &lt;&lt; last &lt;&lt; &quot; &quot; &lt;&lt; m &lt;&lt; &quot; &quot; &lt;&lt; IGBTDaten.temp;
			first = last+1;
		} // if
		if(last == -1) {
			IGBTDaten.temp.assign(s,first,s.size()-first);
			m++;
			//cout &lt;&lt; &quot;\n&quot; &lt;&lt; first &lt;&lt; &quot; &quot; &lt;&lt; last &lt;&lt; &quot; &quot; &lt;&lt; m &lt;&lt; &quot; &quot; &lt;&lt; IGBTDaten.temp;
		} // if
		if(first == -1 &amp;&amp; last == -1) return -1;

	}while( m&lt;n &amp;&amp; last != -1 /* &amp;&amp; first != last */);
	//}while(s.size() &gt;= last);
	//cout &lt;&lt; endl;

	return strtod(IGBTDaten.temp.c_str(),0);
}
double CSVInterface::CellValueDouble(char* pszFilename,int x,int y) {
	// Wert aus einer bestimmten Zelle mit Koordinatenangabe -&gt;Double
	string line;
	ifstream file; // Erstellt Objekt zum Dateien lesen
	file.open(pszFilename); // Öffnet diese Datei 

	if(file.is_open()) {
		while(!file.eof()) {
			for(int i=0;i&lt;y;i++) {
				getline(file,line);
			} // for
			return FindCellDouble(line,x);
		} // while
	} // if

	if(!(file.is_open())) cout &lt;&lt; &quot; File konnte nicht geöffnet werden &quot; &lt;&lt; endl;
	if(file.eof()) cout &lt;&lt; &quot; Ende der Datei erreicht &quot; &lt;&lt; endl;

	file.close();
	return -1;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1272921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272921</guid><dc:creator><![CDATA[etsmart]]></dc:creator><pubDate>Wed, 25 Apr 2007 06:48:47 GMT</pubDate></item></channel></rss>