<?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[Loggingprogramm- Loggingzeit und -Name ändern]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein Problem und hoffe hier ein paar Tips zu bekommen, da ich einfach kein Licht sehe...</p>
<p>Wir habe eine neue Wasserkraftanlage bekommen, die die Daten automaitsch aufnimmt (Wasserhöhe, Leistung usw.)<br />
Ich würde diese Daten gern auswerten. Dazu habe ich ein Programm gefunden, die .csv Daten visualisieren kann.<br />
Das aktuelle Programm gibt mir die Daten, die an einem Tag gesammelt werden in einer csv. datei aus. Jeden Tag eine neue.<br />
Nun würde ich gern das Programm soweit ändern, dass es mir eine Datei schreibt, in der die Daten fortlaufend (Jahresanfang bis Jahresende) aufgezeichnet werden um es besser auswerten zu können.<br />
Die Jahresdatei soll auch automatisch mit dem Namen z.B. 2012-Jahresdatei angelegt werden.<br />
Die Loggingabstände sollen variabel sein.</p>
<p>Nur finde ich die dementsprechenden Zeilen nicht, die geändert werden müssen... <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="😞"
    /></p>
<p>Das größte Problem ist erstmal, dass ich beim Programmieren nur die Grundkenntnisse in C habe/hatte. Leider fällt es mir zunächst schwer, das Programm einer Sprache zuzuordnen. Der größte Anteil dürfte wohl C++ sein. Leider sind auch viele Begriffe drin, die ich nicht finden kann (C/C++ Referenzbuch).</p>
<pre><code class="language-cpp">/*#include &quot;FileSystem.h&quot;*/
...

/* wenn in der nächsten Zeile &quot;0&quot; nach #if steht, KEIN LOGGING */
	#if 0
	static LONG LastLoggingTime = 0;
	/* -- Im Moment sind Vielfache von 1 sec Logging-Zeit eingestellt. -- */
	if( LastLoggingTime + tm_tickcount(  VariableLoggingTimeJahr * 1 * _sec_ ) &lt; tm_ticktime() )
	{
		FILEHANDLE File = NULL;
		char DatumBuffer[15];

   	    	char ZeitBuffer[15];
		char Filename[25];
		int Tag = 0, Monat = 0, Jahr = 0;
		BOOL NewFile = FALSE;

		/* -- Aufbau des Zeit- u. Datums-Strings -- */
		SystemDateToString( SysDatum, DatumBuffer, NULL );
		SystemTimeToString( SysZeit, ZeitBuffer, NULL, FALSE );

		sscanf( DatumBuffer, &quot;%d.%d.%d&quot;, &amp;Tag, &amp;Monat, &amp;Jahr );
		/* -- ev. Erstellen des Monatsverzeichnisses -- */
		sprintf( Filename, &quot;d:\\%04d-%02d&quot;, Jahr, Monat ); 
		sfs_mkdir( Filename );

		sprintf( Filename, &quot;d:\\%04d-%02d\\%04d-%02d-%02d.csv&quot;, Jahr,  Monat, Jahr, Monat, Tag );

		if( sfs_findfile(Filename) == 0 )
		{
			/* -- Keine Datei mit diesem Namen vorhande -- */
			NewFile = TRUE;
		}

		/* -- Bereitstellung der Datumsangaben für die SPS --*/ 
		Paneljahr = Jahr;     
		Panelmonat= Monat;    
		Paneltag = Tag;         
                UPDATE( Paneljahr );   
                UPDATE( Panelmonat );
                UPDATE( Paneltag );   
		/* -- Öffnen des Files -- */
		File = sfs_fopen( Filename, &quot;a&quot; );		
		if( File != NULL )		{
			char LoggingBuffer[100];
			short TempVariable1;
			...
			LONG TempVariableA;
			if( NewFile )
			{
			/* -- Zunächst Header in neue Datei schreiben -- */
   sprintf( LoggingBuffer, &quot;Datum;Zeit;Wasser;Öffnung;Leistung;Wehr;Leerschuss;RRM-Zyklen;kWh\r\n&quot;);
   sfs_fwrite( LoggingBuffer, 1, strlen( LoggingBuffer ), File ); 
				/* -- Loggingbuffer löschen -- */
				memset( &amp;LoggingBuffer, 0,  sizeof(LoggingBuffer) );  
			}			

			/* -- Aufbau des Zeit- u. Datums-Strings -- */
			/*SystemDateToString( SysDatum, DatumBuffer, NULL );*/
			SystemTimeToString( SysZeit, ZeitBuffer, NULL, FALSE );

			/* -- Skalierung der Variablen -- */
			TempVariable1 = Variable1 * 1;		/* Wasser */ 	
			...
			TempVariableA = VariableA / 100;		/* kWh */

			/* -- Schreiben des Logging-Strings in das File -- */
			/*ZeitBuffer[5] = '\0'; */
	sprintf( LoggingBuffer, &quot;%s;%s;%4d;%4d;%4d;%4d;%4d;%4d;%4d\r\n&quot;, 
									DatumBuffer, 
									ZeitBuffer, 									...							
                TempVariableA );
	sfs_fwrite( LoggingBuffer, 1, strlen( LoggingBuffer), File );
          }
	else
			printf( &quot;Fehler beim Öffnen des Files\n&quot; );

		/*FFS_fclose( File );*/
		sfs_fclose( File );

		/* -- Ablegen des letzten Loggings -- */
		LastLoggingTime = tm_ticktime();
	}
