-
February 7th, 2011, 06:25 AM
#1
reading txt file. How do I FAST read the data?
Hi everybody
I wrote a program that reads from txt. But it takes to much time to read the data. My txt file contains following information:
=====Traces=====
10:18:18.176 -> 52 1 0 -1 -690 1000 0 100 0 690 1000 0 100
10:18:18.285 -> 52 1 0 -1 -490 1000 0 100 0 6904 1000 0 100
10:18:18.394 -> 52 1 0 -1 -690 1000 0 100 0 690 1000 0 100
...
I have to convert this numbers to integer. my function does it like this:
after I read the position of whitespaces
leerzeichen is an array that contains a position of whitespaces of the line(zeile).
...
Code:
ostringstream sLength,sType,sTimestamp,sX1,sX2,sY1,sY2,sZ1,sZ2,sDy1,sDy2,sConf1,sConf2;
for(i=0;i<sizeof(zeile);i++){ // TAKES TO MUCH TIME!!!
if(i>leerzeichen[1] && i<leerzeichen[2])
sLength<<zeile[i];
else if(i>leerzeichen[2] && i<leerzeichen[3])
sType<<zeile[i];
else if(i>leerzeichen[3] && i<leerzeichen[4])
sTimestamp<<zeile[i];
else if(i>leerzeichen[4] && i<leerzeichen[5])
sX1<<zeile[i];
else if(i>leerzeichen[5] && i<leerzeichen[6])
sX2<<zeile[i];
else if(i>leerzeichen[6] && i<leerzeichen[7])
sY1<<zeile[i];
else if(i>leerzeichen[7] && i<leerzeichen[8])
sY2<<zeile[i];
else if(i>leerzeichen[8] && i<leerzeichen[9])
sZ1<<zeile[i];
else if(i>leerzeichen[9] && i<leerzeichen[10])
sZ2<<zeile[i];
else if(i>leerzeichen[10] && i<leerzeichen[11])
sDy1<<zeile[i];
else if(i>leerzeichen[11] && i<leerzeichen[12])
sDy2<<zeile[i];
else if(i>leerzeichen[12] && i<leerzeichen[13])
sConf1<<zeile[i];
else if(i>leerzeichen[13])
sConf2<<zeile[i];
}
string temp=sLength.str();
t_length=atoi(temp.c_str());
temp=sType.str();
t_type=atoi(temp.c_str());
temp=sTimestamp.str();
t_timestamp=atoi(temp.c_str());
temp=sX1.str();
t_x1=atoi(temp.c_str());
temp=sX2.str();
t_x2=atoi(temp.c_str());
temp=sY1.str();
t_y1=atoi(temp.c_str());
temp=sY2.str();
t_y2=atoi(temp.c_str());
temp=sZ1.str();
t_z1=atoi(temp.c_str());
temp=sZ2.str();
t_z2=atoi(temp.c_str());
temp=sDy1.str();
t_dy1=atoi(temp.c_str());
temp=sDy2.str();
t_dy2=atoi(temp.c_str());
temp=sConf1.str();
t_conf1=atoi(temp.c_str());
temp=sConf2.str();
t_conf2=atoi(temp.c_str());
the problem is that sstream, it takes along time. How can i fix that problem? Any ideas?
Thank you
Last edited by diman65; February 7th, 2011 at 07:10 AM.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|