annotate BEDTools-Version-2.14.3/src/utils/lineFileUtilities/lineFileUtilities.h @ 0:dfcd8b6c1bda

Uploaded
author aaronquinlan
date Thu, 03 Nov 2011 10:25:04 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
1 #ifndef LINEFILEUTILITIES_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
2 #define LINEFILEUTILITIES_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
3
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
4 #include <vector>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
5 #include <string>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
6 #include <cstring>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
7 #include <cstdlib>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
8 #include <sstream>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
9
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
10 using namespace std;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
11
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
12 // templated function to convert objects to strings
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
13 template <typename T>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
14 inline
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
15 std::string ToString(const T & value) {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
16 std::stringstream ss;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
17 ss << value;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
18 return ss.str();
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
19 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
20
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
21 // tokenize into a list of strings.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
22 inline
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
23 void Tokenize(const string &str, vector<string> &elems, const string &delimiter = "\t")
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
24 {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
25 char* tok;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
26 char cchars [str.size()+1];
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
27 char* cstr = &cchars[0];
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
28 strcpy(cstr, str.c_str());
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
29 tok = strtok(cstr, delimiter.c_str());
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
30 while (tok != NULL) {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
31 elems.push_back(tok);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
32 tok = strtok(NULL, delimiter.c_str());
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
33 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
34 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
35
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
36 // tokenize into a list of integers
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
37 inline
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
38 void Tokenize(const string &str, vector<int> &elems, const string &delimiter = "\t")
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
39 {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
40 char* tok;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
41 char cchars [str.size()+1];
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
42 char* cstr = &cchars[0];
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
43 strcpy(cstr, str.c_str());
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
44 tok = strtok(cstr, delimiter.c_str());
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
45 while (tok != NULL) {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
46 elems.push_back(atoi(tok));
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
47 tok = strtok(NULL, delimiter.c_str());
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
48 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
49 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
50
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
51 #endif /* LINEFILEUTILITIES_H */
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
52