<?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[Typen-Probleme]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich bin leider noch nicht allzu bewandert in C++ und lege mir gerade ein wenig die Karten. Ich habe eine Log-Datei, welche ich zeilenweise einlese. An einer bestimmten Stelle steht immer ein Datum. Dieses will ich auslesen und in einen Timestamp umrechnen.</p>
<p>Leider bekomme ich immer nur eine -1 als Ergebniss von mktime()<br />
Die jeweilgen Teile des Datums werden korrekt ausgelesen und ausgegeben.<br />
Wo liegt mein Denkfehler?</p>
<p>Codeausschnitt</p>
<pre><code>char chrLogFile[100];
char chrLogFileRow[4096];
time_t rawtime;
struct tm * testzeit;

LogFile.getline(chrLogFileRow,4096,'\n');
cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i &lt;&lt; &quot;: &quot; &lt;&lt; chrLogFileRow &lt;&lt; endl;

// timestamp der zeile bilden
testzeit = localtime(&amp;rawtime);

testzeit-&gt;tm_mday=chrLogFileRow[20] &lt;&lt; chrLogFileRow[21] &lt;&lt; chrLogFileRow[22] &lt;&lt; chrLogFileRow[23];
cout &lt;&lt; &quot;jahr &quot; &lt;&lt; chrLogFileRow[20] &lt;&lt; chrLogFileRow[21] &lt;&lt; chrLogFileRow[22] &lt;&lt; chrLogFileRow[23] &lt;&lt; endl;

testzeit-&gt;tm_mon=5;

testzeit-&gt;tm_mday=chrLogFileRow[8] &lt;&lt; chrLogFileRow[9];
cout &lt;&lt; &quot;tag &quot; &lt;&lt; chrLogFileRow[8] &lt;&lt; chrLogFileRow[9] &lt;&lt; endl;

testzeit-&gt;tm_hour=chrLogFileRow[11] &lt;&lt; chrLogFileRow[12];
cout &lt;&lt; &quot;stunde &quot; &lt;&lt; chrLogFileRow[11] &lt;&lt; chrLogFileRow[12] &lt;&lt; endl;

testzeit-&gt;tm_min=chrLogFileRow[14] &lt;&lt; chrLogFileRow[15];
cout &lt;&lt; &quot;Minute &quot; &lt;&lt; chrLogFileRow[14] &lt;&lt; chrLogFileRow[15] &lt;&lt; endl;

testzeit-&gt;tm_sec=chrLogFileRow[17] &lt;&lt; chrLogFileRow[18];
cout &lt;&lt; &quot;Sekunde &quot; &lt;&lt; chrLogFileRow[17] &lt;&lt; chrLogFileRow[18] &lt;&lt; endl;

cout &lt;&lt; mktime(testzeit) &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/184461/typen-probleme</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 22:21:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184461.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jun 2007 13:10:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typen-Probleme on Fri, 15 Jun 2007 13:10:07 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich bin leider noch nicht allzu bewandert in C++ und lege mir gerade ein wenig die Karten. Ich habe eine Log-Datei, welche ich zeilenweise einlese. An einer bestimmten Stelle steht immer ein Datum. Dieses will ich auslesen und in einen Timestamp umrechnen.</p>
<p>Leider bekomme ich immer nur eine -1 als Ergebniss von mktime()<br />
Die jeweilgen Teile des Datums werden korrekt ausgelesen und ausgegeben.<br />
Wo liegt mein Denkfehler?</p>
<p>Codeausschnitt</p>
<pre><code>char chrLogFile[100];
char chrLogFileRow[4096];
time_t rawtime;
struct tm * testzeit;

LogFile.getline(chrLogFileRow,4096,'\n');
cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i &lt;&lt; &quot;: &quot; &lt;&lt; chrLogFileRow &lt;&lt; endl;

// timestamp der zeile bilden
testzeit = localtime(&amp;rawtime);

testzeit-&gt;tm_mday=chrLogFileRow[20] &lt;&lt; chrLogFileRow[21] &lt;&lt; chrLogFileRow[22] &lt;&lt; chrLogFileRow[23];
cout &lt;&lt; &quot;jahr &quot; &lt;&lt; chrLogFileRow[20] &lt;&lt; chrLogFileRow[21] &lt;&lt; chrLogFileRow[22] &lt;&lt; chrLogFileRow[23] &lt;&lt; endl;

testzeit-&gt;tm_mon=5;

testzeit-&gt;tm_mday=chrLogFileRow[8] &lt;&lt; chrLogFileRow[9];
cout &lt;&lt; &quot;tag &quot; &lt;&lt; chrLogFileRow[8] &lt;&lt; chrLogFileRow[9] &lt;&lt; endl;

