<?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[Unterschiedliche Dateien gleichen Namens verknüpfen?]]></title><description><![CDATA[<p>Hallo zusammen,<br />
Ich habe folgendes Problem:<br />
Ich habe eine nicht-rekursive Suchfunktion, die mir alle Dateien test*.txt ausgibt. Nachdem ich den Inhalt jeder gefundenen Datei auslesen lasse und mit einem String vergleiche, lösche ich bei erfolgreichem Vergleich die Datei (mit remove() Funktion).<br />
Soweit so gut, jetzt möchte ich aber eine Datei gleichen Namens test*.xyz automatisch mitlöschen lassen. D.h. immer wenn mein Vergleich Erfolg hat soll z.B. test3.txt und test3.xyz gemeinsam glöscht werden. Die Dateien liegen alle im gleichen Ordner, der Inhalt der Dateien ist jedoch vollkommen verschieden.<br />
Sollte Code gewünscht sein kann ich den gerne noch posten, aber vielleicht weiß ja auch so schon jemand eine Möglichkeit.</p>
<p>Thx</p>
<p>Nebenbei, dass ganze läuft als Konsolenanwendung auf einem W2K Rechner mit VS 2005 Prof.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181042/unterschiedliche-dateien-gleichen-namens-verknüpfen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 04:02:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181042.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 May 2007 12:58:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterschiedliche Dateien gleichen Namens verknüpfen? on Wed, 09 May 2007 12:58:18 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
Ich habe folgendes Problem:<br />
Ich habe eine nicht-rekursive Suchfunktion, die mir alle Dateien test*.txt ausgibt. Nachdem ich den Inhalt jeder gefundenen Datei auslesen lasse und mit einem String vergleiche, lösche ich bei erfolgreichem Vergleich die Datei (mit remove() Funktion).<br />
Soweit so gut, jetzt möchte ich aber eine Datei gleichen Namens test*.xyz automatisch mitlöschen lassen. D.h. immer wenn mein Vergleich Erfolg hat soll z.B. test3.txt und test3.xyz gemeinsam glöscht werden. Die Dateien liegen alle im gleichen Ordner, der Inhalt der Dateien ist jedoch vollkommen verschieden.<br />
Sollte Code gewünscht sein kann ich den gerne noch posten, aber vielleicht weiß ja auch so schon jemand eine Möglichkeit.</p>
<p>Thx</p>
<p>Nebenbei, dass ganze läuft als Konsolenanwendung auf einem W2K Rechner mit VS 2005 Prof.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281598</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Wed, 09 May 2007 12:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschiedliche Dateien gleichen Namens verknüpfen? on Wed, 09 May 2007 13:04:20 GMT]]></title><description><![CDATA[<p>Du hast doch den Dateinamen (als string, hoffe ich) -also mußt du nur noch die Dateiendung herausfinden (rfind('.')), ersetzen und den angepassten Dateinamen ebenfalls an remove() übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281611</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 09 May 2007 13:04:20 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschiedliche Dateien gleichen Namens verknüpfen? on Wed, 09 May 2007 14:15:04 GMT]]></title><description><![CDATA[<p>Das klingt zwar einfach, ich weiß aber überhaupt nicht an welcher Stelle ich rfind einsetzen soll. Ich vermut mal hier irgendwo:</p>
<pre><code class="language-cpp">//    Prototypen
void dirsearch(char[], const string&amp;, const string&amp;, vector&lt;string&gt;&amp;);
bool read_line(char[], const string&amp;, const string&amp;, string&amp;);
void loeschen (char[], const string&amp;, string&amp;, const string&amp;, const string&amp;);

//Auszug aus der main
...
dirsearch(root, inf, &quot;test*.*&quot;, files);

for(vector&lt;string&gt;::iterator p=files.begin();p!=files.end();++p) //in p 
  {
    if(read_line(root, inf, *p, line) == false)
    {
      cout &lt;&lt; ...
    }
    else
      {
        loeschen(root, inf, line, &quot;xyz&quot;, *p);
      }
  }
</code></pre>
<p>Ansonsten sag mir bitte welche Funktion du brauchst um mir zu helfen. Das mit dem ersetzen der Endung stellt mich auch vor Probleme, die übergabe sollte ich hinbekommen <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="😉"
    /> (hoffentlich)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281682</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Wed, 09 May 2007 14:15:04 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschiedliche Dateien gleichen Namens verknüpfen? on Thu, 10 May 2007 06:39:03 GMT]]></title><description><![CDATA[<p>Erstmal solltest du dazuschreiben, welche Bedeutung die einzelnen Parameter haben (die ersten beiden Funktionen kommen mir bekannt vor ;)).</p>
<p>Ansonsten:</p>
<pre><code class="language-cpp">string filename = &quot;C:\test.txt&quot;;
size_t p = filename.rfind('.');
if(p==string::npos)
  filename+=&quot;.xyz&quot;;//bisher keine Dateiendung - neue Endung anhängen
else
  filename.replace(p,string::npos,&quot;.xyz&quot;);//Ersetze bisherige Dateiendung
</code></pre>
<p>PS: Den ersten Parameter der Funktionen solltest du auch als (const) string&amp; übergeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282086</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 10 May 2007 06:39:03 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschiedliche Dateien gleichen Namens verknüpfen? on Thu, 10 May 2007 07:41:20 GMT]]></title><description><![CDATA[<blockquote>
<p>die ersten beiden Funktionen kommen mir bekannt vor</p>
</blockquote>
<p><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="😃"
    /> naja du beantwortest nicht zum ersten Mal eine meiner Fragen.</p>
<blockquote>
<p>Den ersten Parameter der Funktionen solltest du auch als (const) string&amp; übergeben</p>
</blockquote>
<p>Hab ich versucht, allerdings steckt da das Win Verzeichnis dahinter, welches ich mit</p>
<pre><code class="language-cpp">GetWindowsDirectory(root, MAX_PATH)
</code></pre>
<p>ermittle. Anscheinend lässt sich root dann nur als char Array übergeben, ansonsten hab ich noch keinen Weg gefunden.</p>
<p>Zu den Parametern/ Variablen:</p>
<pre><code>root = char root[MAX_PATH];     // Bsp. C:\Winnt
inf  = const string inf = &quot;\\Ordner\\&quot;;    //erklärt sich von selbst
line = string line;                 // Inhalt wird über getline() ermittelt 
files = vector&lt;string&gt; files;       // Dateiname wird darin gespeichert z.B. test.txt
</code></pre>
<p>Ich hab immer noch das Prob, dass ich nicht weiß an welcher Stelle ich das ganze einbauen 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="😞"
    /> Ich probier noch ein bisschen weiter, aber wäre auch sehr glücklich über eine Antwort, da ich mich jetzt schon länger damit bechäftige.<br />
Dankeschön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282125</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Thu, 10 May 2007 07:41:20 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschiedliche Dateien gleichen Namens verknüpfen? on Thu, 10 May 2007 07:52:59 GMT]]></title><description><![CDATA[<p>ITAzubi23 schrieb:</p>
<blockquote>
<blockquote>
<p>die ersten beiden Funktionen kommen mir bekannt vor</p>
</blockquote>
<p><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="😃"
    /> naja du beantwortest nicht zum ersten Mal eine meiner Fragen.</p>
<blockquote>
<p>Den ersten Parameter der Funktionen solltest du auch als (const) string&amp; übergeben</p>
</blockquote>
<p>Hab ich versucht, allerdings steckt da das Win Verzeichnis dahinter, welches ich mit</p>
<pre><code class="language-cpp">GetWindowsDirectory(root, MAX_PATH)
</code></pre>
<p>ermittle. Anscheinend lässt sich root dann nur als char Array übergeben, ansonsten hab ich noch keinen Weg gefunden.</p>
</blockquote>
<p>Versucht eine deiner Funktionen, GetWindowDirectory() aufzurufen? Soweit ich das in Erinnerung habe, gibst du das Wurzelverzeichnis von außen mit - und da ist es sicherer (und einfacher), einen string zu verwenden.</p>
<blockquote>
<p>Zu den Parametern/ Variablen:</p>
<pre><code>root = char root[MAX_PATH];     // Bsp. C:\Winnt
inf  = const string inf = &quot;\\Ordner\\&quot;;    //erklärt sich von selbst
line = string line;                 // Inhalt wird über getline() ermittelt 
files = vector&lt;string&gt; files;       // Dateiname wird darin gespeichert z.B. test.txt
</code></pre>
</blockquote>
<p>Vielleicht solltest du mir doch mal die loeschen()-Funktion zeigen. (vor allem, wozu benötigt sie die ganzen Parameter?)</p>
<blockquote>
<p>Ich hab immer noch das Prob, dass ich nicht weiß an welcher Stelle ich das ganze einbauen 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="😞"
    /> Ich probier noch ein bisschen weiter, aber wäre auch sehr glücklich über eine Antwort, da ich mich jetzt schon länger damit bechäftige.</p>
</blockquote>
<p>Ich würde der loeschen()-Funktion nur einen Parameter übergeben - den Namen der zu löschenden Datei (wenn es überhaupt nötig ist, dafür eine eigene Funktion zu schreiben).<br />
Und dann kannst du es so einbauen:</p>
<pre><code class="language-cpp">if(read_line(root, inf, *p, line) == false)
{
  cout &lt;&lt; ...
}
else
{
  remove(p-&gt;c_str());//Lösche .txt Datei

  //Namen der zweiten Datei zusammenbauen
  size_t p = p-&gt;rfind('.');
  if(p==string::npos)
    *p+=&quot;.xyz&quot;;
  else
    p-&gt;replace(p,string::npos,&quot;.xyz&quot;);

  remove(p-&gt;c_str());//Lösche zweite Datei
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1282133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282133</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 10 May 2007 07:52:59 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschiedliche Dateien gleichen Namens verknüpfen? on Thu, 10 May 2007 08:16:20 GMT]]></title><description><![CDATA[<p>Du wirst lachen, aber genau das probier ich gerade aus, trotzdem danke.<br />
Die Loeschfunktion hab ich nur ausgelagert, weil sie neben der remove Funktion auch eine switch Abfrage durchführt und einiges an Ausgaben macht(ich wollte das nicht alles in der main stehen haben).<br />
Ich meld mich wenns trotz Allem nicht läuft, ansonsten vielen Dank mal wieder CStoll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282158</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Thu, 10 May 2007 08:16:20 GMT</pubDate></item></channel></rss>