[Interest] String best practice

Konstantin Tokarev annulen at yandex.ru
Wed Mar 15 08:31:20 CET 2017



15.03.2017, 01:52, "Ch'Gans" <chgans at gna.org>:
> On 14 March 2017 at 22:43, Harald Vistnes <harald.vistnes at gmail.com> wrote:
>>  Hi,
>>
>>  I'm currently working on reading and parsing large ASCII based text files
>>  and I am wondering what is the current best practice. There are so many
>>  classes and macros available, so it can be a bit confusing to know what to
>>  use when.
>
> Can you define 'large', eg, 1MG, 1GB or 1TB?
>
>>  QString, QLatin1String, QByteArray, QStringLiteral, QLatin1Literal,
>>  QByteArrayLiteral, plain C++ string literal, QStringRef, QStringBuilder and
>>  so on. And then std::string and raw const char* strings.
>>
>>  In my case I want to read a large ASCII file line by line, so I don't need
>>  unicode. I need to compare a string with a literal, extract substrings and
>>  convert some strings to numbers.
>
> If you use QIODevice, you'll get data as QByteArray, which can be used
> for basic comparison, splitting, searching, substring extraction and
> to/from numbers.
>
>>  Should I just use QString all the way, or is it faster to use some other
>>  classes when you know you don't need unicode?
>>
>>  Any hints on fast file parsing code in Qt itself that I could use as a
>>  guildeline?
>
> I once used QRegularExpression for parsing text file that had a
> 'headache' file format, i was surprise by the velocity of the result,
> at least i was good enough for me. I mean certainly slower than plain
> C code using char*, but the code was so much easier to write, read and
> test.

re2c tool (that I mentioned before) generates such C code from your regular
expressions :)

>
> Chris
>
>>  Thanks,
>>  Harald
>>
>>  _______________________________________________
>>  Interest mailing list
>>  Interest at qt-project.org
>>  http://lists.qt-project.org/mailman/listinfo/interest
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest

-- 
Regards,
Konstantin



More information about the Interest mailing list