String Umwandlung beschleunigen
-
Hallo, habe hier eine umwandlung von Strings.
Es sind teilweise mehrere 10 tausend zeilen zu lesen und umzuwandeln, der bisherige code braucht dafür mehrere minuten...
das muss doch irgendwie scheller gehenjemand ne idee?
for (int linecounter = startline; (linecounter <= startline + counter) && (linecounter < filterbuffer.size()); linecounter++) { if(filterbuffer.at(linecounter)->getEnable()) { offset = filterbuffer.at(linecounter)->getOffset(); messagelength = filterbuffer.at(linecounter)->getMessageLength(); messagetype = filterbuffer.at(linecounter)->getMessageType(); if ((offset + messagelength + MESSAGETYPESIZE) > buffer->Length) { setprocesserror(errorcode::BUFFEREND,"", offset + messagelength + MESSAGETYPESIZE); break; } else { output = String::Concat(output, filterbuffer.at(linecounter)->getLinenum().ToString("D8")); //Print Linecounter output = String::Concat(output, " ", dataToHexString(true, offset,LENHEADER)); timediff = bytesToTime(offset + OFFSETTIME); output = String::Concat(output,printtimestring(startime, timediff)); output = String::Concat(output, " ", dataToHexString(!isMessageType(messagetype,CONFIGDATA), offset + OFFSETDATA , messagelength + MESSAGETYPESIZE - OFFSETDATA), "\n"); linesread++; } } if (messagetype == LASTLINE) break; }
-
Alles zu einem großen String zu machen mit Concat ist wohl das Problemchen.
Dafür gips glaube ich den StringBuilder.
-
volkard schrieb:
Alles zu einem großen String zu machen mit Concat ist wohl das Problemchen.
Dafür gips glaube ich den StringBuilder.
Hab ich auch vermutet
Danke, ich werd mir den StringBuilder gleich mal genauer anschaunEdit:
Hat das ganze wesentlich beschleunigt
vielen, vielen Dank