TPCCLIB
Loading...
Searching...
No Matches
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/*****************************************************************************/
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/*****************************************************************************/
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/*****************************************************************************/
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/*****************************************************************************/
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/*****************************************************************************/
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);
152 return 0;
153}
154/*****************************************************************************/
155
156/*****************************************************************************/
double atofVerified(const char *s)
Definition decpoint.c:75
int iftGetUInt(IFT *ift, int index, unsigned int *v)
Definition iftget.c:101
int iftGetDoubleWithUnit(IFT *ift, int index, double *v, int *unit)
Definition iftget.c:129
int iftGetFloat(IFT *ift, int index, float *v)
Definition iftget.c:25
int iftGetDouble(IFT *ift, int index, double *v)
Definition iftget.c:52
int iftGetInt(IFT *ift, int index, int *v)
Definition iftget.c:76
void strCleanPars(char *s)
Definition stringext.c:476
int strTokenNCpy(const char *s1, const char *s2, int i, char *s3, int count)
Definition stringext.c:53
char * value
Definition tpcift.h:37
Definition tpcift.h:43
IFT_ITEM * item
Definition tpcift.h:57
int keyNr
Definition tpcift.h:47
unit
@ UNIT_UNKNOWN
Unknown unit.
int unitIdentify(const char *s)
Definition units.c:162
Header file for library libtpcift.