<?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[Datei speichern - ungewuenschtes Ende]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein kleines problem. wenn ich eine textdatei oeffne und speichere, kann es passieren, dass das allerletzte zeichen in der textdatei ein &quot;ganz komisches ist&quot; - ein rechteck, also ein steuerzeichen. wie kann ich das vermeiden?<br />
hier ist der code zum laden einer datei:</p>
<pre><code>bool open_file( char* filename_1 )
{
     ShowWindow( hEdit, SW_SHOW ); // mein Editfenster

     free(buffer);
     FILE *fz;
     int iFileSize;
     fz = fopen( filename_1, &quot;rb&quot;);
     if(fz != NULL)
     {
           fseek(fz, 0, SEEK_END);
           iFileSize = ftell(fz);
           buffer = (char*)malloc(iFileSize);
           fseek(fz, 0, SEEK_SET);
           fread(buffer, 1, iFileSize, fz);
           fclose(fz);
     }

     if( ( SendMessage( hEdit, WM_SETTEXT, NULL, (LPARAM)buffer ) ) == true )
     {
         return true;
     }
     else
     {
         return false;
     }
}
</code></pre>
<p>so, dann zum speichern</p>
<pre><code>bool save_file( char* filename_2 )
{
     FILE *fz;     
     int iLength;

     iLength = GetWindowTextLength(hEdit);
     free(buffer);
     buffer = (char*)malloc(iLength);

     GetWindowText(hEdit, buffer, iLength+1);

     fz = fopen( filename_2, &quot;wb&quot;);
     fwrite(buffer, 1, iLength, fz);
     fclose(fz);

     free(buffer);

     bSaved = true;
     return true;
}
</code></pre>
<p>ach ja, noch etwas. wie kann ich vermeiden, dass .exe dateien usw geoeffnet werden? der folgende code aus open_file() haut ja nicht hin:</p>
<pre><code>if( ( SendMessage( hEdit, WM_SETTEXT, NULL, (LPARAM)buffer ) ) == true )
     {
         return true;
     }
     else
     {
         return false;
     }
</code></pre>
<p>dnake<br />
gruesse</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149042/datei-speichern-ungewuenschtes-ende</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 21:47:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149042.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Jun 2006 16:11:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei speichern - ungewuenschtes Ende on Thu, 01 Jun 2006 16:11:44 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein kleines problem. wenn ich eine textdatei oeffne und speichere, kann es passieren, dass das allerletzte zeichen in der textdatei ein &quot;ganz komisches ist&quot; - ein rechteck, also ein steuerzeichen. wie kann ich das vermeiden?<br />
hier ist der code zum laden einer datei:</p>
<pre><code>bool open_file( char* filename_1 )
{
     ShowWindow( hEdit, SW_SHOW ); // mein Editfenster

     free(buffer);
     FILE *fz;
     int iFileSize;
     fz = fopen( filename_1, &quot;rb&quot;);
     if(fz != NULL)
     {
           fseek(fz, 0, SEEK_END);
           iFileSize = ftell(fz);
           buffer = (char*)malloc(iFileSize);
           fseek(fz, 0, SEEK_SET);
           fread(buffer, 1, iFileSize, fz);
           fclose(fz);
     }

     if( ( SendMessage( hEdit, WM_SETTEXT, NULL, (LPARAM)buffer ) ) == true )
     {
         return true;
     }
     else
     {
         return false;
     }
}
</code></pre>
<p>so, dann zum speichern</p>
<pre><code>bool save_file( char* filename_2 )
{
     FILE *fz;     
     int iLength;

     iLength = GetWindowTextLength(hEdit);
     free(buffer);
     buffer = (char*)malloc(iLength);

     GetWindowText(hEdit, buffer, iLength+1);

     fz = fopen( filename_2, &quot;wb&quot;);
     fwrite(buffer, 1, iLength, fz);
     fclose(fz);

     free(buffer);

     bSaved = true;
     return true;
}
</code></pre>
<p>ach ja, noch etwas. wie kann ich vermeiden, dass .exe dateien usw geoeffnet werden? der folgende code aus open_file() haut ja nicht hin:</p>
<pre><code>if( ( SendMessage( hEdit, WM_SETTEXT, NULL, (LPARAM)buffer ) ) == true )
     {
         return true;
     }
     else
     {
         return false;
     }
</code></pre>
<p>dnake<br />
gruesse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069700</guid><dc:creator><![CDATA[DZ]]></dc:creator><pubDate>Thu, 01 Jun 2006 16:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Datei speichern - ungewuenschtes Ende on Thu, 01 Jun 2006 17:15:55 GMT]]></title><description><![CDATA[<p>Wieso gibst du bei GetWindowText iLength+1 an?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069728</guid><dc:creator><![CDATA[cdlobster]]></dc:creator><pubDate>Thu, 01 Jun 2006 17:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to Datei speichern - ungewuenschtes Ende on Thu, 01 Jun 2006 18:50:31 GMT]]></title><description><![CDATA[<p>So das ganze mal nen Bissel ordentlicher <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="😉"
    /> Öhm... willst du nur bestimmte Filetypen zulassen oder was ?! Dann guck doch ob die letzten chars deines Pointers entsprechent sind...</p>
<pre><code class="language-cpp">bool open_file(LPCSTR lpszFilename)
{
    ShowWindow(hEdit, SW_SHOW);

    free(buffer);
    FILE* pFile = 0;
    int nFileSize = 0;
    pFile = fopen(lpszFilename, &quot;rb&quot;);

    if(!pFile)
        return false;

    fseek(pFile, 0, SEEK_END);
    nFileSize = ftell(pFile);
    buffer = (char*)malloc(nFileSize);
    fseek(pFile, 0, SEEK_SET);
    fread(buffer, 1, nFileSize, pFile);
    fclose(pFile);

    if((!SendMessage(hEdit, WM_SETTEXT, NULL, (LPARAM)buffer)))
        return false;

    return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1069761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069761</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 01 Jun 2006 18:50:31 GMT</pubDate></item><item><title><![CDATA[Reply to Datei speichern - ungewuenschtes Ende on Fri, 02 Jun 2006 17:34:11 GMT]]></title><description><![CDATA[<p>danke, das meiste klappt schon mal. nur:<br />
wenn ich bei GetWindowText( length+1 ) die eins nicht addiere, wird das letzte zeichen, falls es kein return ist, nicht geoeffnet. mit 1 klappts.<br />
wenn ich die textdatei aber mit einem leerzeichen beenden lasse, haut der mir ein sonderzeichen rein. wie kann ich das vermweiden? einfach alle returns am dateiende loeschen?<br />
danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1070225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1070225</guid><dc:creator><![CDATA[DZ]]></dc:creator><pubDate>Fri, 02 Jun 2006 17:34:11 GMT</pubDate></item></channel></rss>