<?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[Namen in eine Datei schreiben]]></title><description><![CDATA[<p>Hallo,</p>
<p>es geht um eine Automatisierungsaufgabe.</p>
<p>Ich habe einen Ordner der Nennt sich &quot;AppData&quot;.<br />
In diesem Ordner befinden sich mehrere Unterordner. (&quot;Ordner1&quot;,&quot;Ordner2&quot;,&quot;Ordner3&quot;).</p>
<p>Ich möchte jetzt eine kleine Consolenanwendung schreiben, hab zwar schon C++ in der Schule gehabt, doch ich kenne die Befehle für mein Vorhaben leider nicht und weiß nicht richtig wie ich rangehen soll.</p>
<p>Folgendes soll passieren.</p>
<p>Das Programm soll dann folgendes machen:</p>
<p>1. Im Ordner AppData alle Namen von den Ordnern in ein Array speichern.<br />
2. Eine Vorlage.nsi öffnen(bzw. als textdatei) und dort</p>
<p>!define PRODUCT_NAME &quot;VarName&quot;</p>
<p>VarName mit Ordner1 ersetzen.<br />
3. Als Ordner1.nsi speichern</p>
<p>Ich google jetzt schon längere Zeit doch ich weiß nicht wie ich die Namen der Unterordner bekommen soll und wie Ich &quot;VarName&quot; suchen und ersetzen soll?</p>
<p>Vielen Dank für eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/309313/namen-in-eine-datei-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 06:30:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/309313.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Oct 2012 12:41:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Fri, 19 Oct 2012 12:41:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>es geht um eine Automatisierungsaufgabe.</p>
<p>Ich habe einen Ordner der Nennt sich &quot;AppData&quot;.<br />
In diesem Ordner befinden sich mehrere Unterordner. (&quot;Ordner1&quot;,&quot;Ordner2&quot;,&quot;Ordner3&quot;).</p>
<p>Ich möchte jetzt eine kleine Consolenanwendung schreiben, hab zwar schon C++ in der Schule gehabt, doch ich kenne die Befehle für mein Vorhaben leider nicht und weiß nicht richtig wie ich rangehen soll.</p>
<p>Folgendes soll passieren.</p>
<p>Das Programm soll dann folgendes machen:</p>
<p>1. Im Ordner AppData alle Namen von den Ordnern in ein Array speichern.<br />
2. Eine Vorlage.nsi öffnen(bzw. als textdatei) und dort</p>
<p>!define PRODUCT_NAME &quot;VarName&quot;</p>
<p>VarName mit Ordner1 ersetzen.<br />
3. Als Ordner1.nsi speichern</p>
<p>Ich google jetzt schon längere Zeit doch ich weiß nicht wie ich die Namen der Unterordner bekommen soll und wie Ich &quot;VarName&quot; suchen und ersetzen soll?</p>
<p>Vielen Dank für eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262066</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Fri, 19 Oct 2012 12:41:28 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Fri, 19 Oct 2012 12:54:12 GMT]]></title><description><![CDATA[<p>Also, um alle Verzeichnisse/Dateien in einem Ordner aufzulisten, gibt es mehrere Möglichkeiten. Ein Beispiel wäre WinAPI (dann nur auf Windows kompilierbar), aber besser ist auf jeden Fall <a href="http://www.boost.org/doc/libs/1_51_0/libs/filesystem/doc/index.htm" rel="nofollow">Boost.Filesystem</a>.</p>
<p>Aber bis du Boost.Filesystem benutzt, lern doch erstmal wie Streams funktionieren, dazu holst du dir am besten ein gutes Buch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262072</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 19 Oct 2012 12:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Fri, 19 Oct 2012 13:17:44 GMT]]></title><description><![CDATA[<p>Das Problem ist es ist eine kleine für mich Praktikantenaufgabe und dafür ein Buch holen ist schlecht da es spätestens Dienstag fertig sein sollte. <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>Werde mir zwar jetzt am Wochenende versuchen die Grundlagen dazu anzueignen aber vll könnt ihr mir bis dahin ein bisschen helfen. Ich lerne für mich auch am besten indem ich Code verstehe und ihn dann anderweitig anwende.</p>
<p>Ich habe jetzt geschafft die Ordner auszulesen und in ein Vector zu speichern.<br />
Jetzt müsste ich nur noch wissen mit welcher Funktion ich eine Datei öffne und dort nach &quot;VarName&quot; suche und das mit den Daten aus dem &quot;Vector&quot; ersetze und dann Speichere.</p>
<p>Das habe ich bisher gemacht:</p>
<pre><code class="language-cpp">void directoryPrintAll(string m_dir=&quot;D:\\Pfad\\AppData\\&quot;)
	{
        unsigned long fs_size=0L;//Gesamte Verzeichnis-Groesse

        struct _finddata_t c_file;
        long hFile;
        string suchdir=&quot;*.*&quot;;//Alle Datei und Ordner anzeigen
        suchdir.insert(0,m_dir);

        if( (hFile = _findfirst( suchdir.c_str(), &amp;c_file )) == -1L ){
            //Nichts gefunden
            cout &lt;&lt;  &quot;Keine Dateien in diesem Verzeichnis!&quot; ;
        }else{

			//vektor erstellen
			vector &lt;string&gt; str_vector;
            //verzeichnisse zuerst anzeigen
           cout &lt;&lt; &quot;Aktuelles Verzeichnis: &quot; &lt;&lt;m_dir &lt;&lt; endl;
            do{
                fs_size+=c_file.size/1024;//groesse berechnen
                //=&gt;richtige verzeichnisse heraussuchen
                if (c_file.size==0 &amp;&amp; c_file.name[0]!= '.'){
                     // Ordnernamen in Vector speichern.
					str_vector.push_back(c_file.name);

                }
            }while( _findnext( hFile, &amp;c_file ) == 0 );
</code></pre>
<p>VIELEN LIEBEN DANK EUCH ALLEN!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262077</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Fri, 19 Oct 2012 13:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Fri, 19 Oct 2012 13:55:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &quot;boost/filesystem.hpp&quot;

int main()
{
	namespace fs = boost::filesystem3;
	std::vector&lt;std::string&gt; directory_names;

	// Zu 1.
	for( fs::directory_iterator it( &quot;C:\\AppDate\\&quot; ); it!=fs::directory_iterator(); ++it )
	{
		const fs::path absolute_path = it-&gt;path();

		if( fs::is_directory( absolute_path ) )
			directory_names.push_back( absolute_path.filename().string() );
	}

	// Zu 2.
	const std::string def = &quot;!define PRODUCT_NAME &quot;;
	for( std::vector&lt;std::string&gt;::iterator it=directory_names.begin(); it!=directory_names.end(); ++it)
	{
		std::string filename = *it+&quot;.nsi&quot;;
		std::ofstream file( filename.c_str() );
		file &lt;&lt; def &lt;&lt; *it;
	} // Zu 3.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2262084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262084</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 19 Oct 2012 13:55:26 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Fri, 19 Oct 2012 19:06:07 GMT]]></title><description><![CDATA[<p>Vielen lieben herzlichen Dank für deine Antwort OUT.</p>
<p>Also bis zu //2. ist es klar doch dann schalte ich irgendwie aus.</p>
<p>Hast du mir Online-Literatur zum file boost system?</p>
<pre><code class="language-cpp">#include &quot;boost/filesystem.hpp&quot;
</code></pre>
<p>muss ich diese Datei noch irgendwo besorgen oder hat Visual Studio die?</p>
<p>Wärst du so lieb und kannst mir erklären was hier passiert?</p>
<pre><code class="language-cpp">const std::string def = &quot;!define PRODUCT_NAME &quot;;
    for( std::vector&lt;std::string&gt;::iterator it=directory_names.begin(); it!=directory_names.end(); ++it)
    {
        std::string filename = *it+&quot;.nsi&quot;;
        std::ofstream file( filename.c_str() );
        file &lt;&lt; def &lt;&lt; *it;
    } // Zu 3.
</code></pre>
<p>Also das it dem filename ist mir klar, hier sagt er halt dass,das file.nsi so heisen soll.</p>
<p>aber mit &quot;file &lt;&lt; deff &lt;&lt; *it&quot; kann ich jetzt leider nichts anfangen. Es soll ja nur &quot;VarName&quot; mit &quot;Ordner1&quot; ersetzt werden.<br />
Danach kommt ja noch einiges an anderem code der ja unberührt bleiben soll.<br />
ich muss zwar später noch was anderes ersetzen doch das würde ich dann gern selber hinbekommen um etwas dabei zu lernen <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>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262161</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Fri, 19 Oct 2012 19:06:07 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Fri, 19 Oct 2012 19:47:49 GMT]]></title><description><![CDATA[<p>Hab hier zuhause leider kein Visual Studio da ich einen neuen Laptop habe(alter leider totalschaden) und ich noch nicht an der FH war um eine Studentenversion zu beommen.</p>
<pre><code class="language-cpp">ifstream myfile (&quot;vorlage.nsi&quot;);
 vector &lt;string&gt; vectorlines;

 if (myfile.is_open())
  {
    while ( myfile.good() )
    {
      getline (myfile,line);
      vectorlines.push_back(line);
    }
    myfile.close();

  // In Datei zurück schreiben
  ofstream datei(ordnernae1.&quot;.nsi&quot;, ios::app);

  for (int i = 0; i &lt;= vectorlines.size(), i++)
  {
	if (vectorlines[i] == &quot;!define PRODUCT_NAME \&quot;VarName\&quot;&quot;)
			vectorlines[i] == &quot;&quot;!define PRODUCT_NAME \&quot;&quot;.ordner1.&quot;\&quot;;

		datei &lt;&lt; vectorlines[i].&quot;\n&quot;;
		vectorlines.pop_back();
  }
  datei.close();
</code></pre>
<p>würde das so gehen?</p>
<p>Vielen Dank für eure Hilfe <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/2262176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262176</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Fri, 19 Oct 2012 19:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 08:15:33 GMT]]></title><description><![CDATA[<p>###error### schrieb:</p>
<blockquote>
<p>Hast du mir Online-Literatur zum file boost system?</p>
</blockquote>
<p><a href="http://www.boost.org/doc/libs/1_46_0/libs/filesystem/v3/doc/tutorial.html" rel="nofollow">boost</a> hat schon selbst etwas dazu, aber ob du da als Anfänger viel mit Anfangen kannst.</p>
<p>###error### schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &quot;boost/filesystem.hpp&quot;
</code></pre>
<p>muss ich diese Datei noch irgendwo besorgen oder hat Visual Studio die?</p>
</blockquote>
<p>Ne, da musst du dir den <a href="http://www.boostpro.com/download/" rel="nofollow">boost-Installer</a> für Windows runterladen.</p>
<p>###error### schrieb:</p>
<blockquote>
<p>Wärst du so lieb und kannst mir erklären was hier passiert?</p>
<pre><code class="language-cpp">const std::string def = &quot;!define PRODUCT_NAME &quot;;
    for( std::vector&lt;std::string&gt;::iterator it=directory_names.begin(); it!=directory_names.end(); ++it)
    {
        std::string filename = *it+&quot;.nsi&quot;;
        std::ofstream file( filename.c_str() );
        file &lt;&lt; def &lt;&lt; *it;
    } // Zu 3.
</code></pre>
</blockquote>
<p>Nagut, ich dachte die Datei ist am Anfang leer und wird nun erst nach Schritt 3 richtig mit Leben gefüllt. Dannkannst du den Code hier natürlich vergessen. Entsprechende Zeichen einer Datei ersetzten... weiß ich grad auf anhieb nicht, weils da immer Schwierigkeiten gibt. <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>###error### schrieb:</p>
<blockquote>
<pre><code class="language-cpp">ifstream myfile (&quot;vorlage.nsi&quot;);
 vector &lt;string&gt; vectorlines;
 
 if (myfile.is_open())
  {
    while ( myfile.good() )
    {
      getline (myfile,line);
      vectorlines.push_back(line);
    }
    myfile.close();

  
  // In Datei zurück schreiben
  ofstream datei(ordnernae1.&quot;.nsi&quot;, ios::app);
  
  for (int i = 0; i &lt;= vectorlines.size(), i++)
  {
	if (vectorlines[i] == &quot;!define PRODUCT_NAME \&quot;VarName\&quot;&quot;)
			vectorlines[i] == &quot;&quot;!define PRODUCT_NAME \&quot;&quot;.ordner1.&quot;\&quot;;
		
		datei &lt;&lt; vectorlines[i].&quot;\n&quot;;
		vectorlines.pop_back();
  }
  datei.close();
</code></pre>
<p>würde das so gehen?</p>
</blockquote>
<p>Ich verstehe nicht ganz. Was ist den <code>vorlage.nsi</code> ? Und wieso änderst du dann nur die Datei für einen Unterordner? Dachte es gibt für jeden Unterordner eine Datei? Ansonsten erklärst du vielleicht nochmal ganz genau die Aufgabe:D<br />
Ansonsten <code>myfile.good</code> , nimm mal lieber <code>myfile.fail</code> bzw nur <code>myfile</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262247</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 20 Oct 2012 08:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 08:55:46 GMT]]></title><description><![CDATA[<p>Hilft dir das hier eventuell mehr?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
using namespace std;

int main()
{

ifstream myfile (&quot;vorlage.nsi&quot;);  // Öffnet die Datei vorlage.nsi
vector&lt;string&gt;LineContainer;
string line;

while( ! myfile.eof() )
{
	getline(myfile,line);   // Datei Zeile für Zeile auslesen
	LineContainer.push_back( line );  // Ausgelesene Zeile in Vector speichern
}

for(unsigned i=0;i&lt;LineContainer.size();i++)
{
	cout&lt;&lt;LineContainer[i]&lt;&lt;&quot;\n&quot;;    // Daten aus Vector ausgeben
}

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2262250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262250</guid><dc:creator><![CDATA[_________________________]]></dc:creator><pubDate>Sat, 20 Oct 2012 08:55:46 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 09:05:25 GMT]]></title><description><![CDATA[<p>_________________________ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">while( ! myfile.eof() )
</code></pre>
</blockquote>
<p>out schrieb:</p>
<blockquote>
<p>Ansonsten <code>myfile.good</code> , nimm mal lieber <code>myfile.fail</code> bzw nur <code>myfile</code> .</p>
</blockquote>
<p>Das gilt vor allem für <code>eof</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262251</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 20 Oct 2012 09:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 09:10:41 GMT]]></title><description><![CDATA[<p>danke für eure antworten.</p>
<p>also mir ist ein dummer anfängerfehler passiert. strings mit == ergleichen geht ja garnicht <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="🙂"
    /> mit strcmp gehts dann <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>aufgabe sieht so aus:<br />
Ordnerstruktur:<br />
-Hauptordner<br />
----C++-Programm<br />
----vorlage.nsi<br />
----AppData<br />
------Ordner1<br />
-----------daten<br />
------Ordner2<br />
-----------daten</p>
<p>Ich brauch jetzt ein Programm das die vorlage.nsi öffnet (in der vorlage.nsi befindet sich ca 100 zeilen skript-code) dort den Eintrag &quot;!define PRODUCT_NAME \&quot;VarName\&quot; sucht und dort VarName mit Ordner1 ersetzt und dann das ganze im hauptordner unter ordnername1.nsi abspeichert.</p>
<p>die nsi macht etwas it den daten die in den ordnern liegen.<br />
es geht einfach um eine automatisierte abarbeitung der vorlage.nsi damit das nicht per han gemacht werden muss. es gibt nämlich mehrere dieser ordner.</p>
<p>ich muss in der nsi noch ein paar andere sachen abändern und das von hand bei sovielen sachen zu machen wäre sehr umständlich und die fehlerquelle ist groß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262254</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Sat, 20 Oct 2012 09:10:41 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 13:44:30 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iterator&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &quot;boost/filesystem.hpp&quot;

int main()
{
	using namespace std;
    namespace fs = boost::filesystem3;

    for( fs::directory_iterator it( &quot;AppData\\&quot; ); it!=fs::directory_iterator(); ++it )
    {
        const fs::path absolute_path = it-&gt;path();

        if( fs::is_directory( absolute_path ) )
		{
			ifstream in(&quot;vorlage.nsi&quot;);
			string vorlage_nsi( (istreambuf_iterator&lt;char&gt;(in)), (istreambuf_iterator&lt;char&gt;()) );

			const string search         = &quot;VarName&quot;;
			const unsigned pos          = vorlage_nsi.find( search );
			const string directory_name = absolute_path.filename().string();

			vorlage_nsi.replace( pos, search.length(), directory_name );

			ofstream out( &quot;AppData\\&quot;+directory_name+&quot;\\&quot;+directory_name+&quot;.nsi&quot; );
			out &lt;&lt; vorlage_nsi;
		}
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2262308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262308</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 20 Oct 2012 13:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 16:24:48 GMT]]></title><description><![CDATA[<p>boah vielen herzlichen dank, ich habs jetzt auch hinbekomme aber nicht so sauber <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>werde deine lösung übernehmen die gefällt mir besser.</p>
<p>ich verstehe eigentlich alles von dem code bis auf</p>
<pre><code class="language-cpp">string vorlage_nsi( (istreambuf_iterator&lt;char&gt;(in)), (istreambuf_iterator&lt;char&gt;()) );
</code></pre>
<p>was passiert bei istreambuf_iterator genau? ich hab nur englische literatur gefunden und verstehe das nicht so ganz. du erstelst eine string variable &quot;vorlage_nsi&quot; und übergibst ihr den kompletten inhalt von &quot;in&quot;. aber warum 2mal?</p>
<p>ich glaube damit kann man viele tolle sachen machen, wenn man das genau versteht.<br />
<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/2262344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262344</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Sat, 20 Oct 2012 16:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 16:27:54 GMT]]></title><description><![CDATA[<p>noch ne kleinigkeit, das programm ist dann schon auf rechner ohne installiertem boost,system ausführbar?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262348</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Sat, 20 Oct 2012 16:27:54 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 16:36:17 GMT]]></title><description><![CDATA[<p>das mit dem string constructor ist auch nicht 100% klar.. <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/2262350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262350</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Sat, 20 Oct 2012 16:36:17 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Sat, 20 Oct 2012 16:57:31 GMT]]></title><description><![CDATA[<p>###error### schrieb:</p>
<blockquote>
<p>das mit dem string constructor ist auch nicht 100% klar.. <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>Es gibt viele Varianten, den kompletten Inhalt einer Datei einzulesen. Viele sind schlecht, nur wenige sind gut. Deine <code>getline</code> -Variante gehört zu den schlechten. Du willst die komplette Datei einlesen, wieso sich also auf einzelne Zeilen konzentrieren, wieso nicht gleich die komplette Datei ins Auge fassen? Die <code>istreambuf_iterator</code> -Variante ist nicht nur die beliebteste, sondern auch die effizienteste (nach <code>istream::read</code> ). Du kannst damit locker eine 100 MB große Datei binnen Sekunden einlesen. Wie <code>istreambuf_iterator</code> unter der Haube funktioniert, ist eigentlich egal. Du musst nur wissen, dass damit alle Zeichen eines Streams sehr schnell wo abgespeichert werden können. Um welchen Stream es sich dabei handelt, sagst du, indem du dem Konstruktor ein Stream-Objekt übergibst. Natürlich muss das Iterieren irgendwann ein Ende haben. Ein default-konstruiertes <code>istreambuf_iterator&lt;char&gt;</code> -Objekt ( <code>istreambuf_iterator&lt;char&gt;()</code> ) bezeichnet deshalb das Ende eines Streams. Im Endeffekt also <code>std::string(Stream-Anfang, Stream-Ende)</code> .</p>
<p>###error### schrieb:</p>
<blockquote>
<p>noch ne kleinigkeit, das programm ist dann schon auf rechner ohne installiertem boost,system ausführbar?</p>
</blockquote>
<p>Ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262356</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 20 Oct 2012 16:57:31 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 08:13:31 GMT]]></title><description><![CDATA[<p>hallo nochmal,</p>
<p>ich habe jetzt ein problem, ich darf das boost system erst mal nicht installieren <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>habe es jetzt versucht so zu lösen, aber es knallt outstream da er str_vector[i] nicht in const char* umwandeln kann. warum auch immer <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>wenn ich das auskommentiere knallt er schon beim replace <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>
<pre><code class="language-cpp">int main(int _argc,char** _argv){

	    string m_dir=&quot;AppData\\&quot;;
	    unsigned long fs_size=0L; //Gesamte Verzeichnis-Groesse
        struct _finddata_t c_file;
        long hFile;
        string suchdir=&quot;*.*&quot;;//Alle Datei und Ordner anzeigen
        suchdir.insert(0,m_dir);
		string strVersionNr;

if( (hFile = _findfirst( suchdir.c_str(), &amp;c_file )) == -1L )
		{
			//Nichts gefunden
            cout &lt;&lt;  &quot;Keine Dateien in diesem Verzeichnis!&quot; &lt;&lt; endl; ;
        }
		else
		{
			//vektor erstellen
			vector &lt;string&gt; str_vector;

			//verzeichnisse zuerst anzeigen
            cout &lt;&lt; &quot;\n Aktuelles Verzeichnis: &quot; &lt;&lt;m_dir &lt;&lt; endl;
	        do{

				fs_size+=c_file.size/1024;//groesse berechnen
                //=&gt;richtige verzeichnisse heraussuchen
                if (c_file.size==0 &amp;&amp; c_file.name[0]!= '.')
				{
                     // cout &lt;&lt; &quot;[&quot; &lt;&lt; c_file.name &lt;&lt; &quot;]&quot;&lt;&lt;endl;
					str_vector.push_back(c_file.name);
                }
            } while( _findnext( hFile, &amp;c_file ) == 0 );

			for (int i = 0; i&lt;str_vector.size(); i++)
			{
				ifstream in(&quot;vorlage.nsi&quot;); 
				string vorlage_nsi( (istreambuf_iterator&lt;char&gt;(in)), (istreambuf_iterator&lt;char&gt;()) );

				const string search         = &quot;VarName&quot;; 
				const unsigned pos          = vorlage_nsi.find( search ); 

				 vorlage_nsi.replace( pos, search.length(), str_vector[i] ); 

	            ofstream out( str_vector[i]+&quot;.nsi&quot; );
		        out &lt;&lt; vorlage_nsi; 
			 } 
			_findclose(hFile);
		}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2262709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262709</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Mon, 22 Oct 2012 08:13:31 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 08:27:20 GMT]]></title><description><![CDATA[<p>hallo nochmal,</p>
<p>mir ist da was eingefallne und ich hab das jetzt so abgeändert:</p>
<pre><code class="language-cpp">vorlage_nsi.replace( pos, search.length(), str_vector[i] ); 

				 str_vector[i] = str_vector[i]+&quot;.nsi&quot;;

				 ofstream out( str_vector[i].c_str() );
</code></pre>
<p>aber beim replace knallt es:<br />
Unbehandelte Ausnahme bei 0x773c15de in nsi_creator.exe: Microsoft C++-Ausnahme: std::out_of_range an Speicherposition 0x0036f564..</p>
<p>was könnte da nur das problem sein? <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/2262716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262716</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Mon, 22 Oct 2012 08:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 08:35:08 GMT]]></title><description><![CDATA[<p>D.h., du benutzt irgendwo einen Index, der nicht erlaubt ist. <code>str_vector[i]</code> kann es wohl nicht sein, wegen <code>i&lt;str_vector.size();</code> . Dann kann es doch eig nur <code>pos</code> sein. Aber wirft das ein <code>out-of-range</code> . Ich weiß es nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262722</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 22 Oct 2012 08:35:08 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 09:31:37 GMT]]></title><description><![CDATA[<p>hmm ich glaube der hat die datei nicht gefunden. ich versuche mich gerade an meiner ersten version die zwar nicht so schön ist aber funktioniert bis auf</p>
<pre><code class="language-cpp">unsigned int pos = vectorlines[i].find(&quot;__VarName__&quot;);
</code></pre>
<p>wenn ich pos ausgeben lasse dann findet er immer bei pos. 4294967295 VarName und dann noch ab und zu bei pos 22, was richtig ist.</p>
<p>wenn ich die folgendes mache:</p>
<pre><code class="language-cpp">If( vectorlines[i].find(&quot;__VarName__&quot;) &gt;0 &amp;&amp; vectorlines[i].find(&quot;__VarName__&quot;) &lt; 10000)
unsigned int pos = vectorlines[i].find(&quot;__VarName__&quot;);
</code></pre>
<p>Das gleiche ist bei deinem Code aber auch <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/2262759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262759</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Mon, 22 Oct 2012 09:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 11:29:39 GMT]]></title><description><![CDATA[<p>###error### schrieb:</p>
<blockquote>
<p>wenn ich pos ausgeben lasse dann findet er immer bei pos. 4294967295 VarName und dann noch ab und zu bei pos 22, was richtig ist.</p>
</blockquote>
<p>4294967295 ist std::string::npos. Falls du das bekommst, dann enthält der string die gesuchte Zeichenkette nicht. Dann ist wohl der Aufbau deiner vorlage.nsi flasch. <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/2262822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262822</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 22 Oct 2012 11:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 11:39:05 GMT]]></title><description><![CDATA[<p>haha ne ich habs geschafft den nächsten anfänger fehler zu produzieren</p>
<pre><code class="language-cpp">for (int i....){
       for (int i.....) 
}
</code></pre>
<p>zweimal die gleiche variable ist wohl nicht. <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 hab jetzt ne lösung, die ist zwar nicht schön aber selten und funktioniert...</p>
<p>dennoch werde ich jetzt noch versuchen deine idee umzusetzen, da ich noch ein wenig zeit habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262827</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Mon, 22 Oct 2012 11:39:05 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 13:12:23 GMT]]></title><description><![CDATA[<p>###error### schrieb:</p>
<blockquote>
<p>haha ne ich habs geschafft den nächsten anfänger fehler zu produzieren</p>
<pre><code class="language-cpp">for (int i....){
       for (int i.....) 
}
</code></pre>
<p>zweimal die gleiche variable ist wohl nicht. <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>An sich schon, nur überdeckt das innere i das Äußere innerhalb der inneren for-Schleife.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262858</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 22 Oct 2012 13:12:23 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 13:58:51 GMT]]></title><description><![CDATA[<p>haha ja, das hat dann nicht gepasst... und hat dann ins leere geschrieben <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>also ich hab das jetzt hinbekommen, super sache.</p>
<p>aber jetzt stehe ich schon wieder vor einer hürde,<br />
ich weiß nicht nach was ich da suchen soll oder wie das geht.</p>
<p>Es werden ja .nsi Dateien erstellt die mit NSIS kompiliert werden. Normal geht man mit der rechten Maustaste auf die Datei und sagt dann mit NSIS kompilieren.</p>
<p>Kann ich das irgendwie in meinem Programm machen. Ich google mir schon die Finger wund nur find ich dazu nix.</p>
<p>Vielen Dank an euch alle ohne euch wäre ich komplett aufgeschmissen <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/2262883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262883</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Mon, 22 Oct 2012 13:58:51 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Mon, 22 Oct 2012 14:35:12 GMT]]></title><description><![CDATA[<p>ich denke dazu ist die funktion</p>
<p>ShellExecute(NULL, &quot;open&quot;, &lt;fully_qualified_path_to_folder&gt;, NULL, NULL, SW_SHOWNORMAL);</p>
<p>geeignet.</p>
<p>aber ich weiß nicht wie ich der funktion die exe und die datei übergeben soll <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/2262894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262894</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Mon, 22 Oct 2012 14:35:12 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Tue, 23 Oct 2012 06:27:00 GMT]]></title><description><![CDATA[<p>des teil macht mich verrückt</p>
<pre><code class="language-cpp">string ToOpenProg = DirContainer[i];
			ToOpenProg += string(+&quot;.nsi&quot;);

			ShellExecute(NULL,TEXT(&quot;open&quot;), ToOpenProg.c_str() ,TEXT(&quot;&quot;),NULL,SW_SHOW);
</code></pre>
<p>error C2664: 'ShellExecuteW': Konvertierung des Parameters 3 von 'const char *' in 'LPCWSTR' nicht möglich</p>
<p>Das ist doch sicher wieder irgend ein trick den ich nciht kenn <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>kann ich dem programm eigentlich auch sagen, mit welcher externen anwendung er die datei öffnen soll? ich find in google dazu nix <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/2263074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263074</guid><dc:creator><![CDATA[###error###]]></dc:creator><pubDate>Tue, 23 Oct 2012 06:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to Namen in eine Datei schreiben on Tue, 23 Oct 2012 07:52:25 GMT]]></title><description><![CDATA[<p>###error### schrieb:</p>
<blockquote>
<p>error C2664: 'ShellExecuteW': Konvertierung des Parameters 3 von 'const char *' in 'LPCWSTR' nicht möglich</p>
</blockquote>
<p>Darum benutze ich keine WinAPI, diese komichen Typnen da. :p Ich glaube, der will einen <code>const wchar_t*</code> , also nicht sowas <code>&quot;abc&quot;</code> , sondern sowas <code>L&quot;abc&quot;</code></p>
<p>###error### schrieb:</p>
<blockquote>
<p>kann ich dem programm eigentlich auch sagen, mit welcher externen anwendung er die datei öffnen soll? ich find in google dazu nix <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>Rechtklick - öffnen mit - immer das oder jenes? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263106</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Tue, 23 Oct 2012 07:52:25 GMT</pubDate></item></channel></rss>