P
Was ich genau mache..
Ich habe eine Datei, hier ein Auschnitt:
04.01.2010 06:45:54:187 2 RS232Communicator 0x69C CxFrame MainThread Info: Steuer Modul: strBarcode = 0100140226581691,lFPSyncID=9,lDruckenEin = 1,lUseStempelversatz=0,lPrintStempelVersatz = 0,lPrintPorto = 1,lPrintDate = 0,strKlische = ,strSI1=04,strSI2=05,strSI3=2,lLeistungNr=0 () 578C1AA9-89EC-413E-B9EF-DBC225B90384
04.01.2010 06:45:54:187 2 RS232Communicator 0x7BC --- <<Data Received: Frankier Modul: Frankier Modul, Lenght 8: NO END 578C1AA9-89EC-413E-B9EF-DBC225B90384
04.01.2010 06:45:54:203 2 RS232Communicator 0x7BC --- <<Data Received: Frankier Modul: Frankier Modul, Lenght 14:0x04 0x02 0x01 0x04 0x00 0x00 0x06 0x00 0x37 0x3b 0x30 0x3b 0x07 0x03 ) 578C1AA9-89EC-413E-B9EF-DBC225B90384
in dieser Datei sind ungefähr 1.2 Mio Zeilen.
Ich suche in der Datei eigentlich nur nach dem string "strBarcode ="
Dies geschieht folgendermassen:
#include <string>
#include <fstream>
#include <time.h>
.....
...
std::ifstream infile("input.txt");
if( infile.is_open()/*&& outfile.is_open()*/ )
{
std::string strLine;
std::cout << "searching..." << std::endl << std::endl;
time (&start);
while( std::getline(infile, strLine) )
{
if (strLine.find(strSearchStringUPOC)!=std::string::npos)
{
Dies dauerte 30s.
Ich war mit den 30s eigentlich recht zufrieden ach ja und die Harddisk ist eigentlich recht flott. Gibt es denn noch was schnelleres als getline/find?
Edit: Das mit den 30 s war Debug Code, mit dem Release Code geht nur noch 9 s
Gruss