#include "format_data.h"
#include "script.h"
#include "gestion_erreurs.h"
Go to the source code of this file.
Defines | |
#define | ADD_DATA(data_i) |
Functions | |
char * | format_data_after_float (char *_buffer) |
char * | format_data_after_int (char *_buffer) |
int | format_data_get_data (char *_input, char *_buffer, char *_pattern, int size, int n_arg) |
#define ADD_DATA | ( | data_i | ) |
Value:
if (cur_arg == n_arg) \ { \ if (i_buffer >= size) \ stop = 1; \ else \ { \ f = (float) data_i; \ *((float *) &_buffer[i_buffer]) = f; \ i_buffer += sizeof(float); \ } \ }
Definition at line 36 of file DATA_PRINT/format_data.c.
char* format_data_after_float | ( | char * | _buffer | ) |
Definition at line 66 of file DATA_PRINT/format_data.c.
References format_data_after_int().
00067 { 00068 int stop = 0; 00069 00070 _buffer = format_data_after_int(_buffer); 00071 if (*_buffer == '.') 00072 _buffer++; 00073 if (*_buffer == '-') 00074 return _buffer; 00075 _buffer = format_data_after_int(_buffer); 00076 00077 return _buffer; 00078 }
char* format_data_after_int | ( | char * | _buffer | ) |
Definition at line 48 of file DATA_PRINT/format_data.c.
00049 { 00050 int stop = 0; 00051 00052 if (*_buffer == '-') 00053 _buffer++; 00054 00055 while(*_buffer && !stop) 00056 { 00057 if (*_buffer < '0' || *_buffer > '9') 00058 stop = 1; 00059 else 00060 _buffer++; 00061 } 00062 00063 return _buffer; 00064 }
int format_data_get_data | ( | char * | _input, | |
char * | _buffer, | |||
char * | _pattern, | |||
int | size, | |||
int | n_arg | |||
) |
Definition at line 80 of file DATA_PRINT/format_data.c.
References ADD_DATA, format_data_after_float(), format_data_after_int(), SET_ERROR, and templates_get_string().
00081 { 00082 char _str[256]; 00083 char _cur_pattern[256]; 00084 char _value[32]; 00085 char _str_value[256]; 00086 char *_ppattern, *_pcur_pattern, *_pstr; 00087 int stop = 0; 00088 int cur_arg; 00089 int i_buffer = 0; 00090 int i; 00091 float f; 00092 00093 char _temp[256]; 00094 char _buffer_temp[256]; 00095 00096 size *= sizeof(float); 00097 00098 while(*_input && !stop) 00099 { 00100 // to compute one line 00101 _ppattern = _pattern; 00102 cur_arg = 0; 00103 while(*_ppattern && !stop) 00104 { 00105 _input = templates_get_string(_input, _str); 00106 _ppattern = templates_get_string(_ppattern, _cur_pattern); 00107 00108 _pstr = _str; 00109 _pcur_pattern = _cur_pattern; 00110 while(*_pstr && !stop) 00111 { 00112 switch(*_pcur_pattern) 00113 { 00114 case '%': 00115 _pcur_pattern++; 00116 cur_arg++; 00117 switch(*_pcur_pattern) 00118 { 00119 case 'd': 00120 case 'i': 00121 // MessageBox(NULL, "%i", _pstr, 0); 00122 if (!sscanf(_pstr, "%f", &i)) 00123 stop = 1; 00124 else 00125 { 00126 _pstr = format_data_after_int(_pstr); 00127 ADD_DATA(i); 00128 } 00129 break; 00130 case 'f': 00131 // MessageBox(NULL, "%f", _pstr, 0); 00132 if (!sscanf(_pstr, "%f", &f)) 00133 stop = 1; 00134 else 00135 { 00136 _pstr = format_data_after_float(_pstr); 00137 ADD_DATA(f); 00138 } 00139 break; 00140 case '%': 00141 cur_arg--; 00142 if (*_pstr != '%') 00143 stop = 1; 00144 else 00145 _pstr++; 00146 break; 00147 default: 00148 SET_ERROR("Pattern not supported!"); 00149 stop = 1; 00150 break; 00151 } 00152 _pcur_pattern++; 00153 break; 00154 default: 00155 // MessageBox(NULL, _pstr, _pcur_pattern, 0); 00156 if (*_pstr != *_pcur_pattern) 00157 stop = 1; 00158 else 00159 { 00160 _pstr++; 00161 _pcur_pattern++; 00162 } 00163 } 00164 } 00165 } 00166 } 00167 00168 return i_buffer/sizeof(float); 00169 }