Files
SAPFOR/Sapfor/_src/Predictor/Lib/ParseString.h
2025-03-12 12:37:19 +03:00

86 lines
3.9 KiB
C++

#ifndef _PARSESTRING_H
#define _PARSESTRING_H
#include <string>
#include "Event.h"
//*************** for GNU only ****************//
#ifdef __GNUC__
char *_itoa(int value, char *str, int radix);
char *_ltoa(long value, char *str, int radix);
#endif
double atof( const std::string& str );
int atoi( const std::string& str );
long atol( const std::string& str );
//************* INTEGER PARAMETERS *************//
extern int ParamFromString(char* par_name, int& par_val, char* str);
extern int IndexParamFromString(char* par_name, int par_idx, int& par_val, char* str);
extern int SubParamFromString(char* par_name, int par_idx, char* sub_par, int& par_val,
char* str);
extern int ParamFromStrArr(char* par_name, int& par_val, char** str_arr, int str_cnt);
extern int IndexParamFromStrArr(char* par_name, int par_idx, int& par_val, char** str_arr,
int str_cnt);
extern int SubParamFromStrArr(char* par_name, int par_idx, char* sub_par, int& par_val,
char** str_arr, int str_cnt);
bool ParamFromString(const std::string& par_name, std::string::size_type& par_val,
const std::string& str);
//************** LONG PARAMETERS *************//
extern int ParamFromString(char* par_name, long& par_val, char* str, int base);
extern int IndexParamFromString(char* par_name, int par_idx, long& par_val, char* str, int base);
extern int SubParamFromString(char* par_name, int par_idx, char* sub_par, long& par_val, char* str, int base);
extern int ParamFromStrArr(char* par_name, long& par_val, char** str_arr, int str_cnt, int base);
extern int IndexParamFromStrArr(char* par_name, int par_idx, long& par_val, char** str_arr, int str_cnt, int base);
extern int SubParamFromStrArr(char* par_name, int par_idx, char* sub_par, long& par_val, char** str_arr, int str_cnt, int base);
//************ FLOAT PARAMETERS *************//
extern int ParamFromString(char* par_name, double& par_val, char* str);
extern int IndexParamFromString(char* par_name, int par_idx, double& par_val, char* str);
extern int SubParamFromString(char* par_name, int par_idx, char* sub_par, double& par_val, char* str);
extern int ParamFromStrArr(char* par_name, double& par_val, char** str_arr, int str_cnt);
extern int IndexParamFromStrArr(char* par_name, int par_idx, double& par_val, char** str_arr, int str_cnt);
extern int SubParamFromStrArr(char* par_name, int par_idx, char* sub_par, double& par_val, char** str_arr, int str_cnt);
//************ STRING PARAMETERS *************//
extern int ParamFromString(char* par_name, char* par_val, char* str);
extern int IndexParamFromString(char* par_name, char* par_idx, char*& par_val, char* str);
extern int SubParamFromString(char* par_name, int par_idx, char* sub_par, char*& par_val, char* str);
extern int ParamFromStrArr(char* par_name, char*& par_val, char** str_arr, int str_cnt);
extern int IndexParamFromStrArr(char* par_name, int par_idx, char*& par_val, char** str_arr, int str_cnt);
extern int SubParamFromStrArr(char* par_name, int par_idx, char* sub_par, char*& par_val, char** str_arr, int str_cnt);
//************ SERVICE ROUTINES *************//
extern int StrToInt(char* str);
extern long StrToLong(char* str);
extern long StrToLong(char* str, int base);
extern double StrToDouble(char* str);
extern void IntToStr(char*& str, int val);
extern void LongToStr(char*& str, long val);
extern void DoubleToStr(char*& str, double val);
//-----------------------------------------------------------------------------------
bool ParamFromString(const std::string& par_name, std::string& par_val, const std::string& str);
bool ParamFromString(const std::string& par_name, int& par_val, const std::string& str);
bool ParamFromString(const std::string& par_name, long& par_val, const std::string& str);
bool ParamFromString(const std::string& par_name, double& par_val, const std::string& str);
int ModifierFromStrArr(char** str_arr, int str_cnt);
#endif