OpendTect  6.3
string2.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*@+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H.Bril
8  Date: 11-4-1994
9  Contents: Extra string functions
10 ________________________________________________________________________
11 -*/
12 
13 /* Functions making sure you don't need <string.h>
14 
15  (1) Usually OD::String or its subclass BufferString can already do the job
16  (2) toString(XX) for all simple types
17  (3) toXX from const char* for most used simple types
18  (4) Replacements for strlen, strchr and strrstr
19  (5) Various construction-, manipulation- and matching functions
20 
21  */
22 
23 #include "basicmod.h"
24 #include "plftypes.h"
25 #include "commondefs.h"
26 #include <ctype.h>
27 #include <wctype.h>
28 namespace OD { class String; }
29 class CompoundKey;
30 
31 mGlobal(Basic) const char* toString(od_int32);
32 mGlobal(Basic) const char* toString(od_uint32);
33 mGlobal(Basic) const char* toString(od_int64);
34 mGlobal(Basic) const char* toString(od_uint64);
35 mGlobal(Basic) const char* toString(float);
36 mGlobal(Basic) const char* toString(float,int nrdec);
37 mGlobal(Basic) const char* toString(float,char format,int precision);
38 mGlobal(Basic) const char* toStringLim(float,int maxtxtwdth);
39 mGlobal(Basic) const char* toStringPrecise(float);
40 mGlobal(Basic) const char* toString(double);
41 mGlobal(Basic) const char* toString(double,int nrdec);
42 mGlobal(Basic) const char* toString(double,char format,int precision);
43 mGlobal(Basic) const char* toStringLim(double,int maxtxtwdth);
44 mGlobal(Basic) const char* toStringPrecise(double);
45 mGlobal(Basic) const char* toString(short);
46 mGlobal(Basic) const char* toString(unsigned short);
47 mGlobal(Basic) const char* toString(const char*);
48 mGlobal(Basic) const char* toString(unsigned char);
49 mGlobal(Basic) const char* toString(signed char);
50 mGlobal(Basic) const char* toString(bool);
51 mGlobal(Basic) const char* toString(const OD::String&);
52 mGlobal(Basic) const char* toString(const CompoundKey&);
53 
54 mGlobal(Basic) bool getFromString(int&,const char*,int udfval);
55 mGlobal(Basic) bool getFromString(od_int64&,const char*,od_int64 udfval);
56 mGlobal(Basic) bool getFromString(float&,const char*,float udfval);
57 mGlobal(Basic) bool getFromString(double&,const char*,double udfval);
58 mGlobal(Basic) bool getFromString(bool&,const char*);
59 mGlobal(Basic) bool yesNoFromString(const char*);
60 
61 inline bool toBool( const char* s, bool defval=true )
62 { return s && *s ? yesNoFromString(s) : defval; }
63 
64 inline float toFloat( const char* s, float defval=0 )
65 { float ret = defval; getFromString( ret, s, ret ); return ret; }
66 
67 inline double toDouble( const char* s, double defval=0 )
68 { double ret = defval; getFromString( ret, s, ret ); return ret; }
69 
70 inline int toInt( const char* s, int defval=0 )
71 { int ret = defval; getFromString( ret, s, ret ); return ret; }
72 
73 inline od_int64 toInt64( const char* s, od_int64 defval=0 )
74 { od_int64 ret = defval; getFromString( ret, s, ret ); return ret; }
75 
76 
78 #define mSkipBlanks(ptr) \
79  { if ( ptr ) { while ( *(ptr) && iswspace(*(ptr)) ) (ptr)++; } }
80 
82 #define mSkipNonBlanks(ptr) \
83  { if ( ptr ) { while ( *(ptr) && !iswspace(*(ptr)) ) (ptr)++; } }
84 
86 #define mTrimBlanks(ptr) \
87  { mSkipBlanks(ptr); removeTrailingBlanks(ptr); }
88 
89 
90 mGlobal(Basic) bool caseInsensitiveEqual(const char*,const char*,
91  int match_nrchars=-1);
93 mGlobal(Basic) bool stringStartsWith(const char* startstring,
94  const char* maybebigger);
96 mGlobal(Basic) bool stringStartsWithCI(const char*,const char*);
98 mGlobal(Basic) bool stringEndsWith(const char* endstring,
99  const char* maybebigger);
101 mGlobal(Basic) bool stringEndsWithCI(const char*,const char*);
104 mGlobal(Basic) void removeTrailingBlanks(char*);
106 mGlobal(Basic) void cleanupString(char*,bool,bool,bool);
108 mGlobal(Basic) bool isNumberString(const char*,bool int_only=false);
110 mGlobal(Basic) bool isAlphaNumString(const char*,bool allowspace = false);
113 mGlobal(Basic) const char* getNextWord(const char*,char*);
118 mGlobal(Basic) int strLength(const char*);
120 mGlobal(Basic) const char* firstOcc(const char*,char);
121 mGlobal(Basic) const char* firstOcc(const char*,int);
123 mGlobal(Basic) char* firstOcc(char*,char);
124 mGlobal(Basic) char* firstOcc(char*,int);
126 mGlobal(Basic) const char* lastOcc(const char*,char);
127 mGlobal(Basic) const char* lastOcc(const char*,int);
129 mGlobal(Basic) char* lastOcc(char*,char);
130 mGlobal(Basic) char* lastOcc(char*,int);
132 mGlobal(Basic) const char* firstOcc(const char*,const char*);
134 mGlobal(Basic) char* firstOcc(char*,const char*);
136 mGlobal(Basic) const char* lastOcc(const char*,const char*);
138 mGlobal(Basic) char* lastOcc(char*,const char*);
139 
140 mGlobal(Basic) const char* getYesNoString(bool);
142 mGlobal(Basic) const char* getDistUnitString(bool isfeet,bool withparentheses);
144 mGlobal(Basic) const char* getVelUnitString(bool isfeet,bool withparentheses);
147 mGlobal(Basic) const char* getRankPostFix(int);
149 mGlobal(Basic) const char* getBytesString(od_uint64);
151 mGlobal(Basic) const char* getLimitedDisplayString(const char*,int nrchars,
152  bool trimright);
155 mGlobal(Basic) int getIndexInStringArrCI(const char*,const char* const* arr,
156  int startnr=0,int nr_chars_to_match=0,
157  int notfoundidx=-1);
160 mGlobal(Basic) const char* getAreaString(float m2,bool parensonunit,
161  char* str=0);
165 mGlobal(Basic) char* truncateString(char* str, int maxlen );
int toInt(const char *s, int defval=0)
Definition: string2.h:70
bool getFromString(int &, const char *, int udfval)
float toFloat(const char *s, float defval=0)
Definition: string2.h:64
const char * str() const
Definition: odstring.h:46
bool isNumberString(const char *, bool int_only=false)
#define mGlobal(module)
Definition: commondefs.h:160
#define od_int64
Definition: plftypes.h:34
int strLength(const char *)
int64_t toInt64(const char *s, int64_t defval=0)
Definition: string2.h:73
const char * getNextWord(const char *, char *)
const char * getRankPostFix(int)
double toDouble(const char *s, double defval=0)
Definition: string2.h:67
bool isAlphaNumString(const char *, bool allowspace=false)
bool stringEndsWithCI(const char *, const char *)
bool stringStartsWithCI(const char *, const char *)
bool yesNoFromString(const char *)
bool caseInsensitiveEqual(const char *, const char *, int match_nrchars=-1)
#define od_uint32
Definition: plftypes.h:30
void cleanupString(char *, bool, bool, bool)
const char * getBytesString(uint64_t)
const char * getLimitedDisplayString(const char *, int nrchars, bool trimright)
void removeTrailingBlanks(char *)
char * truncateString(char *str, int maxlen)
const char * getVelUnitString(bool isfeet, bool withparentheses)
#define od_uint64
Definition: plftypes.h:35
const char * toString(int)
const char * getDistUnitString(bool isfeet, bool withparentheses)
const char * getYesNoString(bool)
#define od_int32
Definition: plftypes.h:29
const char * toStringLim(float, int maxtxtwdth)
const char * getAreaString(float m2, bool parensonunit, char *str=0)
Concatenated short keys separated by dots. Used for Object identifiers in the Object Manager...
Definition: compoundkey.h:21
OpendTect.
Definition: commontypes.h:25
const char * lastOcc(const char *, char)
const char * firstOcc(const char *, char)
bool stringEndsWith(const char *endstring, const char *maybebigger)
const char * toStringPrecise(float)
bool stringStartsWith(const char *startstring, const char *maybebigger)
int getIndexInStringArrCI(const char *, const char *const *arr, int startnr=0, int nr_chars_to_match=0, int notfoundidx=-1)
bool toBool(const char *s, bool defval=true)
Definition: string2.h:61

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017