<?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[Suchen in Text aus datei]]></title><description><![CDATA[<p>hallo ihr,</p>
<p>meine frage, ich habe eine datei mit daten, diese lese ich ein!<br />
nun möchte ich aber nur spezielle daten anzeigen!</p>
<p>meine idee ist alles in einen string zu laden, und in dem string nach dem suchwort suchen, und bis zu einem von mir festgelegten zeichen alles ausgeben!</p>
<p>nun weiß ich nicht ob das eine gute idee ist, oder ob ich mit stringstreams arbeiten sollte?damit habe ich aber nicht so die erfahrung!</p>
<p>bis jetzt habe ich es so:</p>
<pre><code class="language-cpp">void LoadFromFileB(ifstream&amp; str)
{
 string buffer;
 while(!str.eof())
 {
  str&gt;&gt;buffer;
  cout&lt;&lt;buffer&lt;&lt;endl;
 }
}
</code></pre>
<p>dateiinhalt sieht ungefähr so aus:</p>
<pre><code>-----------------Buch1--------------------
ISBN:1234567890
Titel:Buch1
Autor:Schneider
Preis:12.34€
Seitenanzahl:222
Methode:Gelocht

-----------------Buch2--------------------
ISBN:1234567890
Titel:Buch2
Autor:Ss
Preis:34.546€
Seitenanzahl:12
Methode:Geklebt
</code></pre>
<p>nun möchte ich nur die daten von Buch1 anzeigen...!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/137706/suchen-in-text-aus-datei</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 23:03:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/137706.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Feb 2006 08:29:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suchen in Text aus datei on Mon, 20 Feb 2006 08:29:49 GMT]]></title><description><![CDATA[<p>hallo ihr,</p>
<p>meine frage, ich habe eine datei mit daten, diese lese ich ein!<br />
nun möchte ich aber nur spezielle daten anzeigen!</p>
<p>meine idee ist alles in einen string zu laden, und in dem string nach dem suchwort suchen, und bis zu einem von mir festgelegten zeichen alles ausgeben!</p>
<p>nun weiß ich nicht ob das eine gute idee ist, oder ob ich mit stringstreams arbeiten sollte?damit habe ich aber nicht so die erfahrung!</p>
<p>bis jetzt habe ich es so:</p>
<pre><code class="language-cpp">void LoadFromFileB(ifstream&amp; str)
{
 string buffer;
 while(!str.eof())
 {
  str&gt;&gt;buffer;
  cout&lt;&lt;buffer&lt;&lt;endl;
 }
}
</code></pre>
<p>dateiinhalt sieht ungefähr so aus:</p>
<pre><code>-----------------Buch1--------------------
ISBN:1234567890
Titel:Buch1
Autor:Schneider
Preis:12.34€
Seitenanzahl:222
Methode:Gelocht

-----------------Buch2--------------------
ISBN:1234567890
Titel:Buch2
Autor:Ss
Preis:34.546€
Seitenanzahl:12
Methode:Geklebt
</code></pre>
<p>nun möchte ich nur die daten von Buch1 anzeigen...!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/998278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/998278</guid><dc:creator><![CDATA[Streams...]]></dc:creator><pubDate>Mon, 20 Feb 2006 08:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to Suchen in Text aus datei on Tue, 21 Feb 2006 09:07:32 GMT]]></title><description><![CDATA[<p>da hier eh keiner antwortet kann ich ja was weniger konstruktives schreiben...</p>
<p>Musst du das ganze mit C++ lösen oder wäre dir auch ne andere Lösung recht? mit Php geht sowas zum Beispielt total easy. in C++ ist die Verarbeitung von Strings im direkten Vergleich (zu PHP) nen Krampf.</p>
<p>Ansonsten würde ich da ich auch keine Ahnung von streams habe. Zeile für Zeile einlesen und nach &quot;-Buchname-&quot; suchen. bei einem Treffer dann eine funktion starten die die nächsten 6 Zeilen (for()) ausgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999151</guid><dc:creator><![CDATA[Oklino]]></dc:creator><pubDate>Tue, 21 Feb 2006 09:07:32 GMT</pubDate></item><item><title><![CDATA[Reply to Suchen in Text aus datei on Tue, 21 Feb 2006 18:42:44 GMT]]></title><description><![CDATA[<p>@Streams:<br />
Schreibe dir eine Klasse book, die op&gt;&gt; überlädt.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">struct book
{
    map&lt;string, string&gt; data() const { return m_values; }

    istream&amp; operator&gt;&gt;(istream&amp; is, book&amp; rhs)
    {
        rhs = book(); // einlesen entspricht einer &quot;Neukonstruktion&quot;.
        string line;
        while(getline(is, line) &amp;&amp; line != &quot;&quot;) // Abruch mit leerer Zeile...
            rhs.process_line(line);

        return is;
    }

    // weitere Funktionalität sei Dir als Übung überlassen ;-)
    // ...

    private:
        map&lt;string, string&gt; m_values;

        void process_line(const string&amp; rhs)
        {
            string::size_type pos = rhs.find(&quot;:&quot;);
            if(pos != string::npos)
                m_values.insert( pair&lt;string, string&gt;(rhs.substr(0, pos), rhs.substr(pos + 1)) );
            else
                throw exception() // Fehlerbehandlung. Am besten durch eine eigens konzipierte Klasse z.B. invalid_book() o.ä. verbessern...
        }
};
</code></pre>
<p>Mithilfe dieser Klasse kannst du problemlos einzelne Zeilen ausgeben, z.B. den Titel des Buches, etc. ...</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;iterator&gt;
using namespace std;

int main()
{   
    ifstream in(&quot;book_data.txt&quot;, ios::binary);
    if(in)
    {
        vector&lt;book&gt; books;
        copy(istream_iterator&lt;book&gt;(in), istream_iterator&lt;book&gt;(), back_inserter(books));

        // von jedem Buch den Titel ausgeben, sofern dieser gesetzt ist:
        for(vector&lt;book&gt;::const_iterator it = books.begin(); it != books.end(); ++it)
        {
            if(it-&gt;data().count(&quot;Titel&quot;))
                cout &lt;&lt; &quot;Titel von Buch &quot; &lt;&lt; it - books.begin() &lt;&lt; &quot;: &quot; &lt;&lt; (*it)[&quot;Titel&quot;] &lt;&lt; endl;

        }
    }
    else
        // Fehler beim öffnen der Datei.
}
</code></pre>
<p>Du siehst: Mithilfe der STL und der Klasse std::string lässt sich das Einlesen auch unter C++ sehr einfach gestalten :).</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999617</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Tue, 21 Feb 2006 18:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to Suchen in Text aus datei on Wed, 22 Feb 2006 06:47:00 GMT]]></title><description><![CDATA[<p>danke schonmal!</p>
<p>ABER ich bin noch nciht bei der STL...also könntest mir das auch ohne diese container mal erklären? <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/999879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999879</guid><dc:creator><![CDATA[Streams...]]></dc:creator><pubDate>Wed, 22 Feb 2006 06:47:00 GMT</pubDate></item><item><title><![CDATA[Reply to Suchen in Text aus datei on Wed, 22 Feb 2006 06:57:34 GMT]]></title><description><![CDATA[<p>und vielleicht kannst du mir auch mal ein beispiel für eine (einfache) eigene exception-klasse mit verwendung geben?<br />
Hab sowas noch nciht gemacht...und weiß nicht,wie ich da ran gehen könnte/sollte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999881</guid><dc:creator><![CDATA[Streams...]]></dc:creator><pubDate>Wed, 22 Feb 2006 06:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to Suchen in Text aus datei on Wed, 22 Feb 2006 07:21:16 GMT]]></title><description><![CDATA[<p>Streams... schrieb:</p>
<blockquote>
<p>ABER ich bin noch nciht bei der STL...also könntest mir das auch ohne diese container mal erklären? <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>
</blockquote>
<p>Die STL gehört normalerweise zum &quot;Lieferumfang&quot; von C++ dazu - und so schwer anzuwenden ist sie auch nicht.<br />
(ich empfehle die Lektüre vom <a href="http://www.cppreference.com" rel="nofollow">www.cppreference.com</a> als Einstieg)</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6091">@Caipi</a>: Erstens müsste der operator&gt;&gt; eine gloable Funktion sein (oder Member von istream, aber da kommt der Normaluser nicht ran) und zweitens würde ich bei einem Fehler keine Expection werfen, sondern den einlesenden Strream in einen Fehlerstatus setzen.</p>
<blockquote>
<p>und vielleicht kannst du mir auch mal ein beispiel für eine (einfache) eigene exception-klasse mit verwendung geben?</p>
</blockquote>
<p>Wenn du schon mit der STL Probleme hast, würde ich noch nicht mit Exception-Behandlung anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999886</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Feb 2006 07:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to Suchen in Text aus datei on Wed, 22 Feb 2006 08:09:37 GMT]]></title><description><![CDATA[<p>ich habe damit keine probleme, habe mir nur die ganzen container noch nicht angeschaut!</p>
<p>Möchte eben lieber erstmal selber solche klassen &quot;nachbauen&quot;</p>
<p>Darum wäre eine eigene exceptionklasse sicher nicht verkehrt, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999911</guid><dc:creator><![CDATA[Streams...]]></dc:creator><pubDate>Wed, 22 Feb 2006 08:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to Suchen in Text aus datei on Wed, 22 Feb 2006 13:30:55 GMT]]></title><description><![CDATA[<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6091">@Caipi</a>: Erstens müsste der operator&gt;&gt; eine gloable Funktion sein (oder Member von istream, aber da kommt der Normaluser nicht ran)</p>
</blockquote>
<p>Jup. Hast recht. Habe wohl zuviel an das Schlüsselwort friend gedacht... <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>
<blockquote>
<p>und zweitens würde ich bei einem Fehler keine Expection werfen, sondern den einlesenden Strream in einen Fehlerstatus setzen.</p>
</blockquote>
<p>Das ist imho Ansichtssache... (Ist aber wahrscheinlich doch eleganter :))</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000176</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Wed, 22 Feb 2006 13:30:55 GMT</pubDate></item></channel></rss>