Mercurial > hg > svcore
comparison base/StringBits.h @ 629:35499d48a5d1
* Start overhauling CSV parser to associate purposes with columns en route to its guesses; add some string manipulation code
author | Chris Cannam |
---|---|
date | Thu, 15 Jul 2010 15:27:21 +0000 |
parents | |
children | 64ef24ebb19c |
comparison
equal
deleted
inserted
replaced
628:001db550bd48 | 629:35499d48a5d1 |
---|---|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ | |
2 | |
3 /* | |
4 Sonic Visualiser | |
5 An audio file viewer and annotation editor. | |
6 Centre for Digital Music, Queen Mary, University of London. | |
7 | |
8 This program is free software; you can redistribute it and/or | |
9 modify it under the terms of the GNU General Public License as | |
10 published by the Free Software Foundation; either version 2 of the | |
11 License, or (at your option) any later version. See the file | |
12 COPYING included with this distribution for more information. | |
13 */ | |
14 | |
15 /* | |
16 This is a modified version of a source file from the | |
17 Rosegarden MIDI and audio sequencer and notation editor. | |
18 This file copyright 2000-2010 Chris Cannam. | |
19 */ | |
20 | |
21 #ifndef _STRING_BITS_H_ | |
22 #define _STRING_BITS_H_ | |
23 | |
24 #include <QString> | |
25 #include <QStringList> | |
26 #include <QChar> | |
27 | |
28 class StringBits | |
29 { | |
30 public: | |
31 /** | |
32 * Convert a string to a double using basic "C"-locale syntax, | |
33 * i.e. always using '.' as a decimal point. We use this as a | |
34 * fallback when parsing files from an unknown source, if | |
35 * locale-specific conversion fails. Does not support e notation. | |
36 * If ok is non-NULL, *ok will be set to true if conversion | |
37 * succeeds or false otherwise. | |
38 */ | |
39 static double stringToDoubleLocaleFree(QString s, bool *ok = 0); | |
40 | |
41 /** | |
42 * Split a string at the given separator character, allowing | |
43 * quoted sections that contain the separator. If the separator | |
44 * is ' ', any (amount of) whitespace will be considered as a | |
45 * single separator. If the separator is another whitespace | |
46 * character such as '\t', it will be used literally. | |
47 */ | |
48 static QStringList splitQuoted(QString s, QChar separator); | |
49 | |
50 /** | |
51 * Split a string at the given separator character. If quoted is | |
52 * true, do so by calling splitQuoted (above). If quoted is | |
53 * false, use QString::split; if separator is ' ', use | |
54 * SkipEmptyParts behaviour, otherwise use KeepEmptyParts (this is | |
55 * analogous to the behaviour of splitQuoted). | |
56 */ | |
57 static QStringList split(QString s, QChar separator, bool quoted); | |
58 }; | |
59 | |
60 #endif |