00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <stdio.h>
00019 #include <stdlib.h>
00020 #include <string.h>
00021
00022 #include <polylib/polylib.h>
00023
00024
00025
00026
00027
00028
00029
00030
00031 const char **Read_ParamNames(FILE *in,int m)
00032 {
00033 char **param_name;
00034 int c, i, j, f;
00035 char s[1024],param[32];
00036
00037 if(!in)
00038 f = 0;
00039 else
00040 do
00041 f = (fgets(s, 1024, in)!=NULL);
00042 while (f && (*s=='#' || *s=='\n'));
00043
00044 param_name = (char **)malloc(m*sizeof(char *));
00045 i = 0;
00046 if(f) {
00047 c = 0;
00048 for(;i<m;++i) {
00049 j=0;
00050 for(;;++c) {
00051 if(s[c]==' ') {
00052 if(j==0)
00053 continue;
00054 else
00055 break;
00056 }
00057 if(s[c]=='\n' || s[c]==0)
00058 break;
00059 param[j++] = s[c];
00060 }
00061
00062
00063 if(j==0)
00064 break;
00065 param[j] = 0;
00066 param_name[i] = (char *)malloc( (j+1)*sizeof(char) );
00067 strcpy(param_name[i],param);
00068 }
00069 }
00070
00071
00072 if(!f || i!=m) {
00073 for(;i<m;++i) {
00074 param_name[i] = (char *) malloc(2*sizeof(char));
00075 sprintf(param_name[i], "%c", PCHAR+i+1);
00076 }
00077 }
00078 return (const char**)param_name;
00079 }
00080
00081 void Free_ParamNames(const char **params, int m)
00082 {
00083 while (--m >= 0)
00084 free((char *)params[m]);
00085 free(params);
00086 }