<?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[Textfile Phänomen]]></title><description><![CDATA[<p>Hi zusammen</p>
<p>Ich bin mir nicht sicher, ob das hier schon ins Unix-Forum gehört. Es geht um die C++ fstream-Klasse auf einem Embedded Unix Rechner.</p>
<p>Mein CGI-Skript fwrap schreibt und liest Dateien in meinem Filesystem und wird über POST/GET Parameter gesteuert. Die betreffende File sieht in etwa so aus:</p>
<blockquote>
<p>administrator:ad97210f51130101665e72c2d9498a3a<br />
norbert:3095dbfcb9273218857172b1e75e7cd5<br />
othmar:ad97210f51130101665e72c2d9498a3a<br />
teddy:57c2877c1d84c4b49f3289657deca65c</p>
</blockquote>
<p>Nun soll mein CGI-Skript einen Text anfügen:</p>
<pre><code class="language-cpp">ofstream ofs;
   ofs.open(getPostParam(strQueryString, &quot;strFile&quot;).c_str(), ios_base::app | ios_base::binary);
   ofs &lt;&lt; getPostParam(strQueryString, &quot;strData&quot;);
   ofs.close();
</code></pre>
<p>Öffne ich die Datei mit WinSCP, ist alles perfekt (habe z.B. einen neuen User &quot;pascal&quot; angelegt:</p>
<blockquote>
<p>administrator:ad97210f51130101665e72c2d9498a3a<br />
norbert:3095dbfcb9273218857172b1e75e7cd5<br />
othmar:ad97210f51130101665e72c2d9498a3a<br />
teddy:57c2877c1d84c4b49f3289657deca65c<br />
pascal:57c2877c1d84c4b49f3289657deca65c</p>
</blockquote>
<p>Liest aber mein CGI-Skript die Datei mit folgenden paar Codezeilen aus:</p>
<pre><code class="language-cpp">ifstream ifs;
   ifs.open(getPostParam(strQueryString, &quot;strFile&quot;).c_str(), ios_base::in | ios_base::binary);
   string strIn;
   while (ifs.good())
   {
      getline(ifs, strIn, '\n');
      cout &lt;&lt; strIn &lt;&lt; '\n';
   }
   ifs.close();
</code></pre>
<p>So zeigt mein Browser das hier an:</p>
<blockquote>
<p>administrator:ad97210f51130101665e72c2d9498a3a<br />
norbert:3095dbfcb9273218857172b1e75e7cd5<br />
othmar:ad97210f51130101665e72c2d9498a3a<br />
teddy:57c2877c1d84c4b49f3289657deca65c0</p>
</blockquote>
<p>Besonder die zusätzliche '0' am Ende des Hashwertes ist mir verdächtig. (ios_base::binary habe ich übrigens testeshalber hinzugefügt, ohne habe ich genau denselben Effekt)</p>
<p>Öffne ich die Datei mit WinSCP (wo sie ja, wie gesagt, korrekt angezeigt wird), füge ein Leerzeichen an, lösche dieses wieder und speichere die Datei mit WinSCP, so wird die Datei nun auch von meinem CGI Skript und im Browser korrekt angezeigt (mitsamt dem neuen Eintrag).</p>
<p>Ich gehe also davon aus, dass ich beim Schreiben etwas falsch mache. Nur was?</p>
<p>Danke für eure Hilfe und beste Grüsse<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187336/textfile-phänomen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 16:05:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187336.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Jul 2007 15:49:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Textfile Phänomen on Wed, 18 Jul 2007 15:49:41 GMT]]></title><description><![CDATA[<p>Hi zusammen</p>
<p>Ich bin mir nicht sicher, ob das hier schon ins Unix-Forum gehört. Es geht um die C++ fstream-Klasse auf einem Embedded Unix Rechner.</p>
<p>Mein CGI-Skript fwrap schreibt und liest Dateien in meinem Filesystem und wird über POST/GET Parameter gesteuert. Die betreffende File sieht in etwa so aus:</p>
<blockquote>
<p>administrator:ad97210f51130101665e72c2d9498a3a<br />
norbert:3095dbfcb9273218857172b1e75e7cd5<br />
othmar:ad97210f51130101665e72c2d9498a3a<br />
teddy:57c2877c1d84c4b49f3289657deca65c</p>
</blockquote>
<p>Nun soll mein CGI-Skript einen Text anfügen:</p>
<pre><code class="language-cpp">ofstream ofs;
   ofs.open(getPostParam(strQueryString, &quot;strFile&quot;).c_str(), ios_base::app | ios_base::binary);
   ofs &lt;&lt; getPostParam(strQueryString, &quot;strData&quot;);
   ofs.close();
</code></pre>
<p>Öffne ich die Datei mit WinSCP, ist alles perfekt (habe z.B. einen neuen User &quot;pascal&quot; angelegt:</p>
<blockquote>
<p>administrator:ad97210f51130101665e72c2d9498a3a<br />
norbert:3095dbfcb9273218857172b1e75e7cd5<br />
othmar:ad97210f51130101665e72c2d9498a3a<br />
teddy:57c2877c1d84c4b49f3289657deca65c<br />
pascal:57c2877c1d84c4b49f3289657deca65c</p>
</blockquote>
<p>Liest aber mein CGI-Skript die Datei mit folgenden paar Codezeilen aus:</p>
<pre><code class="language-cpp">ifstream ifs;
   ifs.open(getPostParam(strQueryString, &quot;strFile&quot;).c_str(), ios_base::in | ios_base::binary);
   string strIn;
   while (ifs.good())
   {
      getline(ifs, strIn, '\n');
      cout &lt;&lt; strIn &lt;&lt; '\n';
   }
   ifs.close();
</code></pre>
<p>So zeigt mein Browser das hier an:</p>
<blockquote>
<p>administrator:ad97210f51130101665e72c2d9498a3a<br />
norbert:3095dbfcb9273218857172b1e75e7cd5<br />
othmar:ad97210f51130101665e72c2d9498a3a<br />
teddy:57c2877c1d84c4b49f3289657deca65c0</p>
</blockquote>
<p>Besonder die zusätzliche '0' am Ende des Hashwertes ist mir verdächtig. (ios_base::binary habe ich übrigens testeshalber hinzugefügt, ohne habe ich genau denselben Effekt)</p>
<p>Öffne ich die Datei mit WinSCP (wo sie ja, wie gesagt, korrekt angezeigt wird), füge ein Leerzeichen an, lösche dieses wieder und speichere die Datei mit WinSCP, so wird die Datei nun auch von meinem CGI Skript und im Browser korrekt angezeigt (mitsamt dem neuen Eintrag).</p>
<p>Ich gehe also davon aus, dass ich beim Schreiben etwas falsch mache. Nur was?</p>
<p>Danke für eure Hilfe und beste Grüsse<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327903</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Wed, 18 Jul 2007 15:49:41 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Phänomen on Wed, 18 Jul 2007 16:38:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::ifstream input_stream(getPostParam(strQueryString, &quot;strFile&quot;).c_str(), std::ios::in | std::ios::binary);

/*if (!input_stream)
    return false;*/

std::string string_line;
while (std::getline(input_stream, string_line))
    std::cout &lt;&lt; string_line &lt;&lt; std::endl;
</code></pre>
<p>... wobei mir nicht ganz ersichtlich ist, warum du <strong>binär</strong> ließt ... aber einen std::string rausholst ...</p>
<p><strong>Edit</strong><br />
Unnötigen Teil als Kommentar markiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327926</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 18 Jul 2007 16:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Phänomen on Wed, 18 Jul 2007 22:33:00 GMT]]></title><description><![CDATA[<p>Okay, das macht den Code schon einmal einen Zacken eleganter :), thx!</p>
<p>Mein Problem löst das allerdings noch nicht. Einträge, die über mein Programm geschrieben wurden, werden wiederum von meinem Programm immer noch nicht angezeigt. Mit dem WinSCP Editor hingegen ist der Eintrag drinnen - genau dort und genau so wie er sein soll.</p>
<p>Die zusätzliche 0 fehlt nun beim Auslesen übers CGI - der letzte, übers CGI gemachte Eintrag aber leider 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/1328129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328129</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Wed, 18 Jul 2007 22:33:00 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Phänomen on Wed, 18 Jul 2007 22:45:10 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>... wobei mir nicht ganz ersichtlich ist, warum du <strong>binär</strong> ließt ... aber einen std::string rausholst ...</p>
</blockquote>
<p>Wie gesagt, war nur zum Testen. Ein Versuch aus purer Verzweiflung, könnte man sagen <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>
<p>Habe aber mit oder ohne binary exakt denselben Effekt / dasselbe Problem...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328131</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Wed, 18 Jul 2007 22:45:10 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Phänomen on Thu, 19 Jul 2007 06:20:08 GMT]]></title><description><![CDATA[<p>KessiMC schrieb:</p>
<blockquote>
<p>Mein Problem löst das allerdings noch nicht. Einträge, die über mein Programm geschrieben wurden, werden wiederum von meinem Programm immer noch nicht angezeigt. Mit dem WinSCP Editor hingegen ist der Eintrag drinnen - genau dort und genau so wie er sein soll.</p>
</blockquote>
<p>Dann zeig doch mal, wie du die Zeile hinzufügst <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/1328168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328168</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 19 Jul 2007 06:20:08 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Phänomen on Thu, 19 Jul 2007 11:13:39 GMT]]></title><description><![CDATA[<p>Etwa so <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>KessiMC schrieb:</p>
<blockquote>
<p>Hi zusammen<br />
Nun soll mein CGI-Skript einen Text anfügen:</p>
<pre><code class="language-cpp">ofstream ofs;
   ofs.open(getPostParam(strQueryString, &quot;strFile&quot;).c_str(), ios_base::app | ios_base::binary);
   ofs &lt;&lt; getPostParam(strQueryString, &quot;strData&quot;);
   ofs.close();
</code></pre>
</blockquote>
<p>Bzw. seit (D)Evils Tip so:</p>
<pre><code class="language-cpp">ofstream ofs(getPostParam(strQueryString, &quot;strFile&quot;).c_str(), ios_base::app);
   ofs &lt;&lt; getPostParam(strQueryString, &quot;strData&quot;);
   ofs.close();
</code></pre>
<p>Ist eigentlich auch nicht so wichtig, in beiden Fällen wird der Text, den ich so über's CGI schreibe, beim erneuten Auslesen über's CGI nicht angezeigt. Öffne ich das File aber mit dem im WinSCP integrierten Editor, ist die neue Zeile da. Speichere ich das File dann mit WinSCP (indem ich z.B. einen Space hinzufüge und gleich wieder lösche), so zeigt auch mein CGI-Programm beim Auslesen alle Zeilen an.</p>
<p>Ach ja, getPostParam liefert übrigens einen std::string zurück...</p>
<p>Thx soweit und greeetz<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328406</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Thu, 19 Jul 2007 11:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Phänomen on Thu, 19 Jul 2007 11:21:50 GMT]]></title><description><![CDATA[<p>Könnte das vielleicht an den Zeilenumbrüchen liegen? Gibt ja \r\n und \n, in Linux (glaubich) nur \n. Bin mir nicht sicher, aber ist es aufm Mac nur \r?<br />
Egal, öffne die Textdatei doch mal in einem Hex-Editor und guck dir die Zeilenumbrüche an. Nach 0x0A und 0x0D musst du Ausschau halten; guck mal wie die Datei aussieht, bei der das Einlesen fehlschlägt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328418</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 19 Jul 2007 11:21:50 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Phänomen on Thu, 19 Jul 2007 14:25:40 GMT]]></title><description><![CDATA[<p>omfg genau das war's <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 habe den \r \n im Programm, das mein CGI-Programm aufruft durch einen \n ersetzt und alles läuft paletti <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>
<p>Thx in alle Richtungen und beste greeetz<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328632</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Thu, 19 Jul 2007 14:25:40 GMT</pubDate></item></channel></rss>