TPCCLIB
Toggle main menu visibility
Loading...
Searching...
No Matches
libtpcift
iftget.c
Go to the documentation of this file.
1
4
/*****************************************************************************/
5
#include "tpcclibConfig.h"
6
/*****************************************************************************/
7
#include <stdio.h>
8
#include <stdlib.h>
9
#include <math.h>
10
#include <time.h>
11
#include <string.h>
12
/*****************************************************************************/
13
#include "
tpcift.h
"
14
/*****************************************************************************/
15
16
/*****************************************************************************/
25
int
iftGetFloat
(
27
IFT
*ift,
29
int
index,
32
float
*v
33
) {
34
if
(v!=NULL) *v=nanf(
""
);
else
return
-2;
35
if
(ift==NULL)
return
-2;
36
if
(index<0 || index>=ift->
keyNr
)
return
-2;
37
if
(ift->
item
[index].
value
==NULL)
return
-1;
38
if
(sscanf(ift->
item
[index].
value
,
"%f"
, v)!=1 || isnan(*v))
return
-1;
39
return
0;
40
}
41
/*****************************************************************************/
42
43
/*****************************************************************************/
52
int
iftGetDouble
(
54
IFT
*ift,
56
int
index,
59
double
*v
60
) {
61
if
(v!=NULL) *v=nan(
""
);
else
return
-2;
62
if
(ift==NULL)
return
-2;
63
if
(index<0 || index>=ift->
keyNr
)
return
-2;
64
if
(ift->
item
[index].
value
==NULL)
return
-1;
65
if
(sscanf(ift->
item
[index].
value
,
"%lf"
, v)!=1 || isnan(*v))
return
-1;
66
return
0;
67
}
68
/*****************************************************************************/
69
70
/*****************************************************************************/
76
int
iftGetInt
(
78
IFT
*ift,
80
int
index,
83
int
*v
84
) {
85
if
(v!=NULL) *v=-9999;
else
return
-2;
86
if
(ift==NULL)
return
-2;
87
if
(index<0 || index>=ift->
keyNr
)
return
-2;
88
if
(ift->
item
[index].
value
==NULL)
return
-1;
89
if
(sscanf(ift->
item
[index].
value
,
"%d"
, v)!=1 || *v==-9999)
return
-1;
90
return
0;
91
}
92
/*****************************************************************************/
93
94
/*****************************************************************************/
101
int
iftGetUInt
(
103
IFT
*ift,
105
int
index,
108
unsigned
int
*v
109
) {
110
if
(v!=NULL) *v=0;
else
return
-2;
111
if
(ift==NULL)
return
-2;
112
if
(index<0 || index>=ift->
keyNr
)
return
-2;
113
if
(ift->
item
[index].
value
==NULL)
return
-1;
114
if
(sscanf(ift->
item
[index].
value
,
"%ud"
, v)!=1)
return
-1;
115
return
0;
116
}
117
/*****************************************************************************/
118
119
/*****************************************************************************/
129
int
iftGetDoubleWithUnit
(
131
IFT
*ift,
133
int
index,
136
double
*v,
139
int
*
unit
140
) {
141
if
(v!=NULL) *v=nan(
""
);
142
if
(
unit
!=NULL) *
unit
=
UNIT_UNKNOWN
;
143
if
(ift==NULL)
return
(2);
144
if
(index<0 || index>=ift->
keyNr
)
return
(1);
145
if
(ift->
item
[index].
value
==NULL)
return
(2);
146
char
s[128];
147
if
(
strTokenNCpy
(ift->
item
[index].
value
,
" \t"
, 1, s, 128)==0)
return
(2);
148
if
(v!=NULL) *v=
atofVerified
(s);
149
if
(
unit
==NULL)
return
(0);
150
if
(
strTokenNCpy
(ift->
item
[index].
value
,
" \t"
, 2, s, 128)==0)
return
(0);
151
strCleanPars
(s); *
unit
=
unitIdentify
(s);
152
return
0;
153
}
154
/*****************************************************************************/
155
156
/*****************************************************************************/
atofVerified
double atofVerified(const char *s)
Definition
decpoint.c:75
iftGetUInt
int iftGetUInt(IFT *ift, int index, unsigned int *v)
Definition
iftget.c:101
iftGetDoubleWithUnit
int iftGetDoubleWithUnit(IFT *ift, int index, double *v, int *unit)
Definition
iftget.c:129
iftGetFloat
int iftGetFloat(IFT *ift, int index, float *v)
Definition
iftget.c:25
iftGetDouble
int iftGetDouble(IFT *ift, int index, double *v)
Definition
iftget.c:52
iftGetInt
int iftGetInt(IFT *ift, int index, int *v)
Definition
iftget.c:76
strCleanPars
void strCleanPars(char *s)
Definition
stringext.c:475
strTokenNCpy
int strTokenNCpy(const char *s1, const char *s2, int i, char *s3, int count)
Definition
stringext.c:53
IFT_ITEM::value
char * value
Definition
tpcift.h:37
IFT
Definition
tpcift.h:43
IFT::item
IFT_ITEM * item
Definition
tpcift.h:57
IFT::keyNr
int keyNr
Definition
tpcift.h:47
unit
unit
Definition
tpcextensions.h:84
UNIT_UNKNOWN
@ UNIT_UNKNOWN
Unknown unit.
Definition
tpcextensions.h:85
unitIdentify
int unitIdentify(const char *s)
Definition
units.c:162
tpcift.h
Header file for library libtpcift.
Generated on
for TPCCLIB by
1.17.0