#else 
static LONG LastLoggingTime = 0;

	/* -- Im Moment sind Vielfache von 1 sec Logging-Zeit eingestellt. -- */
	if( LastLoggingTime + tm_tickcount(  VariableLoggingTimeJahr * 1 * _sec_ ) &lt; tm_ticktime() )
	{
		char DatumBuffer[15];
   	   	int Tag = 0, Monat = 0, Jahr = 0;

		/* -- Aufbau des Zeit- u. Datums-Strings -- */
		SystemDateToString( SysDatum, DatumBuffer, NULL );

		sscanf( DatumBuffer, &quot;%d.%d.%d&quot;, &amp;Tag, &amp;Monat, &amp;Jahr );
		/* -- Bereitstellung der Datumsangaben für die SPS --*/ 
		Paneljahr = Jahr;     
		...
        	UPDATE( Paneltag );  
		/* -- Ablegen des letzten Loggings -- */
		LastLoggingTime = tm_ticktime();
	}
		#endif
		return 0;
}
</code></pre>
<p>Warscheinlich ist´s total pippieinfach :p</p>
<p>Wäre echt überglücklich, wenn mir jemand helfen kann, ich komm einfach nicht weiter, weil ich auch nicht genau weiß, in welchem Programmiersprachenbuch ich noch weiter suchen kann... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295330/loggingprogramm-loggingzeit-und-name-ändern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 11:15:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295330.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Nov 2011 13:40:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Fri, 11 Nov 2011 13:40:00 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein Problem und hoffe hier ein paar Tips zu bekommen, da ich einfach kein Licht sehe...</p>
<p>Wir habe eine neue Wasserkraftanlage bekommen, die die Daten automaitsch aufnimmt (Wasserhöhe, Leistung usw.)<br />
Ich würde diese Daten gern auswerten. Dazu habe ich ein Programm gefunden, die .csv Daten visualisieren kann.<br />
Das aktuelle Programm gibt mir die Daten, die an einem Tag gesammelt werden in einer csv. datei aus. Jeden Tag eine neue.<br />
Nun würde ich gern das Programm soweit ändern, dass es mir eine Datei schreibt, in der die Daten fortlaufend (Jahresanfang bis Jahresende) aufgezeichnet werden um es besser auswerten zu können.<br />
Die Jahresdatei soll auch automatisch mit dem Namen z.B. 2012-Jahresdatei angelegt werden.<br />
Die Loggingabstände sollen variabel sein.</p>
<p>Nur finde ich die dementsprechenden Zeilen nicht, die geändert werden müssen... <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="😞"
    /></p>
<p>Das größte Problem ist erstmal, dass ich beim Programmieren nur die Grundkenntnisse in C habe/hatte. Leider fällt es mir zunächst schwer, das Programm einer Sprache zuzuordnen. Der größte Anteil dürfte wohl C++ sein. Leider sind auch viele Begriffe drin, die ich nicht finden kann (C/C++ Referenzbuch).</p>
<pre><code class="language-cpp">/*#include &quot;FileSystem.h&quot;*/
...

