ATLAS Offline Software
Loading...
Searching...
No Matches
SbStringHelpers.h File Reference
#include <Inventor/SbBasic.h>
#include <stdarg.h>
Include dependency graph for SbStringHelpers.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SbStringNotFound   (-1)

Functions

char * SbSTRDUP (const char *)
void SbSTRDEL (char *&)
SbPList SbStringGetWords (const SbString &, const char *)
SbBool SbStringConvertToBool (const SbString &, SbBool &)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
SbBool SbStringConvertToInt (const SbString &, int &)
SbBool SbStringConvertToFloat (const SbString &, float &)
SbBool SbStringConvertToUnsignedLong (const SbString &, unsigned long &)
SbBool SbStringPrintF (SbString &, int, const char *,...)
SbString SbStringPrintF (int, const char *,...)
int SbStringFind (const SbString &, const SbString &)
int SbStringReverseFind (const SbString &, const SbString &)
void SbStringDelete (SbPList &)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
SbString * SbStringCreateEmpty (int)
SbBool SbStringIsTTF (const SbString &)
SbBool SbString_isenv (const SbString &)
SbBool SbString_getenv (const SbString &, SbString &)
SbBool SbStringGetenv (SbString &)
SbBool SbStringReplace (SbString &, const SbString &, const SbString &)
SbString SbStringSuffix (const SbString &)

Macro Definition Documentation

◆ SbStringNotFound

#define SbStringNotFound   (-1)

Definition at line 37 of file SbStringHelpers.h.

Function Documentation

◆ SbSTRDEL()

void SbSTRDEL ( char *& aString)

Definition at line 32 of file SbStringHelpers.cxx.

32 {
33 ::free(aString);
34 aString = NULL;
35}

◆ SbSTRDUP()

char * SbSTRDUP ( const char * aString)

Definition at line 24 of file SbStringHelpers.cxx.

24 {
25 char* p = (char*)::malloc((unsigned)::strlen(aString)+1);
26 if(p==NULL) return 0;
27 //cppcheck-suppress returnDanglingLifetime
28 return ::strcpy(p,aString);
29}

◆ SbString_getenv()

SbBool SbString_getenv ( const SbString & aString,
SbString & aValue )

Definition at line 295 of file SbStringHelpers.cxx.

295 {
296 const char* env = ::getenv(aString.getString());
297 if(env) {
298 aValue = SbString(env);
299 return TRUE;
300 } else {
301 aValue = "";
302 return FALSE;
303 }
304}

◆ SbString_isenv()

SbBool SbString_isenv ( const SbString & aString)

Definition at line 287 of file SbStringHelpers.cxx.

287 {
288 const char* env = ::getenv(aString.getString());
289 return (env?TRUE:FALSE);
290}

◆ SbStringConvertToBool()

SbBool SbStringConvertToBool ( const SbString & aString,
SbBool & aValue )

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 86 of file SbStringHelpers.cxx.

92{
93 if( (aString=="true") || (aString=="TRUE") ||
94 (aString=="yes") || (aString=="YES") ) {
95 aValue = TRUE;
96 return TRUE;
97 } else if( (aString=="false") || (aString=="FALSE") ||
98 (aString=="no") || (aString=="NO") ) {
99 aValue = FALSE;
100 return TRUE;
101 } else {
102 aValue = FALSE;
103 return FALSE;
104 }
105}

◆ SbStringConvertToFloat()

SbBool SbStringConvertToFloat ( const SbString & aString,
float & aValue )

Definition at line 121 of file SbStringHelpers.cxx.

121 {
122 const char* string = aString.getString();
123 char* s;
124 double value = ::strtod(string,&s);
125 if(s==string) {
126 aValue = 0;
127 return FALSE;
128 }
129 aValue = (float)value;
130 return TRUE;
131}

◆ SbStringConvertToInt()

SbBool SbStringConvertToInt ( const SbString & aString,
int & aValue )

Definition at line 108 of file SbStringHelpers.cxx.

