<?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[Problem beim speichern eines JPG mit SaveToFile()]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe ein kleines Problem mit dem Speichern eines JPG. Ich benutze dazu SaveToFile(). Zuerst einmal der Code:</p>
<pre><code class="language-cpp">void SaveGraph (AnsiString info)
{
  AnsiString    FileName;

  TJPEGImage *jp = new TJPEGImage();

  //Pfad und Dateiname festlegen
  FileName =  PD.FileData.Reportpfad + PD.FileData.ReportFile;
  FileName += &quot;\\&quot; + info + &quot;.jpg&quot;;

  //Zu speichernden Bereich auswählen
  MainWin-&gt;Oszi-&gt;Refresh();
  MainWin-&gt;Oszi-&gt;Canvas-&gt;
      CopyRect(Rect(0, 0, MainWin-&gt;Oszi-&gt;Width, MainWin-&gt;Oszi-&gt;Height),
               MainWin-&gt;Canvas,
               Rect(MainWin-&gt;Oszi-&gt;Left,
                    MainWin-&gt;Oszi-&gt;Top,
                    MainWin-&gt;Oszi-&gt;Left + MainWin-&gt;Oszi-&gt;Width,
                    MainWin-&gt;Oszi-&gt;Top + MainWin-&gt;Oszi-&gt;Height)  );

  jp-&gt;Assign(MainWin-&gt;Oszi-&gt;Picture-&gt;Bitmap);

  try
    {
    jp-&gt;SaveToFile(FileName);
    }
  __finally
    {
    delete jp;
    }
}
</code></pre>
<p>Prinzipiell funktioniert alles, der Bereich des Bildschirmes den ich mit CopyRect auswähle wird als JPG gespeichert.<br />
Das Problem tritt auf wenn es den Pfad in FileName nicht gibt. Dann bleibt das Programm in der Zeile</p>
<pre><code class="language-cpp">jp-&gt;SaveToFile(Filename)
</code></pre>
<p>stehen....keine Fehlermeldung, keine Exception die ich abfangen könnte, nix geht mehr.<br />
Irgendwelche Vorschläge was ich machen könnte dass es nicht zum Absturz kommt?</p>
<p>Grüße,<br />
Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/89985/problem-beim-speichern-eines-jpg-mit-savetofile</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Jul 2026 18:35:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/89985.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Oct 2004 10:00:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 10:00:39 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe ein kleines Problem mit dem Speichern eines JPG. Ich benutze dazu SaveToFile(). Zuerst einmal der Code:</p>
<pre><code class="language-cpp">void SaveGraph (AnsiString info)
{
  AnsiString    FileName;

  TJPEGImage *jp = new TJPEGImage();

  //Pfad und Dateiname festlegen
  FileName =  PD.FileData.Reportpfad + PD.FileData.ReportFile;
  FileName += &quot;\\&quot; + info + &quot;.jpg&quot;;

  //Zu speichernden Bereich auswählen
  MainWin-&gt;Oszi-&gt;Refresh();
  MainWin-&gt;Oszi-&gt;Canvas-&gt;
      CopyRect(Rect(0, 0, MainWin-&gt;Oszi-&gt;Width, MainWin-&gt;Oszi-&gt;Height),
               MainWin-&gt;Canvas,
               Rect(MainWin-&gt;Oszi-&gt;Left,
                    MainWin-&gt;Oszi-&gt;Top,
                    MainWin-&gt;Oszi-&gt;Left + MainWin-&gt;Oszi-&gt;Width,
                    MainWin-&gt;Oszi-&gt;Top + MainWin-&gt;Oszi-&gt;Height)  );

  jp-&gt;Assign(MainWin-&gt;Oszi-&gt;Picture-&gt;Bitmap);

  try
    {
    jp-&gt;SaveToFile(FileName);
    }
  __finally
    {
    delete jp;
    }
}
</code></pre>
<p>Prinzipiell funktioniert alles, der Bereich des Bildschirmes den ich mit CopyRect auswähle wird als JPG gespeichert.<br />
Das Problem tritt auf wenn es den Pfad in FileName nicht gibt. Dann bleibt das Programm in der Zeile</p>
<pre><code class="language-cpp">jp-&gt;SaveToFile(Filename)
</code></pre>
<p>stehen....keine Fehlermeldung, keine Exception die ich abfangen könnte, nix geht mehr.<br />
Irgendwelche Vorschläge was ich machen könnte dass es nicht zum Absturz kommt?</p>
<p>Grüße,<br />
Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/636880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/636880</guid><dc:creator><![CDATA[JoKo]]></dc:creator><pubDate>Mon, 25 Oct 2004 10:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 11:18:47 GMT]]></title><description><![CDATA[<p>Warum prüfst Du nicht, ob das Verzeichnis bereits existiert und legst es notfalls an?</p>
<p>Siehe DirectoryExists und ForceDirectories.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/636942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/636942</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 25 Oct 2004 11:18:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 11:30:07 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Warum prüfst Du nicht, ob das Verzeichnis bereits existiert und legst es notfalls an?</p>
</blockquote>
<p>hilft in meinem Fall nicht wirklich: Das Zielverzeichnis wird vom Programm selbst zu einem früheren Zeitpunkt erstellt, existiert dann also sicher. Allerdings liegt dieses Verzeichnis auf einem Netzlaufwerk. Das Netzwerk als solches ist ab und zu ziemlich lahm. Das heisst in dem Moment wo ich die Datei speichern will, ist das Verzeichnis für das Programm nicht vorhanden. Auch das vorherige prüfen ob das Verzeichnis vorhanden ist, ist keine Sicherheit dass dies einen kurzen Moment später beim eigentlichen Zugriff immer noch so ist.</p>
<p>Eigentlich dachte ich, dass ich durch das Anwenden von try eben solche Fälle abfangen kann...</p>
<p>Grüße,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/636954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/636954</guid><dc:creator><![CDATA[JoKo]]></dc:creator><pubDate>Mon, 25 Oct 2004 11:30:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 11:56:12 GMT]]></title><description><![CDATA[<p>Na wenn try, dann so:</p>
<pre><code class="language-cpp">...
TJPEGImage *jp;
AnsiString FileName;

try
{
   jp = new TJPEGImage();

   try
   {
      jp-&gt;SaveToFile(FileName);
   }
   catch ( Exception &amp;E )
   {
         // shit happens
         MessageDlg(&quot;Fehler beim Speichern!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
   }
}
__finally
{
   if (jp) delete jp;
}

...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/636973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/636973</guid><dc:creator><![CDATA[F98]]></dc:creator><pubDate>Mon, 25 Oct 2004 11:56:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 12:18:23 GMT]]></title><description><![CDATA[<p>Jep, jetzt funktioniert das.</p>
<p><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="🙂"
    /> DANKE <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>Grüße,<br />
Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/637014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/637014</guid><dc:creator><![CDATA[JoKo]]></dc:creator><pubDate>Mon, 25 Oct 2004 12:18:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 16:43:53 GMT]]></title><description><![CDATA[<p>Ganz sicher, dass dein Problem damit behoben ist? Denn funktional gibt es keinen Unterschied zu deinem ursprünglichen Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/637290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/637290</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 25 Oct 2004 16:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 16:51:44 GMT]]></title><description><![CDATA[<p>Jansen schrieb:</p>
<blockquote>
<p>Ganz sicher, dass dein Problem damit behoben ist? Denn funktional gibt es keinen Unterschied zu deinem ursprünglichen Code.</p>
</blockquote>
<p>Ja, ich bin sicher. Es gibt einen funktionalen Unterschied: bei beinem ursprünglichen Code stürzt das Program ab, beim anderen nicht. Wenn ich absichtlich ein Verzeichnis angebe das nicht existiert, ist das jederzeit reproduzierbar.</p>
<p>Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/637295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/637295</guid><dc:creator><![CDATA[JoKo]]></dc:creator><pubDate>Mon, 25 Oct 2004 16:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim speichern eines JPG mit SaveToFile() on Mon, 25 Oct 2004 17:24:46 GMT]]></title><description><![CDATA[<p>JoKo schrieb:</p>
<blockquote>
<p>Wenn ich absichtlich ein Verzeichnis angebe das nicht existiert, ist das jederzeit reproduzierbar.</p>
</blockquote>
<p>Kann ich eben nicht nachvollziehen. Bei meinen Tests wird bei fehlerhaftem Pfad zuverlässig eine EFCreateError-Exception ausgelöst, die sich problemlos abfangen lässt. Und das unabhängig davon, ob catch oder __finally verwendet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/637321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/637321</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 25 Oct 2004 17:24:46 GMT</pubDate></item></channel></rss>