/* wenn in der nächsten Zeile &quot;0&quot; nach #if steht, KEIN LOGGING */
	#if 0
	static LONG LastLoggingTime = 0;
	/* -- Im Moment sind Vielfache von 1 sec Logging-Zeit eingestellt. -- */
	if( LastLoggingTime + tm_tickcount(  VariableLoggingTimeJahr * 1 * _sec_ ) &lt; tm_ticktime() )
	{
		FILEHANDLE File = NULL;
		char DatumBuffer[15];

   	    	char ZeitBuffer[15];
		char Filename[25];
		int Tag = 0, Monat = 0, Jahr = 0;
		BOOL NewFile = FALSE;

		/* -- Aufbau des Zeit- u. Datums-Strings -- */
		SystemDateToString( SysDatum, DatumBuffer, NULL );
		SystemTimeToString( SysZeit, ZeitBuffer, NULL, FALSE );

		sscanf( DatumBuffer, &quot;%d.%d.%d&quot;, &amp;Tag, &amp;Monat, &amp;Jahr );
		/* -- ev. Erstellen des Monatsverzeichnisses -- */
		sprintf( Filename, &quot;d:\\%04d-%02d&quot;, Jahr, Monat ); 
		sfs_mkdir( Filename );

		sprintf( Filename, &quot;d:\\%04d-%02d\\%04d-%02d-%02d.csv&quot;, Jahr,  Monat, Jahr, Monat, Tag );

		if( sfs_findfile(Filename) == 0 )
		{
			/* -- Keine Datei mit diesem Namen vorhande -- */
			NewFile = TRUE;
		}

		/* -- Bereitstellung der Datumsangaben für die SPS --*/ 
		Paneljahr = Jahr;     
		Panelmonat= Monat;    
		Paneltag = Tag;         
                UPDATE( Paneljahr );   
                UPDATE( Panelmonat );
                UPDATE( Paneltag );   
		/* -- Öffnen des Files -- */
		File = sfs_fopen( Filename, &quot;a&quot; );		
		if( File != NULL )		{
			char LoggingBuffer[100];
			short TempVariable1;
			...
			LONG TempVariableA;
			if( NewFile )
			{
			/* -- Zunächst Header in neue Datei schreiben -- */
   sprintf( LoggingBuffer, &quot;Datum;Zeit;Wasser;Öffnung;Leistung;Wehr;Leerschuss;RRM-Zyklen;kWh\r\n&quot;);
   sfs_fwrite( LoggingBuffer, 1, strlen( LoggingBuffer ), File ); 
				/* -- Loggingbuffer löschen -- */
				memset( &amp;LoggingBuffer, 0,  sizeof(LoggingBuffer) );  
			}			

			/* -- Aufbau des Zeit- u. Datums-Strings -- */
			/*SystemDateToString( SysDatum, DatumBuffer, NULL );*/
			SystemTimeToString( SysZeit, ZeitBuffer, NULL, FALSE );

			/* -- Skalierung der Variablen -- */
			TempVariable1 = Variable1 * 1;		/* Wasser */ 	
			...
			TempVariableA = VariableA / 100;		/* kWh */

			/* -- Schreiben des Logging-Strings in das File -- */
			/*ZeitBuffer[5] = '\0'; */
	sprintf( LoggingBuffer, &quot;%s;%s;%4d;%4d;%4d;%4d;%4d;%4d;%4d\r\n&quot;, 
									DatumBuffer, 
									ZeitBuffer, 									...							
                TempVariableA );
	sfs_fwrite( LoggingBuffer, 1, strlen( LoggingBuffer), File );
          }
	else
			printf( &quot;Fehler beim Öffnen des Files\n&quot; );

		/*FFS_fclose( File );*/
		sfs_fclose( File );

		/* -- Ablegen des letzten Loggings -- */
		LastLoggingTime = tm_ticktime();
	}
