OpendTect  6.6
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  RCS: $Id$
11 ________________________________________________________________________
12 -*/
13 
14 /* Functions making sure you don't need <string.h>
15 
16  (1) Usually OD::String or its subclass BufferString can already do the job
17  (2) toString(XX) for all simple types
18  (3) toXX from const char* for most used simple types
19  (4) Replacement for strchr and strstr: firstOcc()
20  (5) Various construction-, manipulation- and matching functions
21 
22  */
23 
24 #include "basicmod.h"
25 #include "plftypes.h"
26 #include "commondefs.h"
27 #include <ctype.h>
28 #include <wctype.h>
29 namespace OD { class String; }
30 class CompoundKey;
31 class BufferStringSet;
32 
33 mGlobal(Basic) const char* toString(od_int32);
34 mGlobal(Basic) const char* toString(od_uint32);
35 mGlobal(Basic) const char* toString(od_int64);
36 mGlobal(Basic) const char* toString(od_uint64);
37 mGlobal(Basic) const char* toString(float);
38 mGlobal(Basic) const char* toString(float,int nrdec);
39 mGlobal(Basic) const char* toString(float,char format,int precision);
40 mGlobal(Basic) const char* toStringLim(float,int maxtxtwdth);
41 mGlobal(Basic) const char* toStringPrecise(float);
42 mGlobal(Basic) const char* toString(double);
43 mGlobal(Basic) const char* toString(double,int nrdec);
44 mGlobal(Basic) const char* toString(double,char format,int precision);
45 mGlobal(Basic) const char* toStringLim(double,int maxtxtwdth);
46 mGlobal(Basic) const char* toStringPrecise(double);
47 mGlobal(Basic) const char* toString(bool);
48 mGlobal(Basic) const char* toString(signed char);
49 mGlobal(Basic) const char* toString(unsigned char);
50 mGlobal(Basic) const char* toString(short);
51 mGlobal(Basic) const char* toString(unsigned short);
52 mGlobal(Basic) const char* toString(const char*);
53 mGlobal(Basic) const char* toString(const OD::String&);
54 mGlobal(Basic) const char* toString(const CompoundKey&);
55 
56 mGlobal(Basic) bool getFromString(int&,const char*,int udfval);
57 mGlobal(Basic) bool getFromString(od_int64&,const char*,od_int64 udfval);
58 mGlobal(Basic) bool getFromString(float&,const char*,float udfval);
59 mGlobal(Basic) bool getFromString(double&,const char*,double udfval);
60 mGlobal(Basic) bool getFromString(bool&,const char*);
61 mGlobal(Basic) bool yesNoFromString(const char*);
62 
63 inline int toInt( const char* s, int defval=0 )
64 { int ret = defval; getFromString( ret, s, ret ); return ret; }
65 
66 inline od_int64 toInt64( const char* s, od_int64 defval=0 )
67 { od_int64 ret = defval; getFromString( ret, s, ret ); return ret; }
68 
69 inline float toFloat( const char* s, float defval=0 )
70 { float ret = defval; getFromString( ret, s, ret ); return ret; }
71 
72 inline double toDouble( const char* s, double defval=0 )
73 { double ret = defval; getFromString( ret, s, ret ); return ret; }
74 
75 inline bool toBool( const char* s, bool defval=true )
76 { return s && *s ? yesNoFromString(s) : defval; }
77 
79 #define mSkipBlanks(ptr) \
80  { if ( ptr ) { while ( *(ptr) && iswspace(*(ptr)) ) (ptr)++; } }
81 
83 #define mSkipNonBlanks(ptr) \
84  { if ( ptr ) { while ( *(ptr) && !iswspace(*(ptr)) ) (ptr)++; } }
85 
87 #define mTrimBlanks(ptr) \
88  { mSkipBlanks(ptr); removeTrailingBlanks(ptr); }
89 
90 
91 mGlobal(Basic) bool caseInsensitiveEqual(const char*,const char*,
92  int match_nrchars=-1);
94 mGlobal(Basic) bool stringStartsWith(const char* startstring,
95  const char* maybebigger);
97 mGlobal(Basic) bool stringStartsWithCI(const char*,const char*);
99 mGlobal(Basic) bool stringEndsWith(const char* endstring,
100  const char* maybebigger);
102 mGlobal(Basic) bool stringEndsWithCI(const char*,const char*);
105 mGlobal(Basic) void removeTrailingBlanks(char*);
107 mGlobal(Basic) void cleanupString(char*,bool,bool,bool);
109 mGlobal(Basic) bool isNumberString(const char*,bool int_only=false);
111 mGlobal(Basic) bool isAlphaNumString(const char*,bool allowspace = false);
114 mGlobal(Basic) const char* getNextWord(const char*,char*);
117 mGlobal(Basic) const char* getNextWordElem(const char*,char*);
122 mGlobal(Basic) const char* getNextNonBlanks(const char*,char*);
128 mGlobal(Basic) const char* firstOcc(const char*,char);
130 mGlobal(Basic) char* firstOcc(char*,char);
132 mGlobal(Basic) const char* lastOcc(const char*,char);
134 mGlobal(Basic) char* lastOcc(char*,char);
136 mGlobal(Basic) const char* firstOcc(const char*,const char*);
138 mGlobal(Basic) char* firstOcc(char*,const char*);
140 mGlobal(Basic) const char* lastOcc(const char*,const char*);
142 mGlobal(Basic) char* lastOcc(char*,const char*);
143 
144 mGlobal(Basic) const char* getYesNoString(bool);
146 mGlobal(Basic) const char* getDistUnitString(bool isfeet,bool withparentheses);
148 mGlobal(Basic) const char* getVelUnitString(bool isfeet,bool withparentheses);
151 mGlobal(Basic) const char* getRankPostFix(int);
153 mGlobal(Basic) const char* getBytesString(od_uint64);
155 mGlobal(Basic) const char* getLimitedDisplayString(const char*,int nrchars,
156  bool trimright);
159 mGlobal(Basic) int getIndexInStringArrCI(const char*,const char* const* arr,
160  int startnr=0,int nr_chars_to_match=0,
161  int notfoundidx=-1);
164 mGlobal(Basic) int getIndexInStringArrCI(const char*,const BufferStringSet set,
165  int startnr=0,int nr_chars_to_match=0,
166  int notfoundidx=-1);
169 mGlobal(Basic) const char* getAreaString(float m2,bool parensonunit,
170  char* str=nullptr);
171 mGlobal(Basic) const char* getAreaString(float m2,bool xyinfeet,int precision,
172  bool parensonunit,char* str=nullptr);
176 mGlobal(Basic) char* truncateString(char* str, int maxlen );
180 mGlobal(Basic) const char* cformat(char specifier,od_uint16 width=0,
181  od_uint16 precision=0,
182  const char* length=nullptr,
183  const char* flags=nullptr);
stringStartsWith
bool stringStartsWith(const char *startstring, const char *maybebigger)
od_uint64
#define od_uint64
Definition: plftypes.h:36
getIndexInStringArrCI
int getIndexInStringArrCI(const char *, const char *const *arr, int startnr=0, int nr_chars_to_match=0, int notfoundidx=-1)
toBool
bool toBool(const char *s, bool defval=true)
Definition: string2.h:75
toInt
int toInt(const char *s, int defval=0)
Definition: string2.h:63
toInt64
int64_t toInt64(const char *s, int64_t defval=0)
Definition: string2.h:66
stringEndsWith
bool stringEndsWith(const char *endstring, const char *maybebigger)
isNumberString
bool isNumberString(const char *, bool int_only=false)
getNextWord
const char * getNextWord(const char *, char *)
toFloat
float toFloat(const char *s, float defval=0)
Definition: string2.h:69
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
commondefs.h
od_int64
#define od_int64
Definition: plftypes.h:35
OD
OpendTect.
Definition: commontypes.h:28
plftypes.h
toDouble
double toDouble(const char *s, double defval=0)
Definition: string2.h:72
stringEndsWithCI
bool stringEndsWithCI(const char *, const char *)
getRankPostFix
const char * getRankPostFix(int)
OD::JSON::String
@ String
Definition: odjson.h:40
getLimitedDisplayString
const char * getLimitedDisplayString(const char *, int nrchars, bool trimright)
getBytesString
const char * getBytesString(uint64_t)
caseInsensitiveEqual
bool caseInsensitiveEqual(const char *, const char *, int match_nrchars=-1)
removeTrailingBlanks
void removeTrailingBlanks(char *)
isAlphaNumString
bool isAlphaNumString(const char *, bool allowspace=false)
truncateString
char * truncateString(char *str, int maxlen)
getDistUnitString
const char * getDistUnitString(bool isfeet, bool withparentheses)
cformat
const char * cformat(char specifier, unsigned short width=0, unsigned short precision=0, const char *length=nullptr, const char *flags=nullptr)
stringStartsWithCI
bool stringStartsWithCI(const char *, const char *)
cleanupString
void cleanupString(char *, bool, bool, bool)
getNextNonBlanks
const char * getNextNonBlanks(const char *, char *)
yesNoFromString
bool yesNoFromString(const char *)
od_uint16
#define od_uint16
Definition: plftypes.h:27
Conv::set
void set(T &_to, const F &fr)
template based type conversion
Definition: convert.h:27
toString
const char * toString(int)
od_int32
#define od_int32
Definition: plftypes.h:30
lastOcc
const char * lastOcc(const char *, char)
OD::String
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:31
getVelUnitString
const char * getVelUnitString(bool isfeet, bool withparentheses)
getAreaString
const char * getAreaString(float m2, bool parensonunit, char *str=nullptr)
getYesNoString
const char * getYesNoString(bool)
CompoundKey
Concatenated short keys separated by dots. Used for Object identifiers in the Object Manager,...
Definition: compoundkey.h:23
firstOcc
const char * firstOcc(const char *, char)
toStringLim
const char * toStringLim(float, int maxtxtwdth)
toStringPrecise
const char * toStringPrecise(float)
getNextWordElem
const char * getNextWordElem(const char *, char *)
getFromString
bool getFromString(int &, const char *, int udfval)
od_uint32
#define od_uint32
Definition: plftypes.h:31

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