<?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[schreibschutz nach _access Anwendung]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich prüfe mit</p>
<pre><code>if (_access(Datei,00) == 0)
</code></pre>
<p>die Existenz einer Datei.<br />
Wenn ich diese nun mit <em>DeleteFile(Datei)</em> löschen möchte, funktioniert das nicht.</p>
<p>Was kann ich tun?</p>
<p>Gruß Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210478/schreibschutz-nach-_access-anwendung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 13:38:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210478.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Apr 2008 13:13:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 13:13:39 GMT]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich prüfe mit</p>
<pre><code>if (_access(Datei,00) == 0)
</code></pre>
<p>die Existenz einer Datei.<br />
Wenn ich diese nun mit <em>DeleteFile(Datei)</em> löschen möchte, funktioniert das nicht.</p>
<p>Was kann ich tun?</p>
<p>Gruß Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490333</guid><dc:creator><![CDATA[krug33]]></dc:creator><pubDate>Fri, 11 Apr 2008 13:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 13:18:26 GMT]]></title><description><![CDATA[<p>Vieleicht mal ein bisschen mehr Code zeigen und eventuelle Fehlermeldungen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490335</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Fri, 11 Apr 2008 13:18:26 GMT</pubDate></item><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 13:25:02 GMT]]></title><description><![CDATA[<p>Hm, auch wenn in der MSDN steht, dass der Rückgabewert 0 ist, wenn die Testbedingung erfüllt ist, wird in den Beispielcodes immer auf != -1 geprüft.<br />
Welchen Rückgabewert erhälst Du denn?<br />
Davon abgesehen, müsstest Du nicht auf Schreibrechte prüfen, statt auf Existenz, wenn Du die Datei löschen willst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490339</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 11 Apr 2008 13:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 13:28:21 GMT]]></title><description><![CDATA[<p>Fehlermeldungen gibt es direkt keine... ich hab mir selbst eine Abfrage gebastelt die mich darauf aufmerksam machen soll, dass eine Datei eventuell geöffnet ist und deshalb nicht gelöscht werden kann. Im Ganzen sieht das etwa so aus:</p>
<pre><code>while (goon)
{
  goon = false;
  bool jn = true;
  while (jn)
  {
    jn = false;
    if (_access(Datei,00) == 0)
    {
      if (DeleteFile(Datei) == 0)
      {
        cout&lt;&lt; &quot;Die Datei kann nicht überschrieben werden!\n&quot;;
        cout&lt;&lt; &quot;Wiederholen? [j,n]: &quot;;
        jn = janein();
        goon = true;
      }
    }
  }
}
</code></pre>
<p><em>janein()</em> ist eine Funktion, welche bei 'j' -&gt; true und bei 'n' -&gt; false zurück gibt.</p>
<p>Der Fehler ist:<br />
Wenn meine Datei vorhanden, aber nicht geöffnet ist, geht das Programm trotzdem in die 2. if-Abfrage (die mit dem DeleteFile), das sollte eigentlich nicht sein!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490341</guid><dc:creator><![CDATA[krug33]]></dc:creator><pubDate>Fri, 11 Apr 2008 13:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 13:34:56 GMT]]></title><description><![CDATA[<p>Nuja es gibt ja noch remove aus cstdio<br />
Rückgabewert ist wenns klappt 0, beim Fehler nicht 0</p>
<p>Bei DeleteFile ist das andersrum, must also == durch != ersetzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490346</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Fri, 11 Apr 2008 13:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 13:49:09 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>...Davon abgesehen, müsstest Du nicht auf Schreibrechte prüfen, statt auf Existenz, wenn Du die Datei löschen willst?</p>
</blockquote>
<p>Dass ich auf Existenz prüfe hat einen anderen Grund, dabei geht es nicht direkt ums Löschen.</p>
<p>Blaze schrieb:</p>
<blockquote>
<p>Nuja es gibt ja noch remove aus cstdio<br />
Rückgabewert ist wenns klappt 0, beim Fehler nicht 0</p>
<p>Bei DeleteFile ist das andersrum, must also == durch != ersetzen</p>
</blockquote>
<p>Aber genau das möchte ich ja, er soll in if gehn wenn das Löschen nicht funktioniert hat, also <em>DeleteFile(Datei) == 0</em> ... oder hab ich einen Denkfehler?</p>
<p>Vielleicht fällt Euch ja was besseres ein, ich denk da oft etwas kompliziert:<br />
Es geht darum dass ich mit dem Programm Dateien erzeuge, die bestimmte Dateinamen haben. Wenn ich eine solche Datei schoneinmal erzeugt habe kann ich diese nun überschreiben oder durch einen Index erweitern.</p>
<p>Beispiel:<br />
1. Programmdurchlauf -&gt; Ergebnisdatei.odb<br />
2. Programmdurchlauf -&gt; Ergebnisdatei(1).odb<br />
3. Programmdurchlauf -&gt; Ergebnisdatei(2).odb</p>
<p>Bei jedem Durchlauf werden die schon vorhandenen Ergebnisdateien aufgelisten und der Benutzer kann sich entscheiden ob er eine dieser Dateien überschreiben oder eine Datei mit einem neuen Index erstellen möchte.</p>
<p>Ich hab eine Prozedur geschrieben welche mir alle Indizes speichert und der Benutzer durch eine Nummernabfrage eine vorhandene Datei wählen oder einen neuen Index erzeugen kann. Diese liefert mir am Ende einen string in dem ein Dateiname drin steht. Dies kann also jetzt eine vorhandene oder eine neue Datei sein.<br />
Nun möchte ich prüfen ob die Datei vorhanden ist<br />
- wenn nein -&gt; kann ich normal weitermachen<br />
- wenn ja -&gt; möchte ich diese Datei löschen (siehe Code oben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490356</guid><dc:creator><![CDATA[krug33]]></dc:creator><pubDate>Fri, 11 Apr 2008 13:49:09 GMT</pubDate></item><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 13:53:18 GMT]]></title><description><![CDATA[<p>krug33 schrieb:</p>
<blockquote>
<p>oder hab ich einen Denkfehler?</p>
</blockquote>
<p>Ich glaube in der MSDN stand dass DeleteFile 0 zurückgibt wenn alles OK ist.<br />
d.h.</p>
<pre><code class="language-cpp">if (DeleteFile(Datei) != 0)
      {
        cout&lt;&lt; &quot;Die Datei kann nicht überschrieben werden!\n&quot;;
        cout&lt;&lt; &quot;Wiederholen? [j,n]: &quot;;
        jn = janein();
        goon = true;
      }
</code></pre>
<p>== durch != ersetzen, wie ich schonmal gesagt hab</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490359</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Fri, 11 Apr 2008 13:53:18 GMT</pubDate></item><item><title><![CDATA[Reply to schreibschutz nach _access Anwendung on Fri, 11 Apr 2008 14:01:00 GMT]]></title><description><![CDATA[<p>Blaze schrieb:</p>
<blockquote>
<p>== durch != ersetzen, wie ich schonmal gesagt hab</p>
</blockquote>
<p>Sorry, aber ich denke das stimmt nicht. Bei mir funktioniert</p>
<pre><code class="language-cpp">if (DeleteFile(Datei) == 0)
   cout&lt;&lt; &quot;Die Datei kann nicht überschrieben werden!\n&quot;;
   cout&lt;&lt; &quot;Wiederholen? [j,n]: &quot;;
   jn = janein();
   goon = true;
</code></pre>
<p>Habe meinen Fehler auch gefunden, lag wie so oft ganz wo anders.</p>
<p>Aber trotzdem Danke für die Hilfe...<br />
Schönes WE<br />
Gruß Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490363</guid><dc:creator><![CDATA[krug33]]></dc:creator><pubDate>Fri, 11 Apr 2008 14:01:00 GMT</pubDate></item></channel></rss>