<?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[dat-File einlesen und untersuchen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage die bestimmt jemand beantworten kann. Ich möchte ein dat-File öffnen und die dort befindlichen Werte einlesen. Das habe ich bis jetzt noch nie getan. Problem ist das besonder Format. Eine Datei ist wie folgt aufgebaut:</p>
<pre><code class="language-cpp">Sensor-ID = 46
Beschreibung = E-total  SB 12159 (poly)
Faktor = 1
Offset = 0
startwert = 0
endwert = 1.2e+06
Anzahl Datensaetze = 82213
1072940640	01.01.2004 08:04:00	3354.16
1072940760	01.01.2004 08:06:00	3354.16
1072940880	01.01.2004 08:08:00	3354.16
1072941000	01.01.2004 08:10:00	3354.16
1072941120	01.01.2004 08:12:00	3354.16
1072941240	01.01.2004 08:14:00	3354.16
1072941360	01.01.2004 08:16:00	3354.16
1072941480	01.01.2004 08:18:00	3354.16
1072941600	01.01.2004 08:20:00	3354.16
1072941720	01.01.2004 08:22:00	3354.16
1072941840	01.01.2004 08:24:00	3354.16
1072941960	01.01.2004 08:26:00	3354.16
1072942080	01.01.2004 08:28:00	3354.16
1072942200	01.01.2004 08:30:00	3354.16
1072942320	01.01.2004 08:32:00	3354.16
1072942440	01.01.2004 08:34:00	3354.16
1072942560	01.01.2004 08:36:00	3354.16
1072942680	01.01.2004 08:38:00	3354.16
1072942800	01.01.2004 08:40:00	3354.16
1072942920	01.01.2004 08:42:00	3354.16
1072943040	01.01.2004 08:44:00	3354.16
1072943160	01.01.2004 08:46:00	3354.17
1072943280	01.01.2004 08:48:00	3354.17
1072943400	01.01.2004 08:50:00	3354.17
1072943520	01.01.2004 08:52:00	3354.17
1072943640	01.01.2004 08:54:00	3354.17
</code></pre>
<p>Die ersten 6 Zeilen sind nicht wichtig. Ich möchte aber den Rest einlesen oder auf einen bestimmten Wert zugreifen können.<br />
Das Erste ist die ID, die am Anfang steht. Danach folgt ein TAB-Einschub. Dann das Datum gefolgt von der Uhrzeit. Diese Daten sind sehr wichtig für mich. Getrennt sind diese durch ein Space. Im Anschlusss (auch sehr wichtig) der Wert. Mit einem TAB-Einschub vom Rest getrennt. Wie bekomme ich die Daden aus den einzelnen Zeilen gefiltert und den Index der Zeile?<br />
Bitte helft mir. Habt ihr ein Quelltextbeispiel?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197751/dat-file-einlesen-und-untersuchen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 16:36:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197751.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Nov 2007 13:12:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dat-File einlesen und untersuchen on Wed, 14 Nov 2007 13:12:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage die bestimmt jemand beantworten kann. Ich möchte ein dat-File öffnen und die dort befindlichen Werte einlesen. Das habe ich bis jetzt noch nie getan. Problem ist das besonder Format. Eine Datei ist wie folgt aufgebaut:</p>
<pre><code class="language-cpp">Sensor-ID = 46
Beschreibung = E-total  SB 12159 (poly)
Faktor = 1
Offset = 0
startwert = 0
endwert = 1.2e+06
Anzahl Datensaetze = 82213
1072940640	01.01.2004 08:04:00	3354.16
1072940760	01.01.2004 08:06:00	3354.16
1072940880	01.01.2004 08:08:00	3354.16
1072941000	01.01.2004 08:10:00	3354.16
1072941120	01.01.2004 08:12:00	3354.16
1072941240	01.01.2004 08:14:00	3354.16
1072941360	01.01.2004 08:16:00	3354.16
1072941480	01.01.2004 08:18:00	3354.16
1072941600	01.01.2004 08:20:00	3354.16
1072941720	01.01.2004 08:22:00	3354.16
1072941840	01.01.2004 08:24:00	3354.16
1072941960	01.01.2004 08:26:00	3354.16
1072942080	01.01.2004 08:28:00	3354.16
1072942200	01.01.2004 08:30:00	3354.16
1072942320	01.01.2004 08:32:00	3354.16
1072942440	01.01.2004 08:34:00	3354.16
1072942560	01.01.2004 08:36:00	3354.16
1072942680	01.01.2004 08:38:00	3354.16
1072942800	01.01.2004 08:40:00	3354.16
1072942920	01.01.2004 08:42:00	3354.16
1072943040	01.01.2004 08:44:00	3354.16
1072943160	01.01.2004 08:46:00	3354.17
1072943280	01.01.2004 08:48:00	3354.17
1072943400	01.01.2004 08:50:00	3354.17
1072943520	01.01.2004 08:52:00	3354.17
1072943640	01.01.2004 08:54:00	3354.17
</code></pre>
<p>Die ersten 6 Zeilen sind nicht wichtig. Ich möchte aber den Rest einlesen oder auf einen bestimmten Wert zugreifen können.<br />
Das Erste ist die ID, die am Anfang steht. Danach folgt ein TAB-Einschub. Dann das Datum gefolgt von der Uhrzeit. Diese Daten sind sehr wichtig für mich. Getrennt sind diese durch ein Space. Im Anschlusss (auch sehr wichtig) der Wert. Mit einem TAB-Einschub vom Rest getrennt. Wie bekomme ich die Daden aus den einzelnen Zeilen gefiltert und den Index der Zeile?<br />
Bitte helft mir. Habt ihr ein Quelltextbeispiel?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403051</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 14 Nov 2007 13:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to dat-File einlesen und untersuchen on Wed, 14 Nov 2007 13:44:59 GMT]]></title><description><![CDATA[<p>Liegen denn die Daten wie gezeigt im *.dat-File oder ist das schon eine interpretierte Variante von Binärdaten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403077</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Wed, 14 Nov 2007 13:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to dat-File einlesen und untersuchen on Wed, 14 Nov 2007 13:57:20 GMT]]></title><description><![CDATA[<p>Die Werte liegen wie dargestellt in dem *.dat-File. Es sind keine Binärwerte. Im Grunde würde ich jeden Wert gerne als AnsiString haben wollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403090</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 14 Nov 2007 13:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to dat-File einlesen und untersuchen on Wed, 14 Nov 2007 13:58:24 GMT]]></title><description><![CDATA[<p>Mit TStringList einlesen<br />
Jeden String in der Liste durchlaufen und mit SubStr zuerlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403091</guid><dc:creator><![CDATA[zerleger]]></dc:creator><pubDate>Wed, 14 Nov 2007 13:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to dat-File einlesen und untersuchen on Wed, 14 Nov 2007 14:00:11 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du kannst jede beliebige Textdatei unabhängig von der Dateiendung mit den üblichen Mitteln wie std::ifstream oder TStringList öffnen. Letzeres ist im Builder wohl die direkteste Variante um AnsiString zu bekommen. Siehe BCB-Hilfe, FAQ und Forumsuche hier im BCB-Forum zum Umgang mit TStringList.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403092</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 14 Nov 2007 14:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to dat-File einlesen und untersuchen on Wed, 14 Nov 2007 14:00:31 GMT]]></title><description><![CDATA[<p>Hi...</p>
<p>Also ich würde für die Daten eine Struktur anlegen und diese dann in einem<br />
Vector oder einer Liste speichern. Eine Map wäre vielleicht auch nicht schlecht<br />
hier könntest du die ID als Key verwenden und den Rest der daten als Value.</p>
<p>Hier mal ein Beispiel mit nem Vector:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
using namespace std;

//Struktur für die Daten
struct Data
{
	string id;
	string date;
	string time;
	string value;
};

int main(void){

	Data* dat;					   //Pointer auf die Daten-Struktur
	fstream file;					//Filestream
	string buffer;				   //Hilfsvariable
	vector&lt;Data*&gt; datalist;		  //Vector mit Pointern auf die Daten

	//Datei zum lesen öffnen
	file.open(&quot;data.dat&quot;, ios::in);

	//Wenn öffnen erfolgreich 
	if (file.good()){

		//Die ersten 7 Zeilen überspringen
		for (int i=0;i&lt;7;++i){
			getline(file,buffer);
		}

		//Daten in die Struktur lesen und in den Vector packen
		while(file&gt;&gt;buffer){
			dat = new Data;
			dat-&gt;id = buffer;
			file&gt;&gt;dat-&gt;date;
			file&gt;&gt;dat-&gt;time;
			file&gt;&gt;dat-&gt;value;
			datalist.push_back(dat);
		}	
	}
}
</code></pre>
<p>In dem Beispiel sind alle Daten als string angelegt, müsstest du dann eventuell<br />
während des einlesens noch in deine gewünschten Datentypen umwandeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403094</guid><dc:creator><![CDATA[smilingman]]></dc:creator><pubDate>Wed, 14 Nov 2007 14:00:31 GMT</pubDate></item><item><title><![CDATA[Reply to dat-File einlesen und untersuchen on Wed, 14 Nov 2007 14:04:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich würde das so machen.</p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; str_vect;
std::string tstr;
std::ifstream ein(&quot;data.dat&quot;);
while( getline(ein, tstr)) str_vect.push_back(tstr);
size_t count(str_vect.size());
if( count &lt; 8 )
{
// Fehlerbehandlung
} else
{
  std::stringstream str;
  std::string s1, dat1, dat2;
  double d1;
  for( size_t i=6; i&lt;count; ++i)
  {
    str.str(str_vect[i]);
    str &gt;&gt; s1 &gt;&gt; dat1 &gt;&gt; dat2 &gt;&gt; d1; //jetzt kannst du mit deinen Daten irgendwas machen
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1403098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403098</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 14 Nov 2007 14:04:18 GMT</pubDate></item></channel></rss>