<?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[Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof();]]></title><description><![CDATA[<p>Hallo liebe C++-Community!</p>
<p><em>Frage nach dem, was du erreichen willst und nicht danach womit du es erreichen willst.</em> ...heißt es so nett in eurem Neuling-Thread.</p>
<p>Nun, &quot;was&quot; ich machen möchte, ist recht simpel: ich möchte die Schlüssel einer Ini-Datei auslesen und diese dann einzeln weiterverwenden. Oder anders gesagt: in jeder Zeile das erste Wort zwischen zwei Anführungszeichen in einem String oder Array speichern.</p>
<p>Meine Idee war, dass ich die Datei einfach zeichenweise mit getc() auslese und die Anführungszeichen sowie Newline als Anhaltspunkte für die Verarbeitung nehme. Hat auch ganz gut funktioniert, auch wenn das vielleicht keine elegante Lösung war.</p>
<p>Allerdings ist mir nun &quot;von oben&quot; ausrücklich angeraten worden, zuerst die Zeilen auszulesen, in Strings zu speichern und dann diese auszuwerten; mit der Begründung, dass dies sicherer wäre, falls in einer Zeile ein Fehler auftaucht.</p>
<p>Abgesehen davon, dass ich getline() noch nicht richtig einzusetzen weiß (Fehler beim Compilieren) und ich darüberhinaus auch nicht verstehe, wie ich nach der ersten Zeile die weiteren erreichen kann, wollte ich erst einmal ganz allgemein fragen: Lohnt sich der Stress überhaupt? Oder ist meine erste Idee nicht auch ausreichend?</p>
<p>Zu meiner bisherigen Erfahrung: Ich habe bisher im Studium leider nur C gehabt und rate mich jetzt eher mühsam durch C++. Daher kann ich z.B. (noch) nichts mit den Ausdrücken :: oder &lt;&lt; anfangen, was mir dummerweise das Verständnis aller verfügbaren Beispielprogramme erschwert.</p>
<p>Liebe Grüße (hoffe, das war kurz/klar genug gefragt ;)),<br />
GoldenAge</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249738/schlüssel-aus-ini-datei-lesen-noch-eine-frage-zu-eof</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 04:10:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249738.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Sep 2009 11:55:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Mon, 28 Sep 2009 07:13:31 GMT]]></title><description><![CDATA[<p>Hallo liebe C++-Community!</p>
<p><em>Frage nach dem, was du erreichen willst und nicht danach womit du es erreichen willst.</em> ...heißt es so nett in eurem Neuling-Thread.</p>
<p>Nun, &quot;was&quot; ich machen möchte, ist recht simpel: ich möchte die Schlüssel einer Ini-Datei auslesen und diese dann einzeln weiterverwenden. Oder anders gesagt: in jeder Zeile das erste Wort zwischen zwei Anführungszeichen in einem String oder Array speichern.</p>
<p>Meine Idee war, dass ich die Datei einfach zeichenweise mit getc() auslese und die Anführungszeichen sowie Newline als Anhaltspunkte für die Verarbeitung nehme. Hat auch ganz gut funktioniert, auch wenn das vielleicht keine elegante Lösung war.</p>
<p>Allerdings ist mir nun &quot;von oben&quot; ausrücklich angeraten worden, zuerst die Zeilen auszulesen, in Strings zu speichern und dann diese auszuwerten; mit der Begründung, dass dies sicherer wäre, falls in einer Zeile ein Fehler auftaucht.</p>
<p>Abgesehen davon, dass ich getline() noch nicht richtig einzusetzen weiß (Fehler beim Compilieren) und ich darüberhinaus auch nicht verstehe, wie ich nach der ersten Zeile die weiteren erreichen kann, wollte ich erst einmal ganz allgemein fragen: Lohnt sich der Stress überhaupt? Oder ist meine erste Idee nicht auch ausreichend?</p>
<p>Zu meiner bisherigen Erfahrung: Ich habe bisher im Studium leider nur C gehabt und rate mich jetzt eher mühsam durch C++. Daher kann ich z.B. (noch) nichts mit den Ausdrücken :: oder &lt;&lt; anfangen, was mir dummerweise das Verständnis aller verfügbaren Beispielprogramme erschwert.</p>
<p>Liebe Grüße (hoffe, das war kurz/klar genug gefragt ;)),<br />
GoldenAge</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776464</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Mon, 28 Sep 2009 07:13:31 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Fri, 11 Sep 2009 12:03:14 GMT]]></title><description><![CDATA[<p>Hier hast du erstmal ein gutes FAQ zum Thema Lesen und Schreiben von Dateien in C++:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.html</a><br />
Da steht schonmal drin wie du eine Datei zeilenweise komplett ausliest.</p>
<p>Für die Auswertung bietet sich vielleicht std::string aus der STL an:</p>
<p><a href="http://www.cplusplus.com/reference/string/string/" rel="nofollow">http://www.cplusplus.com/reference/string/string/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776468</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Fri, 11 Sep 2009 12:03:14 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Fri, 11 Sep 2009 12:05:32 GMT]]></title><description><![CDATA[<p>Mit getch ist das unglaublich umständlich. Mit getline oder dem &gt;&gt; Operator geht das ganz einfach. Es ist aber wohl unmöglich dies zu erklären, wenn du selber sagst, dass du nicht weißt, was diese Ausdrücke bedeuten. Du solltest dich daher lieber erstmal mit den Grundlagen von C++ beschäftigen, bevor du sowas versuchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776470</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 11 Sep 2009 12:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Fri, 11 Sep 2009 12:08:29 GMT]]></title><description><![CDATA[<p>D.h. das zeilenweise Auslesen ist tatsächlich dem Buchstabenweisen vorzuziehen?<br />
Mir erschien das eher umständlich, da ich dann Auslesen und Auswerten getrennt behandeln müsste...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>:<br />
Bis gerade eben wusste ich nicht, wonach genau ich bei Google für &quot;&gt;&gt;&quot; suchen muss (auf &quot;Doppelpfeil&quot; bin ich vor fünf Minuten gekommen. <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="🙄"
    /> )... aber okay, trotzdem danke für den Tipp. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1776472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776472</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Fri, 11 Sep 2009 12:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Fri, 11 Sep 2009 12:12:32 GMT]]></title><description><![CDATA[<p>Frenni schrieb:</p>
<blockquote>
<p>D.h. das zeilenweise Auslesen ist tatsächlich dem Buchstabenweisen vorzuziehen?<br />
Mir erschien das eher umständlich, da ich dann Auslesen und Auswerten getrennt behandeln müsste...</p>
</blockquote>
<p>Du musst nicht trennen. Du kannst die strings in einem vector speichern oder die strings auch direkt auswerten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776476</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Fri, 11 Sep 2009 12:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Fri, 11 Sep 2009 12:29:59 GMT]]></title><description><![CDATA[<p>Verstehe ich das richtig: man kann eine mit getline() &quot;erhaltene&quot; Zeile nach einzelnen Zeichen durchsuchen, ohne sie vorher in Strings zu speichern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776496</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Fri, 11 Sep 2009 12:29:59 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Fri, 11 Sep 2009 12:42:13 GMT]]></title><description><![CDATA[<p>Frenni schrieb:</p>
<blockquote>
<p>Verstehe ich das richtig: man kann eine mit getline() &quot;erhaltene&quot; Zeile nach einzelnen Zeichen durchsuchen, ohne sie vorher in Strings zu speichern?</p>
</blockquote>
<p>Du kannst getline() mit dem dritten Argument sagen, bis wohin er lesen soll.</p>
<pre><code>&quot;Key1&quot; = ...
&quot;Key2&quot; = ...
</code></pre>
<pre><code class="language-cpp">// Wenn &quot;-Zeichen immer am Anfang :
cin.get();
std::string key = &quot;&quot;;
getline(cin, key, &quot;\&quot;&quot;);

// &quot;-Zeichen irgendwo mittendrin:
cin.ignore(numerlic_limits&lt;streamsize&gt;::max(), &quot;\&quot;&quot;);
getline(cin, key, &quot;\&quot;&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1776514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776514</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 11 Sep 2009 12:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Fri, 11 Sep 2009 12:56:27 GMT]]></title><description><![CDATA[<p>Dankeschön! <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>Ich werd auf jeden Fall darauf zurückgreifen, wenn ich etwas bewanderter in der ganzen Syntax von C++ bin. Aber jetzt les ich erstmal einen Crashkurs und hau nächstes Semester unsere Profs, dass sie mal früher mit C++ anfangen sollen. <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>
<p>Danke für die schnellen Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776534</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Fri, 11 Sep 2009 12:56:27 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Mon, 28 Sep 2009 07:14:54 GMT]]></title><description><![CDATA[<p>So, hoffe ich darf nochmal nerven...</p>
<p>Ich bin jetzt ein ganzes Stück weiter gekommen (auch wenn es vielleicht nicht die professionellste Lösung ist, funktioniert's und getline() ist drin... ^^).</p>
<p>Allerdings habe ich jetzt noch ein Problem mit ios::eof.<br />
Mein Code sieht folgendermaßen aus:</p>
<pre><code class="language-cpp">ifstream File;
		File.open(&quot;...Pfad...&quot;, ios::nocreate);

		if(File){
			int lc, ch, doline;
			String strKey = &quot;&quot;;
			char arKey[100];

			for(lc=1;;lc++){ //lc=line Counter für Fehlermeldung

				File.getline(arKey, 100);
				if(File.eof()){break;} 

				switch(arKey[0]){
					case '[': 
					case ' ':
						doline = 0;
						break;
					case '&quot;':    //nur best. Zeilen sollen beachtet werden
						doline = 1;
						break;
					default:
						doline = 0;
						//...Fehlermeldung...
						break;
				}

				if(!doline){continue;}

				for(ch=1;ch&lt;100;ch++){
					if((arKey[ch] == '&quot;')||(arKey[ch] == '=')||(arKey[ch] == '\n')){break;}
					strKey = strKey + arKey[ch];
				}
				//...Ausgabe des Strings...
				File.close();
			}
		}
</code></pre>
<p>Funktioniert grundsätzlich ganz gut, nur leider hört das Auslesen nach der ersten Zeile, die ein &quot; enthält, auf.<br />
Anscheinend wird File.eof() in Zeile 12 &quot;true&quot; und bricht die Schleife ab.</p>
<p>Aber warum? Sollte das nicht erst passieren, nachdem wirklich das Ende der Datei erreicht wurde?</p>
<p>Grüße,<br />
GoldenAge</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778866</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Mon, 28 Sep 2009 07:14:54 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Tue, 15 Sep 2009 15:20:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hier im Forum hat mal jemand ne gute Klasse gepostet, die so ne *.ini-Datei auslesen kann</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-247505-and-highlight-is-configvalue.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-247505-and-highlight-is-configvalue.html</a></p>
<p>oder</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-186559-and-highlight-is-configvalue.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-186559-and-highlight-is-configvalue.html</a></p>
<p>Gruß Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778891</guid><dc:creator><![CDATA[varginator]]></dc:creator><pubDate>Tue, 15 Sep 2009 15:20:44 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Tue, 15 Sep 2009 15:36:24 GMT]]></title><description><![CDATA[<p>Und falls es dir nach wie vor erstmal nur um dieses geht:</p>
<p>Frenni schrieb:</p>
<blockquote>
<p>[...]in jeder Zeile das erste Wort zwischen zwei Anführungszeichen in einem String oder Array speichern.[...]</p>
</blockquote>
<p>Dann kann dir vielleicht dieses kurze Stückchen Code als Anregung dienen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt; // std::copy
#include &lt;iterator&gt;  // std::ostream_iterator

int main()
{
	std::ifstream fileIn(&quot;test.txt&quot;);
	if(!fileIn) {
		std::cerr &lt;&lt; &quot;Datei wurde nicht gefunden.&quot; &lt;&lt; std::endl;
		return 1;
	}
	std::vector&lt;std::string&gt; gefundeneWoerter;
	for(std::string zeile; std::getline(fileIn, zeile); ) { // Zeile für Zeile lesen
		std::string::size_type pos1 = zeile.find('\&quot;');		   // Die ersten beiden
		std::string::size_type pos2 = zeile.find('\&quot;', pos1 + 1); // Anführungszeichen finden
		while(pos1 != std::string::npos &amp;&amp; pos2 != std::string::npos) {
			gefundeneWoerter.push_back(zeile.substr(pos1 + 1, pos2 - pos1 - 1)); // std::string bilden ab (pos1 + 1)ter Position aus (pos2 - pos1 - 1) Zeichen
			pos1 = zeile.find('\&quot;', pos2 + 1);	// Nach weiteren
			pos2 = zeile.find('\&quot;', pos1 + 1);	// Anführungszeichen suchen
		}
	}
	std::copy(gefundeneWoerter.begin(), gefundeneWoerter.end(), std::ostream_iterator&lt;std::string&gt;(std::cout, &quot;\n&quot;)); // Ausgabe

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1778895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778895</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Tue, 15 Sep 2009 15:36:24 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Wed, 16 Sep 2009 07:53:11 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21883">@Varginator</a>:<br />
Ich kann leider nicht sagen, ob diese Klasse auch die Keys auslesen kann, aber Ini-Dateien grundsätzlich auszulesen habe ich schon geschafft. <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20681">@Mizar</a>:<br />
Well... naja, das ist dann wohl die elegante Lösung. <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="😃"
    /><br />
Nur hätte ich wohl zwei Wochen gebraucht, um mir die ganzen Funktionen zusammenzusuchen, also erstmal Danke!</p>
<pre><code class="language-cpp">for(std::string zeile; std::getline(fileIn, zeile); ) { // Zeile für Zeile lesen
		std::string::size_type pos1 = zeile.find('\&quot;');		   // Die ersten beiden
		std::string::size_type pos2 = zeile.find('\&quot;', pos1 + 1); // Anführungszeichen finden
		while(pos1 != std::string::npos &amp;&amp; pos2 != std::string::npos) {
			gefundeneWoerter.push_back(zeile.substr(pos1 + 1, pos2 - pos1 - 1)); // std::string bilden ab (pos1 + 1)ter Position aus (pos2 - pos1 - 1) Zeichen
			pos1 = zeile.find('\&quot;', pos2 + 1);	// Nach weiteren
			pos2 = zeile.find('\&quot;', pos1 + 1);	// Anführungszeichen suchen
		}
	}
</code></pre>
<p>Allerdings verstehe ich diese For-Schleife noch nicht ganz ... wird sie einfach abgebrochen, wenn getline eine 0 zurückgibt? Kann es nicht sein, dass eine Datei mitten in der Zeile aufhört und so Daten verloren gehen?</p>
<p>Edit: Und die Zeilen 6 + 7 suchen nach weiteren Anführungszeichen in derselben ausgelesenen Zeile, oder?</p>
<p>Abgesehen davon funktioniert std::getline(fileIn, zeile); bei mir leider nicht (BDS 2006 kennt die Funktion nicht) - was mich einiges an Zeit und Nerven gekostet hat, da ich ständig dachte, ich hätte sie irgendwie falsch verwendet. <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="😞"
    /><br />
Daher meine etwas umständlichere Variante mit dem Array - oder kann man das irgendwie nachinstallieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779586</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Wed, 16 Sep 2009 07:53:11 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Wed, 16 Sep 2009 10:39:14 GMT]]></title><description><![CDATA[<p>Frenni schrieb:</p>
<blockquote>
<p>Allerdings verstehe ich diese For-Schleife noch nicht ganz ... wird sie einfach abgebrochen, wenn getline eine 0 zurückgibt? Kann es nicht sein, dass eine Datei mitten in der Zeile aufhört und so Daten verloren gehen?</p>
</blockquote>
<p>Der allgemeine Aufbau einer for-Schleife lautet ja:</p>
<pre><code class="language-cpp">for(Initialisierer; Bedingung; Ausdruck)
    Anweisung;
</code></pre>
<p>In der for-Schleife meines Codestücks habe ich als Bedingung folgendes verwendet:</p>
<pre><code class="language-cpp">std::getline(fileIn, zeile)
</code></pre>
<p>Die <code>std::getline</code> -Funktion hat als Rückgabewert den ihr übergebenem <code>Stream</code> und eben dieser wird nun in der &quot;Bedingung&quot; der for-Schleife ausgewertet. Es wird also einfach überprüft, ob sich der <code>Stream</code> in einem gültigen Zustand befindet.</p>
<p>Frenni schrieb:</p>
<blockquote>
<p>Edit: Und die Zeilen 6 + 7 suchen nach weiteren Anführungszeichen in derselben ausgelesenen Zeile, oder?</p>
</blockquote>
<p>Ganz genau. Und wird die while-Schleife wieder verlassen, liest die for-Schleife die nächste Zeile aus der Datei und diese wird nun (dank der while-Schleife) solange nach Anführungszeichen durchsucht, bis eben keine mehr gefunden werden. Usw., usf... <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>Frenni schrieb:</p>
<blockquote>
<p>Abgesehen davon funktioniert std::getline(fileIn, zeile); bei mir leider nicht (BDS 2006 kennt die Funktion nicht) - was mich einiges an Zeit und Nerven gekostet hat, da ich ständig dachte, ich hätte sie irgendwie falsch verwendet. <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="😞"
    /><br />
Daher meine etwas umständlichere Variante mit dem Array - oder kann man das irgendwie nachinstallieren?</p>
</blockquote>
<p>Hmm... ich verwende als IDE Microsofts Visual Studio 2008 Express Edition und durch einfaches einbinden des <code>std::string</code> -Headers:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
</code></pre>
<p>kann ich die <code>std::getline</code> -Funktion schon verwenden. Leider kann ich dir nicht sagen wie es sich da mit dem BSD 2006 verhält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779705</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Wed, 16 Sep 2009 10:39:14 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Wed, 16 Sep 2009 10:56:26 GMT]]></title><description><![CDATA[<p>Mizar schrieb:</p>
<blockquote>
<p>Frenni schrieb:</p>
<blockquote>
<p>Edit: Und die Zeilen 6 + 7 suchen nach weiteren Anführungszeichen in derselben ausgelesenen Zeile, oder?</p>
</blockquote>
<p>Ganz genau. Und wird die while-Schleife wieder verlassen, liest die for-Schleife die nächste Zeile aus der Datei und diese wird nun (dank der while-Schleife) solange nach Anführungszeichen durchsucht, bis eben keine mehr gefunden werden. Usw., usf... <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>
</blockquote>
<p>Okay... die zwei Zeilen braucht es in dem Fall nicht, ich such immer nur das erste Wort zwischen zwei &quot;&quot;, der Rest ist mir egal. <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>Zum Rest:<br />
Jetzt hänge ich also doch wieder an diesem blöden getline() fest... <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="🙄"
    /><br />
Obwohl: Kann ich die Variante mit Array (<a href="http://www.cplusplus.com/reference/iostream/istream/getline/" rel="nofollow">Reference</a>) genauso benutzen? D.h. als Bedingung der for-Schleife <em>File.getline(array, size)</em> einsetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779710</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Wed, 16 Sep 2009 10:56:26 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Wed, 16 Sep 2009 11:23:05 GMT]]></title><description><![CDATA[<p>Frenni schrieb:</p>
<blockquote>
<p>Obwohl: Kann ich die Variante mit Array (<a href="http://www.cplusplus.com/reference/iostream/istream/getline/" rel="nofollow">Reference</a>) genauso benutzen? D.h. als Bedingung der for-Schleife <em>File.getline(array, size)</em> einsetzen?</p>
</blockquote>
<p>Als Bedingung der for-Schleife dürfte das schon funktionieren, ja. Was ich mich gerade frage ist, ob das BDS 2006 überhaupt die <code>std::string</code> s aus der C++-Standardbibliothek kennt. In deinem zuvor geposteten Code hattest du ja auch dieses geschrieben:</p>
<pre><code class="language-cpp">String strKey = &quot;&quot;;
</code></pre>
<p>Was ja auch kein <code>std::string</code> ist (man achte auf das große 'S'). Falls das BDS 2006 keine <code>std::string</code> s aus der C++-Standardbibliothek unterstützt, wirst du dich entweder mit Arrays herumschlagen müssen oder schauen müssen was dir diese String-Klasse des BDS 2006 an Funktionalität bietet. Denn diese Anweisungen:</p>
<pre><code class="language-cpp">std::string::size_type pos1 = zeile.find('\&quot;');
pos1 != std::string::npos
zeile.substr(pos1 + 1, pos2 - pos1 - 1)
</code></pre>
<p>dürften dann ja wohl nicht mehr funktionieren <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1779721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779721</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Wed, 16 Sep 2009 11:23:05 GMT</pubDate></item><item><title><![CDATA[Reply to Schlüssel aus Ini-Datei lesen - noch eine Frage zu eof(); on Wed, 16 Sep 2009 11:56:42 GMT]]></title><description><![CDATA[<p>Das würde natürlich erklären, warum die Strings selten das tun, was ich von ihnen erwarte. <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>
<p>&lt;string&gt; habe ich durchaus eingebunden, leider kann ich dir nicht sagen, was da drin steht, oder welche Variante das ist.</p>
<p>Hilft nur Probieren... immerhin hab ich mir jetzt mal ein Buch für den C++ Builder ausgeliehen, damit komme ich hoffentlich weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779745</guid><dc:creator><![CDATA[GoldenAge]]></dc:creator><pubDate>Wed, 16 Sep 2009 11:56:42 GMT</pubDate></item></channel></rss>