testzeit-&gt;tm_hour=chrLogFileRow[11] &lt;&lt; chrLogFileRow[12];
cout &lt;&lt; &quot;stunde &quot; &lt;&lt; chrLogFileRow[11] &lt;&lt; chrLogFileRow[12] &lt;&lt; endl;

testzeit-&gt;tm_min=chrLogFileRow[14] &lt;&lt; chrLogFileRow[15];
cout &lt;&lt; &quot;Minute &quot; &lt;&lt; chrLogFileRow[14] &lt;&lt; chrLogFileRow[15] &lt;&lt; endl;

testzeit-&gt;tm_sec=chrLogFileRow[17] &lt;&lt; chrLogFileRow[18];
cout &lt;&lt; &quot;Sekunde &quot; &lt;&lt; chrLogFileRow[17] &lt;&lt; chrLogFileRow[18] &lt;&lt; endl;

cout &lt;&lt; mktime(testzeit) &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1306578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306578</guid><dc:creator><![CDATA[Poscht]]></dc:creator><pubDate>Fri, 15 Jun 2007 13:10:07 GMT</pubDate></item><item><title><![CDATA[Reply to Typen-Probleme on Fri, 15 Jun 2007 14:48:40 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich glaube dir fehlen noch ein paar grundsätzliche C/C++ - Kenntnisse.</p>
<p>Mittels</p>
<pre><code class="language-cpp">testzeit-&gt;tm_mday=chrLogFileRow[8] &lt;&lt; chrLogFileRow[9];
</code></pre>
<p>führst du eine SHFIT-Operation durch und das Ergebnis wird wohl dann außerhalb eines gültigen Datums liegen, so daß mktime korrekterweise -1 zurückliefert.</p>
<p>Du hast ja in 'testzeit' schon ein gültiges Datum, also lösche einfach alle die oben genannten Zeilen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306641</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 15 Jun 2007 14:48:40 GMT</pubDate></item><item><title><![CDATA[Reply to Typen-Probleme on Sun, 17 Jun 2007 21:11:43 GMT]]></title><description><![CDATA[<blockquote>
<p>ich glaube dir fehlen noch ein paar grundsätzliche C/C++ - Kenntnisse.</p>
</blockquote>
<p>Ja, aber das hatte ich ja geschrieben. <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>
<blockquote>
<p>Du hast ja in 'testzeit' schon ein gültiges Datum, also lösche einfach alle die oben genannten Zeilen.</p>
</blockquote>
<p>Leider nicht dass, welches ich brauche.</p>
<p>Diese Zeile ist nur von einem meiner Tests noch im Code erhalten geblieben.</p>
<pre><code>testzeit = localtime(&amp;rawtime);
</code></pre>
<p>Wie bereits geschrieben lese ich eine Datei zeilenweise ein.<br />
Jede Zeile landet in 'chrLogFileRow'. Am Anfang dieser Zeile steht immer ein Datum, welches ich umrechnen möchte.</p>
<p>Ich hatte gedacht, mit der folgende Zeile kann ich die 4 Zahlen des Jahres der Struktur zuweise.</p>
<blockquote>
<p>testzeit-&gt;tm_mday=chrLogFileRow[20] &lt;&lt; chrLogFileRow[21] &lt;&lt; chrLogFileRow[22] &lt;&lt; chrLogFileRow[23];</p>
</blockquote>
<p>Der Operator '&lt;&lt;' ist aber, wie du schreibst, der falsche.<br />
Wie kann ich die 4 Zeichen verknüpfen und in die Struktur packen?</p>
<p>Oder ist mein Ansatz falsch und soll ich per substr() gleich 4 Zeichen ausschneiden?</p>
<p>Fragt sich ratlos Poscht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308041</guid><dc:creator><![CDATA[Poscht]]></dc:creator><pubDate>Sun, 17 Jun 2007 21:11:43 GMT</pubDate></item><item><title><![CDATA[Reply to Typen-Probleme on Mon, 18 Jun 2007 11:06:09 GMT]]></title><description><![CDATA[<p>Ja, der Ansatz ist falsch. Die Variablen in der struct tm sind ints. Du mußt hier also die Zeichen ausschneiden und dann in einen int umwandeln. So z.Bsp.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html" rel="nofollow">FAQ Einmal Zahl nach String und zurück</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308255</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 18 Jun 2007 11:06:09 GMT</pubDate></item><item><title><![CDATA[Reply to Typen-Probleme on Mon, 18 Jun 2007 10:44:00 GMT]]></title><description><![CDATA[<p>Perfekt, vielen Dank für den Hinweis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308279</guid><dc:creator><![CDATA[Poscht]]></dc:creator><pubDate>Mon, 18 Jun 2007 10:44:00 GMT</pubDate></item></channel></rss>