108 {
109 const char* string = aString.getString();
110 char* s;
111 long value = ::strtol(string,&s,10);
112 if(s==string) {
113 aValue = 0L;
114 return FALSE;
115 }
116 aValue = (int)value;
117 return TRUE;
118}

◆ SbStringConvertToUnsignedLong()

SbBool SbStringConvertToUnsignedLong ( const SbString & aString,
unsigned long & aValue )

Definition at line 134 of file SbStringHelpers.cxx.

135 {
136 aValue = 0L;
137 if(::sscanf(aString.getString(),"%lx",&aValue)!=1) {
138 if(::sscanf(aString.getString(),"%lu",&aValue)!=1) {
139 aValue = 0L;
140 return FALSE;
141 }
142 }
143 return TRUE;
144}

◆ SbStringCreateEmpty()

SbString * SbStringCreateEmpty ( int aLength)

Definition at line 205 of file SbStringHelpers.cxx.

205 {
206 if(aLength<=0) aLength = 0;
207 char* string = (char*)::malloc((aLength+1)*sizeof(char));
208 if(string==NULL) return NULL;
209 string[aLength] = '\0';
210 for(int count=0;count<aLength;count++) string[count] = ' ';
211 SbString* sbString = new SbString(string);
212 free(string);
213 return sbString;
214}
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146

◆ SbStringDelete()

void SbStringDelete ( SbPList & aList)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 75 of file SbStringHelpers.cxx.

80{
81 int linen = aList.getLength();
82 for(int count=0;count<linen;count++) delete ((SbString*)aList[count]);
83 //aList.Clear();
84}

◆ SbStringFind()

int SbStringFind ( const SbString & aString,
const SbString & aSearch )

Definition at line 174 of file SbStringHelpers.cxx.

174 {
175 int lsearch = aSearch.getLength();
176 if(lsearch<=0) return SbStringNotFound;
177 int number = aString.getLength();
178 for(int index=0;index<=(number-lsearch);index++) {
179 if(aString.getSubString(index,index+lsearch-1)==aSearch) return index;
180 }
181 return SbStringNotFound;
182}
#define SbStringNotFound
Definition index.py:1
std::string number(const double &d, const std::string &s)
Definition utils.cxx:186

◆ SbStringGetenv()

SbBool SbStringGetenv ( SbString & aString)

Definition at line 241 of file SbStringHelpers.cxx.

241 {
242 std::string a_String(aString.getString());
243 std::string::size_type dollar;
244 while((dollar=a_String.find('$'))!=std::string::npos){
245 std::string::size_type slash = a_String.find('/',dollar+1);
246 std::string::size_type back_slash = a_String.find('\\',dollar+1);
247 std::string::size_type pos = std::string::npos;
248 if(slash!=std::string::npos) {
249 if(back_slash!=std::string::npos) {
250 pos = SbMinimum(slash,back_slash);
251 } else {
252 pos = slash;
253 }
254 } else {
255 if(back_slash!=std::string::npos) {
256 pos = back_slash;
257 } else {
258 pos = std::string::npos;
259 }
260 }
261 std::string env;
262 if(pos==std::string::npos) {
263 env = a_String.substr(dollar+1,a_String.length()-(dollar+1));
264 } else {
265 // abc$xxx/ef
266 // 0 3 7 9
267 env = a_String.substr(dollar+1,pos-(dollar+1));
268 }
269 char* val = ::getenv(env.c_str());
270 if(val) {
271 std::string value = a_String.substr(0,dollar);
272 value += val;
273 if(pos!=std::string::npos)
274 value += a_String.substr(pos,a_String.length()-pos);
275 a_String = std::move(value);
276 }
277 if(!val) {
278 aString = SbString(a_String.c_str());
279 return FALSE; // Stop looping if env variable not found.
280 }
281 }
282 aString = SbString(a_String.c_str());
283 return TRUE;
284}
#define SbMinimum(a, b)

◆ SbStringGetWords()

SbPList SbStringGetWords ( const SbString & aString,
const char * aLimiter )

Definition at line 38 of file SbStringHelpers.cxx.

