String trimmed und split
-
Was meinst du mit "zu groß" ? Das es die Größe deines Programms erhöht?
-
Wie kann eine Lib zu groß sein? Und selbst wenn du eine Definition dafür findest, wie kann die dann auf Boost zutreffen, aber nicht auf Qt?
-
Ja eben weil auch Qt zu groß ist haben wir uns umentscheiden das anders zu machen.
Ich hab die Lösung aber jetzt selbst gefunden, trimmed() brauch ich nicht mehr und für split() hab ich was eigenes gemacht.
-
Bitte antworte doch auch noch einmal auf Boost und das Thema zu groß. Würde mich jetzt sehr interessieren...
(Falls du es nicht merkst: Du wirst hier gerade in eine Falle gelockt. Wenn du hineinfällst, lernst du vielleicht etwas über Boost)
-
Ok, ich gebe zu noch nicht wirklich was mit Boost gemacht zu haben, und habe die Vorstellung das man die komplette Lib braucht bzw. mitliefern muss.

Wahrscheinlich liege ich aber falsch, und es wird nur das benutzt was man braucht und man hat somit nicht die komplette Lib von z.B. 150MB dabei sondern nur 1MB?
Das ist wichtig weil eben auf einer DVD nur begrenzt Platz ist.

-
Cybertec schrieb:
Wahrscheinlich liege ich aber falsch, und es wird nur das benutzt was man braucht und man hat somit nicht die komplette Lib von z.B. 150MB dabei sondern nur 1MB?
Nein, eher so 0. Boost ist größtenteils Header only. Also brauchst du ungefähr so viel Platz als wenn du die Funktion selbst geschrieben hättest.
-
Na gut, das war nur ein Beispiel mit den Zahlenwerten.

Ok, dann kann ich ja beruhigt Boost benutzen bzw. mich erstmal einarbeiten.
Danke.
-
http://www.boost.org/doc/libs/1_49_0_beta1/doc/html/string_algo.html
Zum Einstieg.

Alles Header-only.
-
Danke für den Link, hatte das hier auch schon gefunden: http://www.boost.org/doc/libs/1_49_0_beta1/doc/html/string_algo/reference.html#header.boost.algorithm.string.split_hpp
-
Für sowas braucht man ne externe Lib? Vor allem da split ziemlich überdimensioniert ist, wenn man nur den ersten Teil haben will.
#include <iostream> #include <string> using namespace std; string getFirstPart(const string& input) { static const char* whitespaces = "\t\n\v\f\r "; string::size_type begin = input.find_first_not_of(whitespaces); if(begin == string::npos) begin = 0; string result = input.substr(begin, input.find('#') - begin); string::size_type end = result.find_last_not_of(whitespaces); if(end != string::npos) result.erase(end + 1); return result; } int main() { cout << '"' << getFirstPart("") << '"' << endl; cout << '"' << getFirstPart("abc") << '"' << endl; cout << '"' << getFirstPart(" a b c ") << '"' << endl; cout << '"' << getFirstPart("#") << '"' << endl; cout << '"' << getFirstPart(" #abc") << '"' << endl; cout << '"' << getFirstPart(" fo o #bar") << '"' << endl; cout << '"' << getFirstPart(" fo o#bar") << '"' << endl; cout << '"' << getFirstPart("fo o#") << '"' << endl; cout << '"' << getFirstPart("fo o #bar") << '"' << endl; cout << '"' << getFirstPart("\rfoo\n#bar#baz") << '"' << endl; }
-
Nein braucht man nicht, hatte es auch schon ohne Boost gemacht.