<?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[Programm mit Datumsvergleich]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab da ein kleines Problem. Ich soll eine Messstation hier in Betrieb nehmen. Diese soll 24/7 laufen und um 0 Uhr die die Datei mit den Messdaten schließen und eine neue Datei anfangen.<br />
Ein Freund von mir (der jetzt für längere Zeit im Urlaub ist) hat mir was reingehackt, was aber leider nicht compiliert.</p>
<p>Ich poste mal den Code Ausschnitt, um den es geht:</p>
<pre><code>char dayWhenFileWasLastWritten[80];

	while ((timediff &lt; m_time) || m_time == 0)

	{
		time_t rawtime;
		time(&amp;rawtime);
		if (strftime(dayWhenFileWasLastWritten,80,&quot;%d&quot;,localtime (&amp;rawtime)) != dayWhenFileWasLastWritten) {
		//if (strftime(&quot;%d&quot;) != dayWhenFileWasLastWritten.c_str()) {
			errorcode = CAENVME_SetOutputRegister(Handle, Mask); // Sets the NIM Level of channel0 output to a logical 1 in order to prevent from any events being written to the QDC and the GPS Card.

			if (rawfile != null &amp;&amp; rawfile.is_open()) {
				rawfile.close();
			}
			ofstream rawfile(&quot;rawfile&quot; + strftime(dayWhenFileWasLastWritten,80,&quot;%Y-%m-%d&quot;,localtime (&amp;rawtime)) + &quot;.dat&quot;);
			//dayWhenFileWasLastWritten = strftime(&quot;%d&quot;);

			//strftime (dayWhenFileWasLastWritten,80,&quot;%d&quot;,localtime ( &amp;rawtime ));
			strftime(dayWhenFileWasLastWritten,80,&quot;%d&quot;,localtime (&amp;rawtime));

			errorcode1 = CAENVME_ReadCycle(Handle, clearreg, &amp;data, cvA24_U_DATA, cvD16);
			mbg_clr_ucap_buff(dh);
			errorcode = CAENVME_ClearOutputRegister(Handle, Mask); // Sets the NIM Level of channel0 output to a logical 0 in order to let events come through to the GPS Card and the QDC
		}
</code></pre>
<p>So, beim compilieren bekomme ich nun folgende Fehler:</p>
<pre><code>v265_j.cc:215: error: ISO C++ forbids comparison between pointer and integer
v265_j.cc:219: error: `null' undeclared (first use this function)
v265_j.cc:219: error: (Each undeclared identifier is reported only once for
   each function it appears in.)
v265_j.cc:219: error: request for member `is_open' in `rawfile', which is of
   non-aggregate type `std::ofstream ()()'
v265_j.cc:220: error: request for member `close' in `rawfile', which is of
   non-aggregate type `std::ofstream ()()'
v265_j.cc:222: error: invalid operands of types `const char*' and `const
   char[5]' to binary `operator+'
</code></pre>
<p>wobei Zeile 215 der Zeile der Zeile 8 oben im Code entspricht.</p>
<p>Es wär klasse, wenn ihr mir helfen könntet, denn für mich ist das eher chinesisch <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="🙄"
    /><br />
Ich würde auch was dafür zahlen (über Paypal z.B.), wenn mir jemand hilft, es erfolgreich zum Laufen zu bekommen.</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/276116/programm-mit-datumsvergleich</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 11:47:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276116.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Oct 2010 10:24:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm mit Datumsvergleich on Wed, 27 Oct 2010 10:24:29 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab da ein kleines Problem. Ich soll eine Messstation hier in Betrieb nehmen. Diese soll 24/7 laufen und um 0 Uhr die die Datei mit den Messdaten schließen und eine neue Datei anfangen.<br />
Ein Freund von mir (der jetzt für längere Zeit im Urlaub ist) hat mir was reingehackt, was aber leider nicht compiliert.</p>
<p>Ich poste mal den Code Ausschnitt, um den es geht:</p>
<pre><code>char dayWhenFileWasLastWritten[80];

	while ((timediff &lt; m_time) || m_time == 0)

	{
		time_t rawtime;
		time(&amp;rawtime);
		if (strftime(dayWhenFileWasLastWritten,80,&quot;%d&quot;,localtime (&amp;rawtime)) != dayWhenFileWasLastWritten) {
		//if (strftime(&quot;%d&quot;) != dayWhenFileWasLastWritten.c_str()) {
			errorcode = CAENVME_SetOutputRegister(Handle, Mask); // Sets the NIM Level of channel0 output to a logical 1 in order to prevent from any events being written to the QDC and the GPS Card.

			if (rawfile != null &amp;&amp; rawfile.is_open()) {
				rawfile.close();
			}
			ofstream rawfile(&quot;rawfile&quot; + strftime(dayWhenFileWasLastWritten,80,&quot;%Y-%m-%d&quot;,localtime (&amp;rawtime)) + &quot;.dat&quot;);
			//dayWhenFileWasLastWritten = strftime(&quot;%d&quot;);

			//strftime (dayWhenFileWasLastWritten,80,&quot;%d&quot;,localtime ( &amp;rawtime ));
			strftime(dayWhenFileWasLastWritten,80,&quot;%d&quot;,localtime (&amp;rawtime));

			errorcode1 = CAENVME_ReadCycle(Handle, clearreg, &amp;data, cvA24_U_DATA, cvD16);
			mbg_clr_ucap_buff(dh);
			errorcode = CAENVME_ClearOutputRegister(Handle, Mask); // Sets the NIM Level of channel0 output to a logical 0 in order to let events come through to the GPS Card and the QDC
		}
</code></pre>
<p>So, beim compilieren bekomme ich nun folgende Fehler:</p>
<pre><code>v265_j.cc:215: error: ISO C++ forbids comparison between pointer and integer
v265_j.cc:219: error: `null' undeclared (first use this function)
v265_j.cc:219: error: (Each undeclared identifier is reported only once for
   each function it appears in.)
v265_j.cc:219: error: request for member `is_open' in `rawfile', which is of
   non-aggregate type `std::ofstream ()()'
v265_j.cc:220: error: request for member `close' in `rawfile', which is of
   non-aggregate type `std::ofstream ()()'
v265_j.cc:222: error: invalid operands of types `const char*' and `const
   char[5]' to binary `operator+'
</code></pre>
<p>wobei Zeile 215 der Zeile der Zeile 8 oben im Code entspricht.</p>
<p>Es wär klasse, wenn ihr mir helfen könntet, denn für mich ist das eher chinesisch <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="🙄"
    /><br />
Ich würde auch was dafür zahlen (über Paypal z.B.), wenn mir jemand hilft, es erfolgreich zum Laufen zu bekommen.</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1971335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1971335</guid><dc:creator><![CDATA[hilikus]]></dc:creator><pubDate>Wed, 27 Oct 2010 10:24:29 GMT</pubDate></item><item><title><![CDATA[Reply to Programm mit Datumsvergleich on Thu, 28 Oct 2010 20:53:39 GMT]]></title><description><![CDATA[<p>Ich versuch mal mein Glück <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="😃"
    /></p>
<pre><code class="language-cpp">char dayWhenFileWasLastWritten[80];
if (strftime(dayWhenFileWasLastWritten,80,&quot;%d&quot;,localtime (&amp;rawtime)) != dayWhenFileWasLastWritten) { ...

// &gt;&gt;&gt; v265_j.cc:215: error: ISO C++ forbids comparison between pointer and integer
</code></pre>
<p>- in dayWhenFileWasLastWritten wird der aktuelle Tag geschrieben (heute 28)<br />
- der Rückgabewert von strftime ist die Länge des Strings (2 Zeichen)<br />
- nun wird 2 (typ size_t oder unsigned integer) mit dayWhenFileWasLastWritten (typ char*) verglichen, das geht natürlich nicht.<br />
- eventuell hilft hier die Funktion atoi(...)<br />
- Außerdem brauchst du den Rückgabetyp von strftime wohl eh nicht <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>
<pre><code class="language-cpp">if (rawfile != null &amp;&amp; rawfile.is_open()) {

// &gt;&gt;&gt; v265_j.cc:219: error: `null' undeclared (first use this function)
</code></pre>
<p>- null klein geschrieben gibts net. Muss NULL oder 0 sein.</p>
<pre><code class="language-cpp">if (rawfile != null &amp;&amp; rawfile.is_open()) {
                rawfile.close();
            }
/*
v265_j.cc:219: error: (Each undeclared identifier is reported only once for
   each function it appears in.)
v265_j.cc:219: error: request for member `is_open' in `rawfile', which is of
   non-aggregate type `std::ofstream ()()'
v265_j.cc:220: error: request for member `close' in `rawfile', which is of
   non-aggregate type `std::ofstream ()()'
*/
</code></pre>
<p>- rawfile wird erst in Zeile 15 definiert, kann also vorher noch nicht existieren</p>
<pre><code class="language-cpp">ofstream rawfile(&quot;rawfile&quot; + strftime(dayWhenFileWasLastWritten,80,&quot;%Y-%m-%d&quot;,localtime (&amp;rawtime)) + &quot;.dat&quot;);

// v265_j.cc:222: error: invalid operands of types `const char*' and `const  char[5]' to binary `operator+'
</code></pre>
<p>- strftime,wie oben schon genannt, liefert ein size_t zurück. Der Rest ist ein string. für + gibts hier keine Überladung. Außerdem macht es keinen Sinn, die Länge des gelieferten Tages im Dateinamen zu hinterlegen.</p>
<p>Die ideale Referenz für die Probleme:<br />
<a href="http://www.cplusplus.com/reference/clibrary/ctime/strftime/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/ctime/strftime/</a><br />
<a href="http://www.cplusplus.com/reference/iostream/ofstream/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ofstream/</a></p>
<p>Außerdem:<br />
- man sollte seinen Code nicht jedem anvertrauen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
- die Variable dayWhenFileWasLastWritten wird nicht reichen. du solltest noch eine currentDay einführen, die du dann mit dayWhenFileWasLastWritten vergleichst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1972145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1972145</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Thu, 28 Oct 2010 20:53:39 GMT</pubDate></item></channel></rss>