38 {
39 SbPList list(16);
40
41 if(aString.getLength()<=0) return list;
42
43 SbString string = aString;
44
45 char* token = (char*)string.getString();
46
47 while(1) {
48 char* pos = ::strstr (token,aLimiter);
49 if(pos!=NULL) {
50 *pos = '\0';
51 if(*token!='\0') {
52 list.append(token);
53 }
54 token = pos + ::strlen(aLimiter);
55 } else {
56 //last word
57 if(*token!='\0') {
58 list.append(token);
59 }
60 break;
61 }
62 }
63
64 int wordn = list.getLength();
65 char* word;
66 for(int count=0;count<wordn;count++) {
67 word = (char*)list[count];
68 list[count] = new SbString(word);
69 }
70
71 return list;
72}
list(name, path='/')
Definition histSizes.py:38

◆ SbStringIsTTF()

SbBool SbStringIsTTF ( const SbString & aString)

Definition at line 233 of file SbStringHelpers.cxx.

233 {
234 if(aString.getLength()<4) return FALSE;
235 if(aString.getSubString(0,3)!="TTF/") return FALSE;
236 return TRUE;
237}

◆ SbStringPrintF() [1/2]

SbString SbStringPrintF ( int aNumber,
const char * aFormat,
... )

Definition at line 162 of file SbStringHelpers.cxx.

162 {
163 va_list args;
164 va_start(args,aFormat);
165 SbString* sbString = SbStringCreateV(aNumber,aFormat,args);
166 va_end(args);
167 if(sbString==NULL) return "";
168 SbString s(*sbString);
169 delete sbString;
170 return s;
171}
static SbString * SbStringCreateV(int, const char *, va_list)

◆ SbStringPrintF() [2/2]

SbBool SbStringPrintF ( SbString & aString,
int aNumber,
const char * aFormat,
... )

Definition at line 147 of file SbStringHelpers.cxx.

147 {
148 va_list args;
149 va_start(args,aFormat);
150 SbString* sbString = SbStringCreateV(aNumber,aFormat,args);
151 va_end(args);
152 if(sbString==NULL) {
153 aString = "";
154 return FALSE;
155 }
156 aString = *sbString;
157 delete sbString;
158 return TRUE;
159}

◆ SbStringReplace()

SbBool SbStringReplace ( SbString & aString,
const SbString & aOld,
const SbString & aNew )

Definition at line 307 of file SbStringHelpers.cxx.

307 {
308 std::string a_Old(aOld.getString());
309 std::string a_New(aNew.getString());
310 if(a_Old=="") return FALSE;
311 std::string snew;
312 std::string::size_type lold = a_Old.length();
313 bool status = FALSE;
314 std::string stmp(aString.getString());
315 while(true) {
316 std::string::size_type pos = stmp.find(a_Old);
317 if(pos==std::string::npos){
318 snew += stmp;
319 break;
320 } else {
321 snew += stmp.substr(0,pos);
322 snew += a_New;
323 stmp = stmp.substr(pos+lold,stmp.length()-(pos+lold));
324 status = TRUE;
325 }
326 }
327 aString = SbString(snew.c_str());
328 return status;
329}
status
Definition merge.py:16

◆ SbStringReverseFind()

int SbStringReverseFind ( const SbString & aString,
const SbString & aSearch )

Definition at line 185 of file SbStringHelpers.cxx.

185 {
186 int lsearch = aSearch.getLength();
187 if(lsearch<=0) return SbStringNotFound;
188 int number = aString.getLength();
189 for(int index=number-lsearch;index>=0;index--) {
190 if(aString.getSubString(index,index+lsearch-1)==aSearch) return index;
191 }
192 return SbStringNotFound;
193}

◆ SbStringSuffix()

SbString SbStringSuffix ( const SbString & aString)

Definition at line 196 of file SbStringHelpers.cxx.

196 {
197 int index = SbStringReverseFind(aString,".");
198 if(index==SbStringNotFound) return SbString("");
199 return aString.getSubString(index+1);
200}
int SbStringReverseFind(const SbString &aString, const SbString &aSearch)