#else 
static LONG LastLoggingTime = 0;

	/* -- Im Moment sind Vielfache von 1 sec Logging-Zeit eingestellt. -- */
	if( LastLoggingTime + tm_tickcount(  VariableLoggingTimeJahr * 1 * _sec_ ) &lt; tm_ticktime() )
	{
		char DatumBuffer[15];
   	   	int Tag = 0, Monat = 0, Jahr = 0;

		/* -- Aufbau des Zeit- u. Datums-Strings -- */
		SystemDateToString( SysDatum, DatumBuffer, NULL );

		sscanf( DatumBuffer, &quot;%d.%d.%d&quot;, &amp;Tag, &amp;Monat, &amp;Jahr );
		/* -- Bereitstellung der Datumsangaben für die SPS --*/ 
		Paneljahr = Jahr;     
		...
        	UPDATE( Paneltag );  
		/* -- Ablegen des letzten Loggings -- */
		LastLoggingTime = tm_ticktime();
	}
		#endif
		return 0;
}
</code></pre>
<p>Warscheinlich ist´s total pippieinfach :p</p>
<p>Wäre echt überglücklich, wenn mir jemand helfen kann, ich komm einfach nicht weiter, weil ich auch nicht genau weiß, in welchem Programmiersprachenbuch ich noch weiter suchen kann... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143269</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 11 Nov 2011 13:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Fri, 11 Nov 2011 16:01:01 GMT]]></title><description><![CDATA[<p>C++ ist es 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>
<p>Das ist C und deswegen hier falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143326</guid><dc:creator><![CDATA[MichelRT]]></dc:creator><pubDate>Fri, 11 Nov 2011 16:01:01 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Fri, 11 Nov 2011 16:41:32 GMT]]></title><description><![CDATA[<p>Hier ist doch das C/C++ Forum, oder nicht?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143337</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 11 Nov 2011 16:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Fri, 11 Nov 2011 19:18:49 GMT]]></title><description><![CDATA[<p>drKnilch schrieb:</p>
<blockquote>
<p>Hier ist doch das C/C++ Forum, oder nicht?!</p>
</blockquote>
<p>Schau dir das Forum bitte genau an, es gibt passende Unterforen. Und du bist hier im Unterforum &quot;C++ (auch C++0x, bzw. C++11)&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143400</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 11 Nov 2011 19:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Fri, 11 Nov 2011 19:42:38 GMT]]></title><description><![CDATA[<p>Sorry, mein Fehler.<br />
<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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143408</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 11 Nov 2011 19:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Sat, 12 Nov 2011 07:21:59 GMT]]></title><description><![CDATA[<p>Was verstehst Du am obigen Code nicht?<br />
Mit grundlegenden C-Kenntnissen sollte das Abändern für Deine gewünschte Funktionalität kein Problem darstellen.</p>
<p>Außer dem #if 0 ... #else... #endif ist an dem Code nichts Ungewöhnliches.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143573</guid><dc:creator><![CDATA[MichelRT]]></dc:creator><pubDate>Sat, 12 Nov 2011 07:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Sat, 12 Nov 2011 08:46:18 GMT]]></title><description><![CDATA[<p>MichelRT schrieb:</p>
<blockquote>
<p>Was verstehst Du am obigen Code nicht?<br />
Mit grundlegenden C-Kenntnissen sollte das Abändern für Deine gewünschte Funktionalität kein Problem darstellen.</p>
<p>Außer dem #if 0 ... #else... #endif ist an dem Code nichts Ungewöhnliches.</p>
</blockquote>
<p>Das dachte ich eben auch. Aber dann bin ich auf eben diese von dir genannten Befehle und noch andere gestoßen, wo ich nicht mehr weiter kam:</p>
<p>sscanf( DatumBuffer, &quot;%d.%d.%d&quot;, &amp;Tag, &amp;Monat, &amp;Jahr );<br />
sfs_findfile(Filename) == 0 )<br />
sfs_mkdir( Filename );<br />
sfs_fclose( File )<br />
if( LastLoggingTime + tm_tickcount( VariableLoggingTimeJahr * 1 * _sec_ ) &lt; tm_ticktime() )<br />
sscanf( DatumBuffer, &quot;%d.%d.%d&quot;, &amp;Tag, &amp;Monat, &amp;Jahr );<br />
LastLoggingTime = tm_ticktime();</p>
<p>Die ich dann auch leider nirgends finden konnte um sie zu definieren... <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143593</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 12 Nov 2011 08:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Sat, 12 Nov 2011 09:15:27 GMT]]></title><description><![CDATA[<p>Du meinst die sfs_xxxx Funktionen?</p>
<p>Die findest Du vermutlich im &quot;filesystem.h&quot; <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2143601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143601</guid><dc:creator><![CDATA[MichelRT]]></dc:creator><pubDate>Sat, 12 Nov 2011 09:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to Loggingprogramm- Loggingzeit und -Name ändern on Mon, 14 Nov 2011 07:58:04 GMT]]></title><description><![CDATA[<p>Hm, das hab ich befürchtet,konnte ich da nämlich auch nicht erkennen... <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144218</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 Nov 2011 07:58:04 GMT</pubDate></item></channel></rss>